Weblogic Coincé Fil sur JDBC appel

Qui nous sont fréquemment une série de Coincé threads sur nos serveurs Weblogic. Je l'ai analysé sur une période de temps.

Ce que j'aimerais comprendre, c'est que cette collé filetage du bloc indique c'est encore la lecture des données à partir de la prise de la base de données puisque les requêtes sont simples SÉLECTIONNEZ trucs?

at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at oracle.net.ns.Packet.receive(Packet.java:239)
        at oracle.net.ns.DataPacket.receive(DataPacket.java:92)

Nous avons exécuté la commande netstat et d'autres commandes, prises à partir de l'application Weblogic server pour la Base de données en fonction du nombre de connexions dans le pool.

Toutes les idées que d'autre que nous devrions étudier ici?

Trace de la pile du thread dump:

"[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x61a5b000 nid=0x25f runnable [0x6147b000..0x6147eeb0]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at oracle.net.ns.Packet.receive(Packet.java:239)
        at oracle.net.ns.DataPacket.receive(DataPacket.java:92)
        at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:172)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:117)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:92)
        at oracle.net.ns.NetInputStream.read(NetInputStream.java:77)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1023)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:999)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:584)
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
        at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1000)
        at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:314)
        - locked <0x774546e0> (a oracle.jdbc.driver.T4CConnection)
        at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:228)
        - locked <0x774546e0> (a oracle.jdbc.driver.T4CConnection)
        at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Unknown Source)

Les bits à partir de weblogic.work.ExecuteThread.run ici a été omis. Nous avons 8 ensembles de fil dépôts - et chaque montrer le thread en attente sur la même ligne et le même objet verrouillé

at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:314)
        - locked <0x774546e0> (a oracle.jdbc.driver.T4CConnection)
Est weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next en bas de la pile?
nope, le reste est à notre code à l'appel de cette via springframework API.
StuckThreadMaxTime est à compter à partir de weblogic.work.ExecuteThread.execute. Peut-être que la base de données n'est pas le seul endroit à regarder pour...
vrai, mais nous avons 8 jeux de TDs prises dans les 4 minutes, et le fil est sur la même ligne oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:314) - locked <0x773c1758> (a oracle.jdbc.driver.T4CConnection)
pourriez-vous s'il vous plaît laissez-moi savoir quel était le problème dans votre cas ?

OriginalL'auteur JoseK | 2010-12-22