Daniel Patrick
Daniel Patrick

Reputation: 4340

SocketException when starting Oracle Coherence

Trying to run Oracle Coherence server in development mode and I get:

2015-04-09 09:56:28.319/1.508 Oracle Coherence GE 12.1.3.0.0 <D4>(thread=main,member=n/a): TCMP bound to /xx.xx.49.22:8088 using SystemDatagramSocketProvider

Exception in thread "main" 2015-04-09 09:56:28.356/1.545 Oracle Coherence GE 12.1.3.0.0 <Error> (thread=main, member=n/a): Error while starting cluster 
(Wrapped) java.net.SocketException: An invalid argument was supplied
    at com.tangosol.util.Base.ensureRuntimeException(Base.java:289)
    ...
    at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:355)

Caused by: java.net.SocketException: An invalid argument was supplied
    at java.net.TwoStacksPlainDatagramSocketImpl.socketNativeSetOption(Native Method)
    ...
    at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:37)

New to Java and new to Coherence. So a socket exception means there was an error creating or connecting to a socket. I'm guessing in this case the issue is with creating the socket? What are some of the things I should be looking for?

EDIT: After more research, I keep seeing IPv4 vs IPv6 coming up. Seems that TwoStacksPlainDatagramSocketImpl adds support for IPv6. I'm currently looking into my local settings for IP.

EDIT2: Thanks to biziclop for providing the somewhat obvious (via Google) solution. Turns out when IPv6 is disabled on your network, the latest Java release has a bug that throws a SocketException.

This can be solved with: -Djava.net.preferIPv4Stack=true

Upvotes: 0

Views: 960

Answers (1)

biziclop
biziclop

Reputation: 49804

First port of call, as always is Google.

That leads to a JDK bug, which turns out to be a duplicate of another bug, which should hopefully have answers to your specific problem.

Upvotes: 3

Related Questions