-
Notifications
You must be signed in to change notification settings - Fork 8.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oracle增加表字段导致“违反协议”异常 #1598
Comments
这个问题已经查清,是我们给Druid连接池设置的driverClassName写的有问题,应该是oracle.jdbc.OracleDriver,我们写成了oracle.jdbc.driver.OracleDriver,这就导致Druid的ExceptionSorter没有正常启动,所以出现"ora-17401:违反协议"异常之后,连接没有被正确地抛弃。 但是不是可以在初始化ExceptionSorter和ValidConnectionChecker的时候把oracle.jdbc.driver.OracleDriver这种driver的判断也给加上,来加强一些兼容性:
因为可能很多老应用都写的是oracle.jdbc.driver.OracleDriver,而且这种写法应用也能正常使用,只是oracle 9i以后把oracle.jdbc.driver.OracleDriver标记成了Deprecated。 |
谢谢反馈,问题已经修正,将会在下一个版本1.0.29中带上 |
修正里面漏了ValidConnectionChecker的初始化:
|
还是没有解决,我们更新成1.29并且把驱动名称改成oracle.jdbc.OracleDriver,仍然报这个异常 |
这个问题有修复吗,我们目前采用了很恶心的方式解决的 @wenshao http://blog.csdn.net/zl18310999566/article/details/71678361?locationNum=13&fps=1 |
两年多了,仍然没有解决,仍然需要爬坑。 |
按照如下步骤可以重现BUG:
该BUG在1.0.25、1.0.27、1.0.28版本中均有出现。其中,1.0.25版本是必现的,1.0.27和1.0.28因为会抛弃出错的PreparedStatement,所以不是必现的。但是多次、有间隔地重复步骤4,还是会出现该异常。
虽然OracleExceptionSorter类中将ora-17401定义成了fatal类异常,但似乎连接池并没有正确地抛弃出错的连接。
更多信息请参考#1498 #1516 #1557。
The text was updated successfully, but these errors were encountered: