WebLogic中部署的应用的优雅停止,都是借助于Weblogic的机制实现。以下是我测试过的WebLogic支持优雅停止的JEE组件:
- servlet
- ejb
其它JEE组件未测试过,有性趣的可以自己尝试。
优雅停止可以是应用级,也可以是应用服务器级
1)应用级:
java -cp <WLS_HOME>/wlserver/server/lib/weblogic.jar weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password 12345678 -name wtcServer -stop -adminmode -graceful -ignoresessions
2)应用服务器级:
java -cp <WLS_HOME>/wlserver/modules/com.oracle.weblogic.package.jar weblogic.WLST shutdown-managedServer.py 2>&1
关于优雅停止的一些说明:
1.wtc组件是否支持优雅停止?
wtc client不支持优雅停止
wtc server不支持优雅停止
虽然在weblogic.wtc.jatmi.dsession中提供了心跳方法,但停掉这些心跳也不会达到优雅停止的效果:
2.应用服务器级优雅停止如何使用?
使用WLTS工具中的shutdown命令实现优雅停止。shutdown命令中参数的说明如下:
若使用shutdown命令中参数的默认值,则shutdown命令就已经是优雅停止的。以下是两个例子供参考:
优雅停止:
shutdown('EdspsgwServer', 'Server', 'false', 60, 'false', 'true')
强制停止:
shutdown('EdspsgwServer', 'Server', 'true', 60, 'true', 'true')
3.应用级优雅停止如何使用?
使用weblogic.Deployer中的-stop参数,其它参数的说明如下:
参考文档
weblogic.Deployer Command-Line Reference
https://docs.oracle.com/cd/E13222_01/wls/docs103/deployment/wldeployer.html
WLST Command and Variable Reference
https://docs.oracle.com/middleware/1213/wls/WLSTC/reference.htm#WLSTC119