Java Web容器线程报告为挂起
我经常在SysOut日志中看到以下异常。异常堆栈跟踪表示web容器线程正在等待DB操作完成。但是,我在应用程序中没有长时间运行的DB查询。最重要的是,我在我的高级环境中看到了这个例外:UAT(集群)无法在低级环境中复制。开发/安装Java Web容器线程报告为挂起,java,multithreading,oracle,jdbc,websphere-8,Java,Multithreading,Oracle,Jdbc,Websphere 8,我经常在SysOut日志中看到以下异常。异常堆栈跟踪表示web容器线程正在等待DB操作完成。但是,我在应用程序中没有长时间运行的DB查询。最重要的是,我在我的高级环境中看到了这个例外:UAT(集群)无法在低级环境中复制。开发/安装 Exception stack trace: 00000086 ThreadMonitor W WSVR0605W: Thread "WebContainer : 1" (000000ae) has been active for 631219 milliseco
Exception stack trace:
00000086 ThreadMonitor W WSVR0605W: Thread "WebContainer : 1" (000000ae) has been active for 631219 milliseconds and may be hung. There is/are 2 thread(s) in total in the server that may be hung.
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:161)
at java.net.SocketInputStream.read(SocketInputStream.java:132)
at oracle.net.ns.Packet.receive(Packet.java:300)
at oracle.net.ns.DataPacket.receive(DataPacket.java:106)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:260)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:185)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:102)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteQuery(WSJdbcPreparedStatement.java:1112)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:714)
在更高的环境中,WAS和DB服务器之间有一个防火墙/路由器。由于这种情况在较低的环境中不会发生,我怀疑这是因为在较高的环境中服务器的设置方式
有人能指出我需要在更高的环境中检查的不同属性或设置吗?-WAS、操作系统、路由器配置等
非常感谢您的帮助。请在此处查看IBM提供的解决方案()。这可能是某些特定Resultset get语句的问题。请检查此处()。是否有线程已完成或永久挂起的消息?当您看到该消息时,请使用Oracle工具检查数据库端是否有任何正在运行的语句。