启动Welogic受管节点遭遇

前几天在做从其他服务器启动受管节点的测试时遇到了这个错误,现记录一下。

当时正在搭建一个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上的官文:


BEA-000116: Failed To Join Cluster: Java.Net.SocketException: No Such Device [ID 1116574.1]
  修改时间 17-FEB-2011     类型 PROBLEM     状态 PUBLISHED  

In this Document
  Symptoms
  Cause
  Solution
  References

Applies to:

Oracle Weblogic Server - Version: 9.2 to 10.3.2
Information in this document applies to any platform.

Symptoms

On Red Hat Enterprise Linux 5.3, WebLogic Server is starting and failing with the following exceptions.
<May 18, 2009 6:09:17 PM CEST> <Error> <Cluster>
<BEA-000116> <Failed to join cluster Cluster-0 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)
..... 
..... 
>


Cause

The reason that the server is failing with a BEA-000116 exception is that the server is unable to find a network route.  

That the server is unable to find a network route is confirmed by the NIC with 2 Mac addresses, for example:

eth0 Link encap:Ethernet HWaddr 00:23:7D:9F:A5:80
eth1 Link encap:Ethernet HWaddr 00:23:7D:9F:A5:76

Solution

As explained in the "Multicast and Multihomed Machines: Tuning Multicast Features" document herehttp://download.oracle.com/docs/cd/E13222_01/wls/docs92/cluster/multicast_configuration.html#wp1035097, please use the WebLogic Server Administration Console to ensure that an InterfaceAddress for each Server instance is specified to handle Multicast traffic.

  1. Log in to the WebLogic Server Administration Console.
  2. For each Server
    (a) Please navigate to Home > Summary of Servers > Summary of Machines > machine_name > Summary of Clusters > cluster_name > server_name
    (b) Please specify an Interface Address in the Configuration Tab > Cluster Tab
  3. After restarting your domain, please check the config,xml file for an entry like this in the <server> element:
    <interface-address>10.16.10.12</interface-address>

References

NOTE:1092037.1  - WebLogic Server (WLS) Multicast Issues Support Pattern





你可能感兴趣的:(启动Welogic受管节点遭遇 )