Why two instances of Coherence on separate machines don't see each other?

If two instances of Coherence on separate machines cannot communicate with each other, the following are the most likely reasons:

Multicast not enabled or blocked

It is possible, particularly if you are trying this on your development machine(s), that your LAN does not have multicast turned on. It is a common practice for network administrators to turn off multicast broadcast capabilities on the 'administrative' subnets (used by 'users', as opposed to 'production' subnets used to connect servers). Additionally, some switches and routers can be configured to block multicast traffic. Please check with your network administrator and request that multicast be enabled and switches configured to not block multicast traffic.

Port or IP address settings

Ports may need to be enabled, or certain users may need to start the process on Unix, particularly when the port number is less than 1024. Your Unix admin (if you are running Unix) will know how to set this up. On older versions of Unix, sometimes the kernel would have to be rebuilt to support multicast. On Windows, it is supported without any configuration changes required. Coherence defaults these values to the ones in "user" space (well above 1024) and it auto-adjusts the unicast port until it finds a free one.

Coherence defaults IP addresses as well. The unicast IP address is the local host (not but an address like 10.?.?.? or 192.168.?.?) The default multicast address is 224.M.m.b (where "M" is the major version number, "m" is the minor version number and "b" is the build number, for example; all Coherence instances running with that address that can reach each other over multi-cast will talk to each other. Note that over a WAN, you must enable multicast traffic and you must be using unicast addresses that are visible on both ends such that the machines can "ping" each other by those addresses. If you need to change the multicast address, please make sure you do not collide with well known addresses that may be in use within your network (see http://www.iana.org/assignments/multicast-addresses)

TTL setting

Another possibility is the TTL (time to live) setting. As multicast traffic is routed (including by layer 3 switches) the TTL of the packet is decremented. TTL specifies how many "hops" the packet can take. TTL for Coherence is configured in the multicast-listener/time-to-live element of the tangosol-coherence.xml file and is set by default to 4 (release 1.1.3 and later) or 1 (release 1.1.2 and earlier). Generally you should set it high enough that communication works and no higher, but that unfortunately can take some experimenting: 0 is a valid value for loopback (i.e. all instances of Coherence are running on one machine so the packets don't even need to get past the NIC onto the wire ... they just work inside one server), 1 is common for a LAN (switch or hub), 2 or more is necessary for supporting routed or intelligently switched traffic.