java.sql.SQLException: Io exception: Invalid Packet Lenght

本文介绍了在使用Oracle JDBC驱动时遇到的多种异常情况及其原因,这些异常主要由多个线程同时使用同一个Connection对象引起。文章提供了两种解决方案:一是确保同一时刻只有一个线程使用JDBC驱动;二是升级到更高版本的驱动,例如10.2.0.4版本,该版本能有效避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Similar exceptions are :

1. java.io.IOException: Io exception: Unexpected packet

2. java.sql.SQLException: Protocol violation

3. java.sql.SQLException: Io exception: Bad packet type

4. java.sql.SQLException: Bigger type length than Maximum

5. java.sql.SQLException: Io exception: Invalid Packet Lenght

6. java.sql.SQLException: Closed Connection

7. java.sql.SQLException: Closed Statement

8. java.sql.SQLException: Refcursor value is invalid

9. java.sql.SQLException: Io exception: Size Data Unit (SDU) mismatch

10. java.sql.SQLException: Must be logged on to server

All these occur almost with same reason. It is caused when more than one thread is trying to make simultaneous use of the thin Oracle JDBC driver via the same Connection object.

To correct this problem we have to ensure that only one thread of execution was making use of the JDBC driver at a time through the same Connection OR upgrade to a later version of the driver.

Further investigation says, with JDBC driver version is 9.2.0.2.0 it is reproducible and 9.2.0.3.0 is free from this. Any ways, it is advisable to go with latest jdbc driver version i.e. 10.2.0.4 which can solve this issue.

Multi-thread programming needs this as quick note.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值