启动weblogic 被管服务器,出现如下错误信息:
- <span style="font-size:14px;"><Nov 13, 2013 12:57:10 PM CST> <Error> <Cluster> <BEA-000109> <An error occurred while sending multicast message: java.io.IOException: Invalid argument
- java.io.IOException: Invalid argument
- at java.net.PlainDatagramSocketImpl.send(Native Method)
- at java.net.DatagramSocket.send(DatagramSocket.java:612)
- at weblogic.cluster.MulticastFragmentSocket.sendThrottled(MulticastFragmentSocket.java:206)
- at weblogic.cluster.MulticastFragmentSocket.send(MulticastFragmentSocket.java:158)
- at weblogic.cluster.FragmentSocketWrapper.send(FragmentSocketWrapper.java:91)
- Truncated. see log file for complete stacktrace
- >
- <Nov 13, 2013 12:57:10 PM CST> <Error> <Cluster> <BEA-000110> <Multicast socket receive error: java.net.SocketException: Socket closed
- java.net.SocketException: Socket closed
- at java.net.PlainDatagramSocketImpl.receive0(Native Method)
- at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
- at java.net.DatagramSocket.receive(DatagramSocket.java:712)
- at weblogic.cluster.MulticastFragmentSocket.receive(MulticastFragmentSocket.java:239)
- at weblogic.cluster.FragmentSocketWrapper.receive(FragmentSocketWrapper.java:98)
- Truncated. see log file for complete stacktrace
- > </span>
三:解决办法
1.(前记)第一次出现这种情况是在一台机子上测试,自己回头查找原因。幸运的是很快找到了问题的答案。在配置集群时将 <multicast-port>设置为7001 ,和管理服务器端口冲突,导致报出此错误。最后在config.xml中改变多播地址端口,设置成默认的7777。
2.这一次是在两台机子部署的集群,一台机子两个server,128的机子上跑着AdminServer 和 ms1 ,127的机子上跑ms2和ProxyServer。被管总是启动报错。开始以为多播地址不对,或者端口冲突,改变了均无效。这里用的weblogic默认多播地址239.192.0.0想想地址应该没问题。发现单独的被管server可以启动,在集群中的就不可以,经过测试确定是集群间通信问题。
后来在Oracle的论坛中找到贴子,说在setDomainEnv中JAVA_OPTION节加入:-Djava.net.preferIPv4Stack=true
我的修改如下:
或者使用启动脚本启动加入:
JAVA_OPTION="-Djava.net.preferIPv4Stack=true"
export JAVA_OPTIONS
最后问题解决: