服务端方法报javax.transaction.RollbackException错误
金蝶云社区-manamao
manamao
0人赞赏了该文章 1,589次浏览 未经作者许可,禁止转载编辑于2015年11月11日 12:26:30

这个需求是库存调拨单的需求:
客户要求库存调拨单审核后进行锁库,防止其他业务员进行择料选择,然后流程走完点击直接调拨(系统自带)功能按钮调出。
我们的设计思路是,审核后进行后台直接锁库,然后直接调拨事件前通过调用数据库存储过程解锁库存,如果直接调拨失败,则再次调用存储过程锁库,现在出现问题.
我在调拨失败再次调用存储过程时,系统会报java.sql.SQLException: javax.transaction.RollbackException错误,导致锁库失败
我尝试把第一次调用通过facade在dep下调用,设置的事务类型是supports或者requiredNew,也都是同样的错误。
下面是我调用存储过程的代码:
Connection conngl = null;
CallableStatement proc = null; // 创建执行存储过程的对象
try {
// 管理数据库连接
conngl = EJBFactory.getConnection(ctx);
proc = conngl
.prepareCall("{ call hs_auditOrUnAuditStockTrB(?,?) }");
proc.setString(1, billId);
proc.setString(2, auditFlag);
proc.execute();// 执行
conngl.commit();
} catch (Exception ex2) {
ex2.printStackTrace();
SQLUtils.cleanup(conngl);
} finally {
SQLUtils.cleanup(proc, conngl);
}

求教各位大神,这样的需求应该怎么处理为好,或者有什么办法解决这个错误么

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0