gpt4 book ai didi

java - Tomcat 中的无响应线程

转载 作者:行者123 更新时间:2023-11-28 22:46:15 25 4
gpt4 key购买 nike

环境: 在 Java 1.5.x 上的 Tomcat 5.x 在 Oracle 9i 上使用 OracleJDBC 驱动程序

问题:我有一个处于 RUNNABLE 状态的线程。它似乎永远不会完成。

我该如何进一步调查?这很容易重现。

这个线程基本上是在尝试插入一些数据

更新:这个插入发生在同步块(synchronized block)中

这是我从线程转储中得到的..

"http-9080-Processor24" daemon prio=6 tid=0x0b20bc00 nid=0x1274 runnable [0x0d55e000..0x0d55fc94]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.DataPacket.receive(Unknown Source)
at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:478)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10580)
- locked <0x02c10078> (a oracle.jdbc.driver.T4CPreparedStatement)
- locked <0x03dceb08> (a oracle.jdbc.driver.T4CConnection)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

最佳答案

看起来您的应用程序正在执行 oracle.jdbc.driver.OraclePreparedStatement.executeBatch(),它似乎在(永远?)等待 NetInputStream 实际返回一些东西。

那么,正在运行的查询/语句是否可能永远不会返回?有没有可能你的数据库挂了?或者您可能在 Oracle JDBC 驱动程序中遇到了某种错误 - 您使用的是最新版本吗?

您可能还应该检查您的 JDBC 驱动程序是否允许您指定连接/查询超时等配置,以防止驱动程序永远等待。

关于java - Tomcat 中的无响应线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1238667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com