前几天在做从其他服务器启动受管节点的测试时遇到了这个错误,现记录一下。
当时正在搭建一个Weblogic的Cluster集群,结果发现其中一个节点上的受管节点死活就是起不来,总是出现如下错误:
<Apr 17, 2012 8:23:49 PM CST> <Notice> <Log Management> <BEA-170027> <The server initialized the domain log broadcaster successfully. Log messages will now be broadcasted to the domain log.>
<Apr 17, 2012 8:23:49 PM CST> <Error> <Cluster> <BEA-000116> <Failed to join cluster SrcbCluster at address 239.192.0.0 due to: java.net.SocketException: No such device.
java.net.SocketException: No such device
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:276)
at weblogic.cluster.FragmentSocket.initializeMulticastSocket(FragmentSocket.java:112)
at weblogic.cluster.FragmentSocket.start(FragmentSocket.java:131)
Truncated. see log file for complete stacktrace
>
<Apr 17, 2012 8:23:49 PM CST> <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason:
There are 1 nested errors:
java.net.SocketException: No such device
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:276)
at weblogic.cluster.FragmentSocket.initializeMulticastSocket(FragmentSocket.java:112)
at weblogic.cluster.FragmentSocket.start(FragmentSocket.java:131)
at weblogic.cluster.MulticastManager$1.run(MulticastManager.java:186)
at weblogic.cluster.MulticastManager.startListening(MulticastManager.java:192)
at weblogic.cluster.InboundService.start(InboundService.java:31)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>
<Apr 17, 2012 8:23:49 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
<Apr 17, 2012 8:23:49 PM CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
<Apr 17, 2012 8:23:49 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
通过错误日志的字面意思可以知道,该错误应该是和网络设置有关,可能是网络不可达。查看了一下路由发现没有存在239.192.0.0的路由:
[root@utf11g soft]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.57 0.0.0.0 UG 0 0 0 eth0
239.192.0.0是一个广播地址,正常情况下网卡配了IP之后就会自动附加上的,不知道为什么我的路由表里面没有,于是手工加一下路由:
[root@utf11g ~]# route add -host 239.192.0.0 dev eth0
之后再启动受管节点就正常了:
7103 for protocols iiop, t3, ldap, http.>
<Apr 17, 2012 8:42:07 PM CST> <Notice> <WebLogicServer> <BEA-000357> <Started WebLogic Independent Managed Server "MServer2" for domain "srcbdc" running in Development Mode>
<Apr 17, 2012 8:42:07 PM CST> <Warning> <JMX> <BEA-149510> <Unable to establish JMX Connectivity with the Adminstration Server AdminServer at <JMXServiceURL:null>.>
<Apr 17, 2012 8:42:08 PM CST> <Notice> <Cluster> <BEA-000102> <Joining cluster SrcbCluster on 239.192.0.0:9080>
<Apr 17, 2012 8:42:08 PM CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<Apr 17, 2012 8:42:08 PM CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
附上MOS上的官文: