Pages

Tuesday, July 5, 2011

Network issues

If you are having consistent network disruption issues with the JVM like UnknownHostExceptions, hostname DNS lookup failures etc you can try setting the following JVM option on the IBM JREs
-Xtrace:methods={java/net/*},print=mt 
to print all the activities happening over the net package giving you sufficient information to find out what is happening.

JVM networking APIs are a thin veneer over the OS APIs. There are a couple of flags that control network JVM settings  i.e. preferring IPV4 or IPV6, caching the result of a local host lookup to avoid trips to the DNS & caching of lookup results. Generally speaking, all the interesting stuff happens in the OS.

If you are having network issues with HAManager and DCS WebSphere components you can configure the  IBM_CS_IP_REFRESH_MINUTES custom property that controls how frequently the core group IP cache is cleared. By default the value is 60 seconds.


Java Networking Custom Properties
java.net.preferIPv4Stack (default: false)
If IPv6 is available on the operating system the underlying native socket will be an IPv6 socket. This allows Java(tm) applications to connect too, and accept connections from, both IPv4 and IPv6 hosts.If an application has a preference to only use IPv4 sockets then this property can be set to true. The implication is that the application will not be able to communicate with IPv6 hosts.



java.net.preferIPv6Addresses (default: false)
If IPv6 is available on the operating system the default preference is to prefer an IPv4-mapped address over an IPv6 address. This is for backward compatibility reasons - for example applications that depend on access to an IPv4 only service or applications that depend on the %d.%d.%d.%d representation of an IP address. This property can be set to try to change the preferences to use IPv6 addresses over IPv4 addresses. This allows applications to be tested and deployed in environments where the application is expected to connect to IPv6 services.



networkaddress.cache.ttl (default: -1)
Specified in java.security to indicate the caching policy for successful name lookups from the name service.. The value is specified as as integer to indicate the number of seconds to cache the successful lookup.A value of -1 indicates "cache forever".


networkaddress.cache.negative.ttl (default: 10)
Specified in java.security to indicate the caching policy for un-successful name lookups from the name service.. The value is specified as as integer to indicate the number of seconds to cache the failure for un-successful lookups.A value of 0 indicates "never cache". A value of -1 indicates "cache forever".

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.