3 Replies Latest reply: May 7, 2013 2:12 AM by Jonathan.Knight RSS

    Coherence not working on AIX

    SunnyDays
      Hi,

      Installed coherence, even the new 3.7.1.6 full distribution. but when it started, it raised an exception about socket:

      bash-3.2# ./coherence.sh
      ./coherence.sh[11]: pushd: not found.
      ./coherence.sh[15]: popd: not found.
      ** Starting storage disabled console **
      java version "1.6.0"
      Java(TM) SE Runtime Environment (build pap6460sr10fp1-20120321_01(SR10 FP1))
      IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc64-64 jvmap6460sr10fp1-20120202_101568 (JIT enabled, AOT enabled)
      J9VM - 20120202_101568
      JIT - r9_20111107_21307ifx1
      GC - 20120202_AA)
      JCL - 20120320_01

      2013-05-02 15:39:29.755/1.990 Oracle Coherence 3.7.1.0 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/u02/app/oracle/coherence_3.7.1/coherence/lib/coherence.jar!/tangosol-coherence.xml"
      2013-05-02 15:39:29.948/2.182 Oracle Coherence 3.7.1.0 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/u02/app/oracle/coherence_3.7.1/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
      2013-05-02 15:39:29.950/2.184 Oracle Coherence 3.7.1.0 <D5> (thread=main, member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
      2013-05-02 15:39:29.974/2.208 Oracle Coherence 3.7.1.0 <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified

      Oracle Coherence Version 3.7.1.0 Build 27797
      Grid Edition: Development mode
      Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

      2013-05-02 15:39:31.987/4.221 Oracle Coherence GE 3.7.1.0 <Warning> (thread=main, member=n/a): PreferredUnicastUdpSocket failed to set receive buffer size to 1444 packets (1.99MB); actual size is 42%, 609 packets (863KB). Consult your OS documentation regarding increasing the maximum socket buffer size. Proceeding with the actual value may cause sub-optimal performance.
      2013-05-02 15:39:31.987/4.221 Oracle Coherence GE 3.7.1.0 <D4> (thread=main, member=n/a): TCMP bound to /192.168.1.74:8088 using SystemSocketProvider
      2013-05-02 15:39:31.991/4.225 Oracle Coherence GE 3.7.1.0 <Error> (thread=main, member=n/a): Error while starting cluster: (Wrapped) java.net.SocketException: The socket name is not available on this system.
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
      at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:40)
      at com.tangosol.coherence.component.net.Cluster.start(Cluster.CDB:11)
      at com.tangosol.coherence.component.util.SafeCluster.startCluster(SafeCluster.CDB:3)
      at com.tangosol.coherence.component.util.SafeCluster.restartCluster(SafeCluster.CDB:10)
      at com.tangosol.coherence.component.util.SafeCluster.ensureRunningCluster(SafeCluster.CDB:26)
      at com.tangosol.coherence.component.util.SafeCluster.start(SafeCluster.CDB:2)
      at com.tangosol.net.CacheFactory.ensureCluster(CacheFactory.java:427)
      at com.tangosol.coherence.component.application.console.Coherence.run(Coherence.CDB:25)
      at com.tangosol.coherence.component.application.console.Coherence.main(Coherence.CDB:3)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:600)
      at com.tangosol.net.CacheFactory.main(CacheFactory.java:827)
      Caused by: java.net.SocketException: The socket name is not available on this system.
      at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
      at java.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:408)
      at java.net.MulticastSocket.setInterface(MulticastSocket.java:424)
      at com.tangosol.coherence.component.net.socket.udpSocket.MulticastUdpSocket.instantiateDatagramSocket(MulticastUdpSocket.CDB:33)
      at com.tangosol.coherence.component.net.socket.UdpSocket.open(UdpSocket.CDB:12)
      at com.tangosol.coherence.component.net.Cluster$SocketManager.bindSockets(Cluster.CDB:129)
      at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:36)
      ... 13 more

      Exception in thread "main" java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:600)
      at com.tangosol.net.CacheFactory.main(CacheFactory.java:827)
      Caused by: (Wrapped) java.net.SocketException: The socket name is not available on this system.
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:269)
      at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:40)
      at com.tangosol.coherence.component.net.Cluster.start(Cluster.CDB:11)
      at com.tangosol.coherence.component.util.SafeCluster.startCluster(SafeCluster.CDB:3)
      at com.tangosol.coherence.component.util.SafeCluster.restartCluster(SafeCluster.CDB:10)
      at com.tangosol.coherence.component.util.SafeCluster.ensureRunningCluster(SafeCluster.CDB:26)
      at com.tangosol.coherence.component.util.SafeCluster.start(SafeCluster.CDB:2)
      at com.tangosol.net.CacheFactory.ensureCluster(CacheFactory.java:427)
      at com.tangosol.coherence.component.application.console.Coherence.run(Coherence.CDB:25)
      at com.tangosol.coherence.component.application.console.Coherence.main(Coherence.CDB:3)
      ... 5 more
      Caused by: java.net.SocketException: The socket name is not available on this system.
      at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
      at java.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:408)
      at java.net.MulticastSocket.setInterface(MulticastSocket.java:424)
      at com.tangosol.coherence.component.net.socket.udpSocket.MulticastUdpSocket.instantiateDatagramSocket(MulticastUdpSocket.CDB:33)
      at com.tangosol.coherence.component.net.socket.UdpSocket.open(UdpSocket.CDB:12)
      at com.tangosol.coherence.component.net.Cluster$SocketManager.bindSockets(Cluster.CDB:129)
      at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:36)
      ... 13 more


      Any help?

      K.
        • 1. Re: Coherence not working on AIX
          Jonathan.Knight
          Hi,

          It looks like a problem with Coherence trying to open the multi-cast socket.

          The Coherence documentation here: http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_plat_consid.htm#BIHDFDHH says that AIX now defaults to IPv6 for multicast so it may be that you just need to add the -Djava.net.preferIPv4Stack=true system property.

          If that does not work you might need to check with the multi-cast test http://docs.oracle.com/cd/E24290_01/coh.371/e22838/tune_multigramtest.htm#BHAICAGE

          JK
          • 2. Re: Coherence not working on AIX
            SunnyDays
            But how do I set the Java property?

            java.net.preferIPv4Stack=true


            K.
            • 3. Re: Coherence not working on AIX
              Jonathan.Knight
              Hi,

              From your original post it looks like you are using the coherence.sh script file so to set JVM properties you need to edit this script. Specifically, towards the bottom of this file you will see a line like this...
              JAVA_OPTS="-Xms$MEMORY -Xmx$MEMORY -Dtangosol.coherence.distributed.localstorage=$STORAGE_ENABLED $JMXPROPERTIES"
              ...you need to edit this line to read...
              JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Xms$MEMORY -Xmx$MEMORY -Dtangosol.coherence.distributed.localstorage=$STORAGE_ENABLED $JMXPROPERTIES"
              JK