weblogic:~> uname -a
Linux car3g-4 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux
Linux car3g-4 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux
java version "1.5.0_17"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_17-b04, mixed mode)
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_17-b04, mixed mode)
weblogic92
informix11.5
大并发的情况下weblogic后台频繁出现下述错误,由于更新驱动会有风险。
所以项目组迟迟没有更新。直到weblogic的工程师反馈给甲方后才,项目组
才决定更新这个驱动。
"[STUCK] ExecuteThread: '201' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock
com.informix.jdbc.IfxSqliConnect@22004da8 WAITING
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
com.informix.jdbc.IfxSqliConnect.lockSession(IfxSqliConnect.java:4013)
com.informix.jdbc.IfxSqliConnect.lockSession(IfxSqliConnect.java:4001)
com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1415)
com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1401)
com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:204)
com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:1212)
com.informix.jdbc.IfxPreparedStatement.executeQuery(IfxPreparedStatement.java:369)
weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
com.informix.jdbc.IfxSqliConnect.lockSession(IfxSqliConnect.java:4013)
com.informix.jdbc.IfxSqliConnect.lockSession(IfxSqliConnect.java:4001)
com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1415)
com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1401)
com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:204)
com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:1212)
com.informix.jdbc.IfxPreparedStatement.executeQuery(IfxPreparedStatement.java:369)
weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)
原因:此错误为inofrmix的驱动问题,在IBM的官方文档有记录。
Problem summary
-
**************************************************************** USERS AFFECTED: All Informix JDBC users **************************************************************** PROBLEM DESCRIPTION: The Informix JDBC hangs when connecting to an Informix Dynamic Server (IDS) via Weblogic **************************************************************** RECOMMENDATION: You need to upgrade their JDBC version JDBC-3.50.JC2. ****************************************************************
-
驱动url写法如下:
jdbc:informix-sqli://192.168.0.1:40001/test2100:informixserver=ids_test;NEWLOCALE=zh_CN,zh_CN;
NEWCODESET=gb2312,8859-1,819;IFX_USE_STRENC=true;user=idstest
生产环境中不要轻易更新驱动。
要现在测试环境中进行全面的测试,确认无误后。在升级生产环境。
如果错误有可能发生,那么它一定会发生。所以我们不要抱着侥幸心理,去避开某些已知的问题。