所以我有一个最近包含zookeeper的java应用程序。这个应用程序部署在WebLogic 11g服务器上。因为使用zookeeper,当我运行stopWebLogic.sh来关闭我的服务器时,WebLogic服务器进入SHUTDOWN模式,但WLS JVM进程仍在运行。 我几乎可以肯定,zookeeper会以某种方式阻止JVM关闭。
所以我的问题是,当我尝试关闭WebLogic时,如何强制ZooKeeper被杀死100%。
在stopWebLogic.sh中作为第一行我添加以下行:
echo kill | nc 127.0.0.1 2181
然而它没有工作,并且在WLS关闭后JVM仍在运行。
答案 0 :(得分:0)
ZooKeeper有一个相关的bug。可能是这样的:
https://issues.apache.org/jira/browse/ZOOKEEPER-846
另外,考虑一下,如果可能,请查看Netflix Curator for ZooKeeper:
https://github.com/netflix/curator
答案 1 :(得分:0)
解决方案是从
更改以下stopWebLogic.sh脚本行echo "shutdown('${SERVER_NAME}','Server', ignoreSessions='true')" >>"shutdown.py"
到
echo "shutdown('${SERVER_NAME}','Server', force='true', ignoreSessions='true')" >>"shutdown.py"
在WLS处于SHUTDOWN模式后大约10秒钟后,JVM将会消失。