日常维护中,weblogic检查的几个项:
1、JVM:
如最大堆内存、最小堆内存。
2、GC回收:
查看jvm空闲内存变化情况,每次GC的回收情况;控制台可以强制垃圾回收,看看回收内存是否太小,如果回收太小,可能存在内存溢出的隐患。
3、检查线程数:
查看线程数统计信息,查看线程最大数是否过大,如果过大,就要注意系统为什么有这么大的压力了。
4、线程是否有stuck状态:
线程stuck状态,说明存在超时的线程,也有可能存在线程死锁。查看线程数的时候,查看stuck线程统计一栏是否大于0,如果stuck一直大于0,就要查看系统的运行状态、数据库事务进程、jvm进程的状态和内存使用率是否正常。
如果有Thread dump文件,或者java core文件,就可以分析服务器线程之间是否存在死锁,以及那些线程处于stuck状态;产生Thread dump,可以通过命令kill -3 <wls_pid>来解决。
5、JDBC连接池:
检查等待连接的数目是否过大,可以做适当调整。如果用户访问过慢,weblogic线程数又很少,就要怀疑是否是没有释放数据库连接。
6、系统日志:
通过系统日志分析weblogic服务器和应用程序出现的错误,找到可能影响系统性能的服务器和应用程序的地方。
(1)<2017-3-13 上午09时12分42秒 CST> <Warning> <JTA> <BEA-110486> <Transaction BEA1-008833896FDD4FA3966A cannot complete commit processing because resource [weblogic.jdbc.wrapper.JTSXAResourceImpl] is unavailable. The transaction will be abandoned after 177 seconds unless all resources acknowledge the commit decision.>
Resolution:
This is a warning message that indicates something is wrong in code, specifically regarding a transaction. There must be some transaction which keeps opening after some exception occurs. As a result, the server complains that there is a transaction still running which no one seems to be using it at all.