WebSphere如何重启服务
- WebSphere
- 控制台页面重启服务
- 命令重启服务
- 发生程序死锁
- 强制重启服务
WebSphere
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。
控制台页面重启服务
命令重启服务
先切换到节点bin目录
cd /opt/IBM/WebSphere/AppServer/profiles/节点名/bin
然后执行以下命令
./startServer.sh server_name
./stopServer.sh server_name
或者
./startServer.sh server_name -username <用户名> -password <密码>
./stopServer.sh server_name -username <用户名> -password <密码>
发生程序死锁
[19-5-24 15:44:53:115 CST] 00000108 SystemOut O 2019-05-24 15:44:53[][Thread-143] WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@8ea1429b -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
[19-5-24 15:44:53:117 CST] 00000108 SystemOut O 2019-05-24 15:44:53[][Thread-143] WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@8ea1429b -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3Active Threads: 0Active Tasks: Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1cb970eacom.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@f31aef5f
Pool thread stack traces:Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,]Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,]Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,]
从日志看,线程挂起在获取数据源连接的地方。问题可能是由于集群环境下获取数据源出现死锁,从而导致资源无法释放,最终线程池被耗尽,线程挂起。 最后只能重启WAS服务。
这个问题的解决办法是:在数据源里面增加一个参数 useRRASetEquals 设置为 true
添加路径:
资源 -> JDBC -> XXX数据源->定制属性 -> 新建
增加参数: useRRASetEquals ,值为 true , 类型为 java.lang.Boolean
这个参数应该是WAS7新加的,因为加这个参数有版本要求,必须是 7.0.0.13 之后的版本,否则会报错。
强制重启服务
如果程序死锁,看见线程被挂起,线程池内存溢出,这时候在WebSphere控制台页面上往往操作非常卡,并且不能正常停止服务器,那么恭喜你,需要强制重启服务器了。
首先在Linux登陆WebSphere环境
- 查看WebSphere的java进程:ps -ef | grep java
- 然后用kill -9杀掉活跃进程:kill -9 进程ID
用ps -ef | grep java再检查一遍进程,这时候登陆WebSphere控制台页面,发现登陆不上,说明WebSphere环境已经强制关闭.
开始启动WebSphere:
- 启动DM服务:./startManager.sh
- 启动代理: ./startNode.sh
- 启动服务: ./startServer.sh server_name
接下来就是见证奇迹的时刻!访问WebSphere控制台页面,可以直接在页面进行启动服务,这时候你会发现,原来重启服务就是这么简单