Пытаюсь запустить сервер 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