This discussion is archived
3 Replies Latest reply: May 7, 2013 12:12 AM by Jonathan.Knight RSS

Coherence not working on AIX

SunnyDays Journeyer
Currently Being Moderated
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 Expert
    Currently Being Moderated
    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 Journeyer
    Currently Being Moderated
    But how do I set the Java property?

    java.net.preferIPv4Stack=true


    K.
  • 3. Re: Coherence not working on AIX
    Jonathan.Knight Expert
    Currently Being Moderated
    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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points