jvm在连接数据库时挂起

时间:2014-11-04 16:43:30

标签: dynamic-proxy

嗨,在websphere应用程序中,jvm在两个月内挂起两次,导致整个应用程序崩溃,因此需要知道是因为数据库连接速度慢还是驱动程序问题。日志片段是

    There is/are 1 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:155)
    at oracle.net.ns.Packet.receive(Packet.java:283)
    at oracle.net.ns.DataPacket.receive(DataPacket.java:103)
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
    at oracle.jdbc.driver.T4CSocketInputStreamW.rapper.read(T4CSocketInputStreamWrapper.java:79)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
    at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1084)
    at  oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:359)
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:263)
    at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:169)
    at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:619)
    at com.common.database.ResultSetHandler.invoke(ResultSetHandler.java:44)
    ** at $Proxy1.next(Unknown Source)**
    at com.common.database.CachedRowSetImpl.populate(CachedRowSetImpl.java:597)
    at com.common.database.PreparedStatementHandler.invoke(PreparedStatementHandler.java:47)
    **at $Proxy0.executeQuery(Unknown Source)**

1 个答案:

答案 0 :(得分:1)

当您在调用java.net.SocketInputStream.socketRead0()方法时发现挂起时,可能是由于多种原因造成的。

  1. IBM WebSphere Application Server与远程资源(在您的Oracle数据库中)之间的网络问题

  2. 该应用程序只是读取大量数据。

  3. Oracle数据库没有响应,或者遇到性能问题导致响应缓慢。

  4. 您可以在以下IBM链接中找到更多信息:

    http://www-01.ibm.com/support/docview.wss?uid=swg21610001

相关问题