【问题标题】:Error executing IBM DB2 Stored Proceedure in EJB container在 EJB 容器中执行 IBM DB2 存储过程时出错
【发布时间】:2011-03-01 15:21:41
【问题描述】:

当我尝试在具有容器管理的持久性的无状态 bean 中执行存储过程时,出现以下错误;

com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-751, SQLSTATE=38003, SQLERRMC=STORED PROCEDURE;FXTR324;FXTR324;COMMIT, DRIVER=4.7.85

如果我手动创建数据库连接,即非托管事务,则存储过程执行不会出错。

我需要做什么才能在 EJB bean 中执行吗?

【问题讨论】:

    标签: java stored-procedures db2 ejb-3.0


    【解决方案1】:

    尝试为调用存储过程的方法设置事务属性为 NotSupported。这样,您将确保您的方法在没有活动事务上下文的情况下执行(活动的事务上下文将被挂起),因此您的存储过程(可能执行提交/回滚逻辑)将成功执行。

    欲了解更多信息,请查看this article

    【讨论】:

    • 感谢文档链接。我试过@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED),但还是失败了。事实证明这是由我在 JBoss 上的数据源配置引起的。我正在使用xa-datasource,根据定义,它是一个全局事务。我创建了一个local-datasource,问题现已解决。
    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多