一、环境信息:
系统:CentOS 6.5 linux 32位
uname -a 命令查看:Linux master 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386 GNU/Linux
master机器: 192.168.2.127 ms2 + ProxyServer
backup机器: 192.168.2.128 AdminServer + ms1
weblogic:10.3.3.0
二问题描述:
启动weblogic 被管服务器,出现如下错误信息:
[plain]view plaincopyprint?
- <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>
<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
>
;
三:解决办法
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
我的修改如下:
或者使用启动脚本启动加入:
最后问题解决:
;;