为什么WebSphere的线程会挂起?

时间:2016-06-22 08:14:51

标签: java jdbc websphere-7 filenet-content-engine

我有WAS 7和Filenet CE 5.1并且有麻烦。 为什么WebSphere的线程会挂起。是JDBC驱动程序错误吗?

你能不能建议我。非常感谢!

[22.06.16 13:14:58:921 YEKT] 0000001d ThreadMonitor W   WSVR0605W: Thread "WebContainer : 15" (00000047) was active for 631301 msec and can be hanged up.  Total threads that can be hang up: 69.
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:140)
        at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782)
        at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:4838)
        at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:6150)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:402)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:332)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:942)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:618)
        at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:218)
        at com.filenet.engine.dbpersist.DBExecutionContext.getNextResult(DBExecutionContext.java:106)
        at com.filenet.engine.dbpersist.DBStatementList.executeStatements(DBStatementList.java:161)
        at com.filenet.engine.persist.DBStatementList2.executeStatementsNoResult(DBStatementList2.java:57)
        at com.filenet.engine.persist.IndependentPersister.executeChangeWork(IndependentPersister.java:409)
        at com.filenet.engine.persist.IndependentPersister.executeChange(IndependentPersister.java:225)
        at com.filenet.engine.persist.SubscribablePersister.executeChange(SubscribablePersister.java:172)
        at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1266)
        at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1146)
        at com.filenet.engine.ejb.EngineCoreBean._executeChanges(EngineCoreBean.java:618)

1 个答案:

答案 0 :(得分:6)

堆栈表示线程正在等待从数据库接收数据。

可能的原因包括:

  • 数据库已关闭(或无法通过网络进行通信)
  • 数据库中出现死锁
  • 您正在获取一些非常大的数据集和/或这样做效率低下,以致语句花费了过多的时间。您从未提及您的查询是否完成,但如果确实如此,我怀疑此选项是可疑的。