转载地址: http://hi.baidu.com/chinadm123/blog/item/7c3a242ffbbd60dd7c1e7168.html


<BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now> 

Redhat5.4 64位搭建weblogic924双机,双机软件是rhcsrhcs(redhat cluster suite)redhat自带的双机套件。

在测试weblogic双机切换功能时总要重启若干次才能切换成功,查看weblogic启动日志,发现有如下报错:

<Mar 20, 2012 10:55:10 AM EDT> <Notice> <WebLogicServer><BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now> 

<Mar 20, 2012 10:55:10 AM EDT> <Alert> <WebLogicServer> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>> 

<Mar 20, 2012 10:55:11 AM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>

具体为什么会出这个错,我没太弄清,反正与javaJVM有关系,但是找到了解决方案。

solutions

JAVA_OPTIONS变量后面加如下参数:

·        -Xrs for the Sun JVM, or

·        -Xnohup for the JRockit

JAVA_OPTIONS变量在哪个文件里呢?有多个文件都有的,但实际上在哪个文件里添加都是一样的,因为在weblogic的启动过程中这些文件都会用到的。

you can specify in any of the following files:
- setdomainenv.sh
- startweblogic.sh
具体上面这两个文件在哪里,与你weblogic的安装目录有关系,我的weblogic的家目录是:

/weblogic/bea/

所以我的这两个文件所在路径是:

[root@js2 bin]# cd /weblogic/bea/user_projects/domains/base_domain/bin/s

setDomainEnv.sh           startPointBaseConsole.sh  stopManagedWebLogic.sh    

startManagedWebLogic.sh   startWebLogic.sh          stopWebLogic.sh  

我是在setdomainenv.sh文件里加的,在此文件的后几行找到JAVA_OPTIONS,并做如下修改:

#JAVA_OPTIONS="${JAVA_OPTIONS}"

JAVA_OPTIONS="${JAVA_OPTIONS} -Xnohup"

export JAVA_OPTIONS

其实也就是只添加了-Xnohup参数。

 

这里需要提醒一下:

1,为什么我添加的是-Xnohup,而不是-Xrs,是因为我的weblogic使用的SDKbeaJRockit,具体使用哪一种在配置weblogic的时候会有提示,如下:

 

<-------------- BEA WebLogic Configuration Wizard ----------------->

 

Java SDK Selection:

-------------------

 

   1|JRockit SDK 1.5.0_22 @ /weblogic/bea/jrockit_150_22

 ->2|Sun SDK 1.5.0_22 @ /weblogic/bea/jdk150_22

   3|Other Java SDK

 

Enter index number to select OR [Exit][Previous][Next]> 1

因为我选择的是1,所以这里选择的参数是-Xnohup.

其实不管是JRockit SDK 1.5.0_22还是Sun SDK 1.5.0_22都已经在安装weblogic的时候已经安装了,这里只是配置时给我一个选择SDK的机会。

2,为什么我选择1(JRockit SDK 1.5.0_22),而不是选择默认(Sun SDK 1.5.0_22),是因为这样会报下面这个错:

 <Mar 21, 2012 9:30:30 AM EDT> <Error> <Socket> <BEA-000438> <Unable to load performance pack. Using Java I/O instead. Please ensure that libmuxer library is in :'/weblogic/bea/jdk150_22/jre/lib/i386/client:/weblogic/bea/jdk150_22/jre/lib/i386:/weblogic/bea/jdk150_22/jre/../lib/i386:/weblogic/bea/patch_weblogic924/profiles/default/native:/weblogic/bea/weblogic92/server/native/linux/x86_64:/weblogic/bea/weblogic92/server/native/linux/x86_64/oci920_8

 

下面附weblogic双机启动,关闭,监控脚本:

#cat /etc/init.d/weblogic.sh

#!/bin/bash

#

# chkconfig: 2345 02 98

# Source function library.

WLS_LOG_PATH=/var/

#Start the weblogic Server

#The following command assumes that the weglogic login will not prompt the password

start() {

echo -n "Starting Weblogic  Server:"

/weblogic/bea/user_projects/domains/base_domain/bin/startWebLogic.sh >> ${WLS_LOG_PATH}/wls_start.log 2>&1 &

touch /var/lock/subsys/weblogic

echo

}

stop() {

echo -n "Shutting down Weblogic Server:"

/weblogic/bea/user_projects/domains/base_domain/bin/stopWebLogic.sh >> ${WLS_LOG_PATH}/wls_start.log 2>&1 &

rm -f /var/lock/subsys/weblogic

echo

}

restart() {

echo -n "Restart Weblogic Server"

stop

start

echo

}

case "$1" in

start)

start

;;

stop)

stop

exit 0

;;

status)

netstat -atn |grep 7001 && ps -ef|grep -v grep|grep "weblogic" | grep "java"

        if [ $? = 0 ]

        then

                echo "weblogic is running."

        else

                echo "weblogic is down"

        exit 0

        fi

        ;;

restart|reload)

stop

start

;;

*)

echo "Usage: $0 {start|stop|reload|restart|status}"

exit 1

;;

esac

exit 0

 

-----end-----------------------------------

你可能感兴趣的:(java,jvm,server,weblogic,redhat,sun)