weird problem SocketException
jreeman Jan 9, 2009 3:24 PMHello,
I use jboss cache in a clustered environement, here is my config file :
<?xml version="1.0" encoding="UTF-8"?> <!-- This cluster cache contains the "last" id of archives for the different mgmt data When a data is modified, the new id of the data is updated on all controllers and will be compared to the data in the local cache on controllers and based on expiration policy (see for example : tech.data.expiration.time.insecond in controller-env.properties) --> <server> <mbean code="org.jboss.cache.jmx.CacheJmxWrapper" name="jboss.cache:service=TreeCache"> <depends>jboss:service=Naming</depends> <attribute name="IsolationLevel">READ_COMMITTED</attribute> <attribute name="CacheMode">REPL_SYNC</attribute> <!-- Policy configurations : FIFO Policy --> <attribute name="EvictionPolicyConfig"> <config> <attribute name="policyClass">org.jboss.cache.eviction.FIFOPolicy</attribute> <!-- Cache wide default --> <region name="/_default_"> <attribute name="maxNodes">1000</attribute> </region> <region name="/clusters" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">50</attribute> </region> <region name="/section-mappings" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">100</attribute> </region> <region name="/mgmt-mappings" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">50</attribute> </region> <region name="/clients" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">100</attribute> </region> <region name="/cfes" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">100</attribute> </region> <region name="/sections" policyClass="org.jboss.cache.eviction.FIFOPolicy"> <attribute name="maxNodes">200</attribute> </region> </config> </attribute> <attribute name="ClusterName">Cluster-Of-Controllers</attribute> <!-- JGroups protocol stack properties --> <attribute name="ClusterConfig"> <config> <TCP start_port="7800" loopback="false" enable_diagnostics="false" /> <!-- choose a mcast_addr that no other machine/processus use --> <!-- ip_ttl = 0 for local cluster, ip_ttl=1 for multicast in the current network/sub-network > 1 and < 32 same organization or site --> <MPING timeout="3000" bind_to_all_interfaces="false" mcast_addr="225.0.0.1" mcast_port="7500" ip_ttl="0" num_initial_members="2" /> <!-- suspecting node failures only when a regular TCP connection to the node fails --> <FD_SOCK /> <!-- configuration to have a sequence for each message and detect/treat gap in this sequence --> <pbcast.NAKACK gc_lag="50" max_xmit_size="8192" retransmit_timeout="600,1200,2400,4800" /> <!-- the sender resends the message if it hasn't received an ACK after 100 ms the first time --> <UNICAST timeout="600,1200,2400"/> <!-- time before two garbage collection --> <pbcast.STABLE desired_avg_gossip="20000" /> <!-- merge partitioned cluster --> <MERGE2 max_interval="10000" min_interval="2000"/> <!-- managing nodes that joins --> <pbcast.GMS join_retry_timeout="2000" join_timeout="5000" print_local_addr="false" shun="true" /> <!-- transfer the state of the cache to the other node --> <pbcast.STATE_TRANSFER /> </config> </attribute> <attribute name="FetchStateOnStartup">false</attribute> <attribute name="InitialStateRetrievalTimeout">5000</attribute> <attribute name="LockAcquisitionTimeout">15000</attribute> <attribute name="UseMarshalling">false</attribute> <attribute name="CacheLoaderShared">true</attribute> <attribute name="CacheLoaderPreload">/</attribute> <attribute name="CacheLoaderPassivation">false</attribute> <attribute name="CacheLoaderFetchPersistentState">false</attribute> <attribute name="CacheLoaderFetchTransientState">false</attribute> <attribute name="CacheLoaderAsynchronous">false</attribute> </mbean> </server>
I have set the properties : -Djava.net.preferIPv4Stack=true because without I had exceptions.
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not bound to any interface
This exception disappear but now I have this error in my log :
org.jboss.cache.CacheException: Unable to invoke method public void org.jboss.cache.RPCManagerImpl.start() on object instance org.jboss.cache.RPCManagerImpl@77eb97 at org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:127) at org.jboss.cache.factories.ComponentRegistry$PrioritizedMethod.invoke(ComponentRegistry.java:932) at org.jboss.cache.factories.ComponentRegistry.internalStart(ComponentRegistry.java:718) at org.jboss.cache.factories.ComponentRegistry.start(ComponentRegistry.java:582) at org.jboss.cache.invocation.CacheInvocationDelegate.start(CacheInvocationDelegate.java:279) at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:95) at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:67) at ... org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:123) ... 26 more Caused by: org.jboss.cache.CacheException: Unable to connect to JGroups channel at org.jboss.cache.RPCManagerImpl.start(RPCManagerImpl.java:163) ... 31 more Caused by: org.jgroups.ChannelException: failed to start protocol stack at org.jgroups.JChannel.startStack(JChannel.java:1550) at org.jgroups.JChannel.connect(JChannel.java:429) at org.jboss.cache.RPCManagerImpl.start(RPCManagerImpl.java:147) ... 31 more Caused by: java.net.SocketException: Cannot assign requested address at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method) at java.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:299) at java.net.MulticastSocket.setInterface(MulticastSocket.java:420) at org.jgroups.protocols.MPING.start(MPING.java:236) at org.jgroups.stack.Configurator.startProtocolStack(Configurator.java:124) at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:392) at org.jgroups.JChannel.startStack(JChannel.java:1547)