Gemfire WAN Gateway-senders/receivers members

397 views Asked by At

Within a cluster, we want to create members that are neither senders nor receivers, while having 1 sender/receiver in each cluster. We started up the sender/receiver in a given cluster first, no errors. As soon as we started up the member that's neither a sender nor a receiver, it raises this error:

java.lang.IllegalStateException: Cannot create Region /data with [gateway-sender-A] gateway sender ids because another cache has the same region defined with [] gateway sender ids.

Some assumptions: - Replicated regions - Serial gateway-senders - manual-start is false for all gateway-senders

My guess is that since the member doesn't have a gateway-sender-id, it's complaining being blank, which I'm confused. I thought we can have members that are neither sender/receiver in a cluster. Can someone clarify?

Thanks

2

There are 2 answers

0
Work of Art On BEST ANSWER

Figured it out.

My old understanding was based on this graph, WAN-Topology

Where the 2 top left members were neither senders/receivers. This is wrong. The graph is a little misleading.

You CAN set which members are receivers in cache xml but CAN NOT set which members hosting the region are senders. In other words, having the tag in a member doesn't mean that member is the sender, it simply means that region has a sender in the cluster.

Therefore, if you want a sender for a specified region, you must include the <gateway-sender> tag in all the members under the specified region for it to be valid.

1
Xiawei Zhang On

I assume you are using peer-to-peer configurations within a cluster, so all of these are peers but not clients. Then, the configuration for the same region needs to be identical, i.e. if member A has gateway sender 1, member B should have sender 1 in the gateway-sender-ids property.

This error will be thrown when the starting member figures out that somewhere in the cluster exists a region with the same name but not having the same configuration. And the error message tells the detailed reason.

To achieve "neither sender nor receiver", i think just simply not configure gateway sender/receiver on that specific instance will do.