AIX oracle jdbc丢失问题记录

转自网上,摘录

AIX版本 V5.3

ORACLE 版本 10.2.0.1

JDBC Driver版本 10.2.0.1 , 10.2.0.4

DATABASE CONNECT POOL  C3P0

异常信息大意 error code [17002],。。。, Cause: java.sql.SQLException: Io exception: There is no process to read data written to a pipe



这个错误,无论是对数据库的select、insert或update都存在,怀疑是oracle驱动的问题,因为在oracle官网我们可以看到诸如此类相应的版本与驱动信息



原以为最好的方法是用oracle版本一致的驱动版本,但经过多次测试发现,采用高版本的JDBC DRIVER报错的时间会向后推迟久点(10.2.0.1大约1天多后,10.2.0.4大意两天左右),可问题依旧不可避免,也许是AIX自身的缺陷,但尚未证明并给予解决
尽管无法解决本问题;给出经过验证的可行性解决方案:


异常根源:
    JDBC Idle Connection Problems on AIX Platform [ID 472572.1]
   JDBC Connections from E-Business Suite Application Tier Fail with "java.sql.SQLException: Io exception: There is no process to read data written to a pipe." [ID 734293.1]

解决方案:
    升级AIX 5.3 的 bos.net.tcp.client

详细信息:
    A.查看bos.net.tcp.client版本号
    $ lslpp -l |grep bos.net.tcp.client
     bos.net.tcp.client        5.3.0.50  COMMITTED  TCP/IP Client Support
    bos.net.tcp.client        5.3.0.50  COMMITTED  TCP/IP Client Support
    B.查看系统核版本号
    $ oslevel -r
     5300-05
   C.可升级到的版本号 bos.net.tcp.client   5.3.0.54
   D.进行升级工作!









--------------------------------------------------------------------------------

请帮忙分析一下这个报错原因。



2010-12-23 16:22:29 Thread-0 ERROR (cn.com.alcatelsbell.sbg.ps.egov.common.db.ConnectionUtility:139) - Can not get database connection.

java.sql.SQLException: Io exception: There is no process to read data written to a pipe.

         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)

         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)

         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)

         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)

         at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)

         at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)

         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)

         at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297)

         at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221)

         at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:165)

         at cn.com.alcatelsbell.sbg.ps.egov.common.db.AbstractConnectionUtility.getConnection(AbstractConnectionUtility.java:137)

         at cn.com.alcatelsbell.svg.bm.common.ConnectionUtility.getConnectionOfDW(ConnectionUtility.java:67)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.BDSessionTrafficUtility.importBDUserSessionNMUrlTraffic(BDSessionTrafficUtility.java:48)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.statistics.BDSessionTrafficStatistics.save(BDSessionTrafficStatistics.java:187)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.statistics.ProcessorForStatistics.doProcessing(ProcessorForStatistics.java:173)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.SegmentProcessor.run(SegmentProcessor.java:50)

         at java.lang.Thread.run(Thread.java:735)

2010-12-23 16:22:30 Thread-0 ERROR (cn.com.alcatelsbell.svg.bm.logloader.processor.BDSessionTrafficUtility:76) - insert data to BD_USER_SESSION_NMURL_TRAFFIC Exception !

java.sql.SQLException: Can not get database connection. Reason: Io exception: There is no process to read data written to a pipe.

         at cn.com.alcatelsbell.sbg.ps.egov.common.db.AbstractConnectionUtility.getConnection(AbstractConnectionUtility.java:140)

         at cn.com.alcatelsbell.svg.bm.common.ConnectionUtility.getConnectionOfDW(ConnectionUtility.java:67)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.BDSessionTrafficUtility.importBDUserSessionNMUrlTraffic(BDSessionTrafficUtility.java:48)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.statistics.BDSessionTrafficStatistics.save(BDSessionTrafficStatistics.java:187)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.statistics.ProcessorForStatistics.doProcessing(ProcessorForStatistics.java:173)

         at cn.com.alcatelsbell.svg.bm.logloader.processor.SegmentProcessor.run(SegmentProcessor.java:50)

         at java.lang.Thread.run(Thread.java:735)






你可能感兴趣的:(java,oracle,sql,jdbc,AIX)