본문 바로가기
오라클/Coherence

[COH] IBM AIX - The socket name is not available on this system

by sangyeon 2021. 9. 17.
728x90

- ISSUE : IBM AIX에서 Multicast 주소로 구성된 Coherence Cluster Server 기동시 실패 에러 발생하는 현상

- CAUSE : Java는 OS에서 IPv4와 IPv6 모두 사용할 경우 IPv6를 우선적으로 사용한다. 

              그렇기 때문에, Coherence Cluster Multicast 설정시 IPv4 형식으로 설정했기 때문에 Socket Exception

              이 발생한 것이다.

- Solution : Coherence 기동 스크립트에 IPv4를 우선적으로 사용할 수 있도록 아래 자바 옵션을 추가한다.

COHERENCE_OPTS="${COHERENCE_OPTS} -Djava.net.preferIPv4Stack=true"

 

Error 로그 스택

2021-09-14 15:07:14.586/3.448 Oracle Coherence GE 12.1.3.0.0 <D4> (thread=main, member=n/a): TCMP bound to /211.110.82.132:8088 using SystemDatagramSocketProvider
2021-09-14 15:07:14.589/3.451 Oracle Coherence GE 12.1.3.0.0 <Error> (thread=main, member=n/a): Error while starting cluster: (Wrapped) java.net.SocketException: The socket name is not available on this system. (Error setting socket option)
        at com.tangosol.util.Base.ensureRuntimeException(Base.java:289)
        at com.tangosol.util.Base.ensureRuntimeException(Base.java:270)
        at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:41)
        at com.tangosol.coherence.component.net.Cluster.start(Cluster.CDB:11)
        at com.tangosol.coherence.component.util.SafeCluster.startCluster(SafeCluster.CDB:4)
        at com.tangosol.coherence.component.util.SafeCluster.restartCluster(SafeCluster.CDB:10)
        at com.tangosol.coherence.component.util.SafeCluster.ensureRunningCluster(SafeCluster.CDB:30)
        at com.tangosol.coherence.component.util.SafeCluster.start(SafeCluster.CDB:2)
        at com.tangosol.net.CacheFactory.ensureCluster(CacheFactory.java:428)
        at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:578)
        at com.tangosol.net.ExtensibleConfigurableCacheFactory.startServices(ExtensibleConfigurableCacheFactory.java:672)
        at com.tangosol.net.DefaultCacheServer.startServicesInternal(DefaultCacheServer.java:468)
        at com.tangosol.net.DefaultCacheServer.initialStartServices(DefaultCacheServer.java:567)
        at com.tangosol.net.DefaultCacheServer.startAndMonitor(DefaultCacheServer.java:74)
        at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:355)
Caused by: java.net.SocketException: The socket name is not available on this system. (Error setting socket option)
        at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
        at java.net.AbstractPlainDatagramSocketImpl.setOption(AbstractPlainDatagramSocketImpl.java:322)
        at java.net.MulticastSocket.setInterface(MulticastSocket.java:479)
        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:128)
        at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:37)
        ... 12 more

 

728x90