首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.sql.SQLException:Could不回滚自动提交设置(JDBC与OracleConnection,WebLogic12c)

java.sql.SQLException:Could不回滚自动提交设置(JDBC与OracleConnection,WebLogic12c)
EN

Stack Overflow用户
提问于 2020-11-03 16:31:09
回答 1查看 1.7K关注 0票数 0

技术: JDBC,Weblogic : 12c,Databse : Oracle 12c

我最近将我的weblogic服务器从10g迁移到了12c版本。在12c版本中,以下自动提交参数默认设置为true:

autocommet = true autoCommitSpecComplaint = true

因此,即使调用rollback()方法,也会自动提交所有数据库事务。

在调试java代码之后,我注意到自动提交操作是在执行callableStatement.execute();方法之后执行的。也就是说,在调用rollback()方法之前正在进行自动提交。并且,在执行rollback()方法时,将引发java.sql.SQLException:Could,而不是在异常上自动提交设置的回滚

我在weblogic的Server选项卡上设置了下面的参数。

-Doracle.jdbc.autoComitSpecCompliant=false -Doracle.jdbc.autocommit=false

但没有运气。我仍然面临着这个问题

我读过一些文章,建议使用旧的OJDBC驱动程序,但我不想在Weblogic服务器上使用任何旧的驱动程序

我想重写web逻辑服务器本身的这些参数,.So,请帮助我解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2020-11-11 08:58:24

如果希望能够回滚数据库事务,则必须禁用自动提交,否则所有DML查询都将立即提交。要禁用自动提交,请确保在服务器启动期间设置了以下属性(它是JVM系统属性):

-Doracle.jdbc.autoCommit=false

(请注意大写C)

如果您一直收到此错误:

java.sql.SQLException:无法在设置为自动提交的情况下提交

或者回滚的情况

java.sql.SQLException:无法将自动提交设置为回滚

那么您仍然处于自动提交模式。

只有当不能禁用自动提交并且代码仍然显式地调用提交或回滚(<-这将是一个bug)时,属性oracle.jdbc.autoCommitSpecCompliant才能真正使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64666802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档