中间件出现CPU%现像,急,谢谢 100分
我这用的是HP小型机操作HPUX,10个CPU,一个专门做查询的Webloigc8.1中间件,以前运行的很好,最近出现单个CPU100%被占用现像。下面是DUMP信息(没有业务的情况下做的),CPU应该是被17号线程占用掉,java.sql.SQLException.setNextException()这个方法死循环。
请高手帮我分析一下是什么因原,先谢过。
"ExecuteThread: '18' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=0004baf0 nid=31 lwp_id=2267968 in Object.wait() [0x32169000..0x321694f0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
- locked <3ba2d350> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
"ExecuteThread: '17' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=0004b988 nid=30 lwp_id=2267967 runnable [0x321eb000..0x321ea4f0]
at java.sql.SQLException.setNextException(SQLException.java:149)
- waiting to lock <3ff88fd8> (a java.sql.SQLWarning)
at java.sql.SQLWarning.setNextWarning(SQLWarning.java:107)
at oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:752)
at oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:734)
at oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:787)
at oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:806)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:187)
at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:602)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:265)
- locked <3becc7b0> (a oracle.jdbc.driver.T4CConnection)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:197)
- locked <40612c58> (a oracle.jdbc.driver.OracleResultSetImpl)
at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Unknown Source)
at cn.com.pansky.leostudio.qryrpt.manager.QryMgr.performQuery(QryMgr.java:1064)
at cn.com.pansky.leostudio.qryrpt.manager.QryMgr.executeQuery(QryMgr.java:270)
at cn.com.pansky.leostudio.qryrpt.command.QryExecCmd.perform(QryExecCmd.java:37)
at cn.com.pansky.leostudio.workflow.command.WfBaseCmd.execute(WfBaseCmd.java:105)
at cn.com.pansky.leostudio.txc.container.impl.TxContainerBase.execute(TxContainerBase.java:128)
at cn.com.pansky.leostudio.txc.container.impl.TxSynContainerImpl.process(TxSynContainerImpl.java:34)
at cn.com.pansky.leostudio.txc.container.impl.TxSynContainer_f7ynk6_ELOImpl.process(TxSynContainer_f7ynk6_ELOImpl.java:45)
at cn.com.pansky.leostudio.txc.container.impl.TxDefaultDispatcher.doSynExecute(TxDefaultDispatcher.java:58)
at cn.com.pansky.leostudio.txc.container.impl.TxDefaultDispatcher.forward(TxDefaultDispatcher.java:37)
at cn.com.pansky.leostudio.txc.container.impl.TxExecutorImpl.newTX(TxExecutorImpl.java:251)
at cn.com.pansky.leostudio.txc.container.impl.TxExecutorImpl.execute(TxExecutorImpl.java:88)
at cn.com.pansky.leostudio.txc.container.impl.TxExecutor_xgu4dq_EOImpl.execute(TxExecutor_xgu4dq_EOImpl.java:46)
at cn.com.pansky.leostudio.txc.container.impl.TxExecutor_xgu4dq_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
at cn.com.pansky.leostudio.txc.container.impl.TxExecutor_xgu4dq_EOImpl_814_WLStub.execute(Unknown Source)
at cn.com.pansky.leostudio.txc.proxy.ServiceAccessProxy.execute(ServiceAccessProxy.java:35)
at cn.com.pansky.leostudio.web.controller.BusinessServiceAgent.process(BusinessServiceAgent.java:68)
at cn.com.pansky.leostudio.web.controller.DefaultRequestProcessor.performServiceRequest(DefaultRequestProcessor.java:665)
at cn.com.pansky.leostudio.web.controller.DefaultRequestProcessor.process(DefaultRequestProcessor.java:200)
at cn.com.pansky.leostudio.web.controller.WebFrontController.process(WebFrontController.java:172)
at cn.com.pansky.leostudio.web.controller.WebFrontController.doPost(WebFrontController.java:104)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at cn.com.pansky.leostudio.web.util.HeadOffServlet.doFilter(HeadOffServlet.java:104)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
"ExecuteThread: '10' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=0004afb0 nid=23 lwp_id=2267960 in Object.wait() [0x32571000..0x325714f0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:153)
- locked <3ba2af50> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:172)
"ExecuteThread: '9' for queue: 'weblogic.kernel.Default'" daemon prio=10 tid=0004ae48 nid=22 lwp_id=2267959 waiting for monitor entry [0x325f2000..0x325f24f0]
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:991)
- waiting to lock <3becc7b0> (a oracle.jdbc.driver.T4CConnection)
at weblogic.jdbc.wrapper.JTSConnection.internalRollback(JTSConnection.java:454)
- locked <406154f0> (a weblogic.jdbc.wrapper.JTSConnection_oracle_jdbc_driver_T4CConnection)
at weblogic.jdbc.wrapper.JTSXAResourceImpl.rollback(JTSXAResourceImpl.java:75)
at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:1358)
at weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:687)
at weblogic.transaction.internal.ServerSCInfo.startRollback(ServerSCInfo.java:729)
at weblogic.transaction.internal.ServerTransactionImpl.localRollback(ServerTransactionImpl.java:1909)
at weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2592)
at weblogic.transaction.internal.TransactionImpl$1.execute(TransactionImpl.java:1798)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) --------------------编程问答-------------------- - waiting to lock <3ff88fd8> (a java.sql.SQLWarning)
是不是其他线程锁表了? --------------------编程问答-------------------- sleep --------------------编程问答-------------------- 不是锁,我看了JDBC的原码,是一下死循环。
何况锁是不占用用户CPU的。 --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 麻烦看下oracle的会话用户数是否已经达到上限?
假如有,可以强制关闭会话。估计是程序源码中有未关闭数据连接的程序。不过CPU达到100%还是挺奇怪的。
不过从抛错信息来看有点像我描述的问题。 --------------------编程问答-------------------- 路人甲.... --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 当年也是weblogic集群,发现两个机器(配置相同)所占资源差很多,查程序阿查weblogic配置阿。最后原因:有根网线接触不好。世界之大,无奇不有。楼主的问题不了解 --------------------编程问答-------------------- lz要干嘛? --------------------编程问答-------------------- 有点难度哦 --------------------编程问答-------------------- 不会,帮顶 --------------------编程问答-------------------- --------------------编程问答-------------------- 也有遇到类似的问题,密切关注... --------------------编程问答-------------------- 怎么没有人回答呢
补充:企业软件 , 中间件