启动 Oracle Coherence 时出现 SocketException
SocketException when starting Oracle Coherence
在开发模式下尝试 运行 Oracle Coherence 服务器,我得到:
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)
Java 和 Coherence 的新手。所以套接字异常意味着创建或连接到套接字时出错。我猜在这种情况下问题在于创建套接字?我应该寻找哪些东西?
编辑:经过更多研究,我不断看到 IPv4 与 IPv6 的对比。似乎 TwoStacksPlainDatagramSocketImpl 添加了对 IPv6 的支持。我目前正在查看我的本地 IP 设置。
EDIT2:感谢 biziclop 提供了一些显而易见的(通过 Google)解决方案。事实证明,当您的网络禁用 IPv6 时,最新的 Java 版本有一个会引发 SocketException 的错误。
这可以通过以下方式解决:-Djava.net.preferIPv4Stack=true
第一个停靠港,一如既往Google。
这会导致 JDK bug, which turns out to be a duplicate of another bug,希望它能解决您的具体问题。
在开发模式下尝试 运行 Oracle Coherence 服务器,我得到:
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)
Java 和 Coherence 的新手。所以套接字异常意味着创建或连接到套接字时出错。我猜在这种情况下问题在于创建套接字?我应该寻找哪些东西?
编辑:经过更多研究,我不断看到 IPv4 与 IPv6 的对比。似乎 TwoStacksPlainDatagramSocketImpl 添加了对 IPv6 的支持。我目前正在查看我的本地 IP 设置。
EDIT2:感谢 biziclop 提供了一些显而易见的(通过 Google)解决方案。事实证明,当您的网络禁用 IPv6 时,最新的 Java 版本有一个会引发 SocketException 的错误。
这可以通过以下方式解决:-Djava.net.preferIPv4Stack=true
第一个停靠港,一如既往Google。
这会导致 JDK bug, which turns out to be a duplicate of another bug,希望它能解决您的具体问题。