1 Reply Latest reply on Jan 9, 2009 3:52 PM by Laurent Mimoun

    weird problem SocketException

    Laurent Mimoun Newbie

      Hello,

      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)