weblogic卡住了问题

时间:2012-02-23 08:32:40

标签: java sql-server-2005 java-ee weblogic weblogic-10.x

我们遇到了如下问题 我们不知道问题是: 1.socket从数据库读取太长,无法到达StuckThreadMaxTime 600s 2.database查询运行时间过长 2.锁定数据库或其他对象

任何建议都将不胜感激!

  

Thread-36“[STUCK] ExecuteThread:队列中的'3':   'weblogic.kernel.Default(self-tuning)'“{       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 [thin]   锁]       com.riskintegrator.infrastructure.database.DBConnector。(DBConnector.java:56)       com.riskintegrator.slsb.BaseSessionBean.populateFormWithPreparedStatement(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.ProcessAssessment(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)

1 个答案:

答案 0 :(得分:6)

线程转储显示线程已经卡住了超过600秒(10分钟),而从SQL Server接收数据

根据我的上述经验,这可能是长时间运行的数据库查询或Weblogic与数据库之间的间歇性连接失败,使得套接字处于不稳定的状态。< / p>

这是一次性还是同样的堆栈跟踪在其他卡住的线程上也可用 - 在同一行?如果是,那么您可能需要使用SQL查询分析器查看数据库查询,或者它在MS-SQL中等效

如果是一次性的,可能是网络问题