-
Notifications
You must be signed in to change notification settings - Fork 8.6k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
调用Informix数据库存储过程, 当存储过程抛出异常后, 再次调用此存储过程一直报错 #1498
Comments
这个应该是因为PSCache引起的,我尽快处理吧 |
已经修复,请使用1.0.27版本 https://github.com/alibaba/druid/releases/tag/1.0.27 |
你好, 这个问题没有彻底修改好. 每次存储过程异常, 第一次调用都会报: 'Statement' already closed. 具体异常栈信息: Caused by: java.sql.SQLException: 'Statement' already closed.
at com.informix.util.IfxErrMsg.getSQLException(Unknown Source)
at com.informix.jdbc.IfxPreparedStatement.setObject(Unknown Source)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_setObject(FilterChainImpl.java:2923)
at com.alibaba.druid.filter.FilterAdapter.preparedStatement_setObject(FilterAdapter.java:1298)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_setObject(FilterChainImpl.java:2920)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.setObject(PreparedStatementProxyImpl.java:411)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.setObject(DruidPooledPreparedStatement.java:476) |
digitalsonic
added a commit
to digitalsonic/druid
that referenced
this issue
Feb 23, 2017
While the pooled PreparedStatement threw an exception, remove it from the pool, and then close it. The commit 94638ad didn’t fix issue alibaba#1498 . Try this one.
do you have solve it, we have recurrence in 1.0.28 @wenshao |
The problem remains in druid-1.1.16 。apache/incubator-seata#2797 (comment) |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
最近项目中后台使用Informix数据库, 某次测试发现, 当存储过程抛出异常后, 再次调用此存储过程一直报错.
此存储过程参数中有一个String类型参数, 在过程内, 会将此参数转为Int类型.
在反向测试的时候, 故意输入了一些字母, 强制转换int后, 存储过程会抛出异常.
此时在正向测试, 输入参数正确的情况下, 继续抛出异常:
此时不论怎么调用此存储过程都会报错. 但调用其他存储过程不会报错.
开始以为是自己代码错误, 排查后不是, 直接使用JDBC连接调用, 一切正常, 使用DBCP数据源测试, 也正常. 不知道到问题出在duird的哪里.
debug:
报错点一直在: DruidPooledPreparedStatement类的227行: ResultSet rs = stmt.executeQuery();
框架使用的是Spirng4.3.2版本
dao层调用大致代码如下:
The text was updated successfully, but these errors were encountered: