chu*_*hun 1 java weblogic sql-server-2005 java-ee weblogic-10.x
我们遇到了一个问题,如下所示,我们不知道问题是:1.从数据库读取的时间太短到达StuckThreadMaxTime 600s 2.database查询运行时间过长2.锁定数据库或其他对象
任何建议将不胜感激!
螺纹-36 "[STUCK] ExecuteThread: '3' 的队列: 'weblogic.kernel.Default(自调谐)'"{jrockit.net.SocketNativeIO.readBytesPinned(SocketNativeIO.java:???)jrockit.net.SocketNativeIO .socketRead(SocketNativeIO.java:31)java.net.SocketInputStream.socketRead0(SocketInputStream.java:???)java.net.SocketInputStream.read(SocketInputStream.java:107)com.microsoft.sqlserver.jdbc.DBComms.receive (未知来源)com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(未知来源)com.microsoft.sqlserver.jdbc.SQLServerStatement $ StatementExecutionRequest.executeStatement(未知来源)com.microsoft.sqlserver.jdbc.CancelableRequest.execute(未知来源) )com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(未知来源)
^ - 持有锁:com.microsoft.sqlserver.jdbc.TDSWriter@41dbbdd [瘦锁] com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(未知来源)com.microsoft.sqlserver.jdbc.SQLServerStatement.getMaxFieldSize(未知来源) )weblogic.jdbc.common.internal.ConnectionEnv.cleanUpStatementForReUse(ConnectionEnv.java:1356)weblogic.jdbc.common.internal.ConnectionEnv.returnCachedStatement(ConnectionEnv.java:1118) ^ - 持有锁:weblogic.jdbc.common.internal .ConnectionEnv $ -1 @ 41f2d97 [瘦锁] weblogic.jdbc.wrapper.Statement.internalClose(Statement.java:342)weblogic.jdbc.wrapper.Statement.doClose(Statement.java:399)weblogic.jdbc.wrapper.Statement.close (Statement.java:391)com.riskintegrator.infrastructure.database.DBConnector.getConnection(DBConnector.java:66)^ - 持有锁:com.riskintegrator.infrastructure.database.DBConnector@1fda7d8 [瘦锁] com.riskintegrator. infrastructure.database.DBConnector.(DBConnector.java:56)com.riskintegrator.slsb.BaseSessionBean.populateFormWith PreparedStatement的(BaseSessionBean.java:76)com.riskintegrator.slsb.BaseSession_6uq9n4_EOImpl.populateFormWithPreparedStatement(BaseSession_6uq9n4_EOImpl.java:763)com.riskintegrator.slsb.BaseSessionDelegate.populateFormWithPreparedStatement(BaseSessionDelegate.java:118)com.riskintegrator.slsb.setup.SeverityBandBD. selectByValue(SeverityBandBD.java:181)com.riskintegrator.slsb.ca.ComputeAssessmentScoreBean.ComputeRiskScore(ComputeAssessmentScoreBean.java:332)com.riskintegrator.slsb.ca.ComputeAssessmentScoreBean.ComputeAssessmentScore(ComputeAssessmentScoreBean.java:119)com.riskintegrator.slsb. ca.ComputeAssessmentScoreBean_s478gq_EOImpl.ComputeAssessmentScore(ComputeAssessmentScoreBean_s478gq_EOImpl.java:37)com.riskintegrator.slsb.ca.ComputeAssessmentScoreBD.ComputeAssessmentScore(ComputeAssessmentScoreBD.java:32)com.riskintegrator.slsb.ca.AssessmentScoreBean.ProcessAssessment(AssessmentScoreBean.java:44)com. riskintegrator.slsb.ca.AssessmentScoreSession_nlmr0a_EOImpl.ProcessAssessme nt(AssessmentScoreSession_nlmr0a_EOImpl.java:37)com.riskintegrator.slsb.ca.AssessmentScoreBD.ProcessAssessment(AssessmentScoreBD.java:36)com.riskintegrator.slsb.ScheduledBatchBean.executeJob(ScheduledBatchBean.java:568)com.riskintegrator.slsb.ScheduledBatchBean. executeDailyRunOnce(ScheduledBatchBean.java:792)com.riskintegrator.slsb.ScheduledBatchBean.ejbTimeout(ScheduledBatchBean.java:957)weblogic.ejb.container.timer.TimerImpl.timerExpired(TimerImpl.java:219)
^ - 持有锁:weblogic.ejb.container.timer.TimerImpl@12c8e34 [瘦锁] weblogic.timers.internal.TimerImpl.run(TimerImpl.java:253)weblogic.work.SelfTuningWorkManagerImpl $ WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java :516)weblogic.work.ExecuteThread.execute(ExecuteThread.java:198)weblogic.work.ExecuteThread.run(ExecuteThread.java:165)
线程转储显示线程在从SQL Server接收数据时卡住了超过600秒(10分钟).
根据我的经验,这可能是长时间运行的数据库查询,也可能是Weblogic与数据库之间的间歇性连接故障,使得套接字处于不稳定状态.
这是一次性还是相同的堆栈跟踪也可用于其他卡住的线程 - 在同一行?如果是,那么您可能需要使用SQL查询分析器查看数据库查询,或者它在MS-SQL中等效
如果它是一次性的,它可能是网络问题
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |