The following is the third of five posts which will list the best practices and performance suggestions for tuning one’s Oracle Coherence environment. This is a general guide that will evolve as new product features are added to Oracle Coherence.
Troubleshooting Multicast Issues
- If you have Oracle Coherence installed on the hosts between which you're testing multicasting, you can use its multicast connectivity test
- In addition you can use its datagram test to measure network throughput. The practical max on a well-tuned gigabit Ethernet link is ~115MB/sec.
- Finally make sure to use: -Djava.net.preferIPv4Stack=true
- Optionally one can use Well-Known-Addresses (WKA or Unicast) to eliminate any multicast issue.
- If one is on Windows 2003, 2008, Vista, or Windows 7 and are experiencing problems with sharing ports for multicast check the registry for HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Afd\Parameters\DisableAddressSharing and see if it is set to “1”. If so change this to “0”, reboot the machine, and retest. From Microsoft: "Enhanced socket security was added with the release of Windows Server 2003. In previous Microsoft server operating system releases, the default socket security easily allowed processes to hijack ports from unsuspecting applications. In Windows Server 2003, sockets are not in a sharable state by default. Therefore, if an application wants to allow other processes to reuse a port on which a socket is already bound, it must specifically enable it. "
- If one is on Windows, run the following command to generate some further information on the machine’s networking:
netsh firewall show state verbose=enable
Log Messages Explanation
Review the following link for causes and actions to common TCMP (Tangosol Cluster Management Protocol, based on UDP unicast) log messages from Coherence.
Steve, on point #1, if the multicast connectivity test succeeds and there are still cluster issues when running Coherence, be sure to run the multicast test using the precise multicast address and port that Coherence will use as by default they are different. You can do this with command line options and I've seen it make a difference in multiple circumstances at various customers that had multicast configured to work only on certain ranges.
ReplyDelete