Sybase存储过程报transaction mode错误

36 篇文章 0 订阅

报错信息:

11:17:53,375 ERROR [AlarmCoreDAO] 告警取消错误:

com.sybase.jdbc2.jdbc.SybSQLException: Stored procedure 'sfa_ams_handle_can' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.

 

        at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:3281)

        at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:2548)

        at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)

        at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:220)

        at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:203)

        at com.sybase.jdbc2.jdbc.SybStatement.executeLoop(SybStatement.java:1785)

        at com.sybase.jdbc2.jdbc.SybCallableStatement.execute(SybCallableStatement.java:156)

        at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:276)

        at com.boco.alarm.commom.service.dao.AlarmCoreDAODnmsMutiFilterImpl.cancelAlarms(AlarmCoreDAODnmsMutiFilterImpl.java:262)

        at com.boco.alarm.common.service.impl.CancelAlarmService.process(CancelAlarmService.java:69)

        at com.boco.alarm.common.service.ServiceListenerFactory$ServiceListenerImpl.run(Unknown Source)

        at java.lang.Thread.run(Thread.java:595)

 

解决办法:

在数据库中执行sp_procxmode sfa_ams_handle_can, 'anymode'即可。sfa_ams_handle_can是存储过程名。

 

我的情况:程序中有一块是先删除再插入功能,因此在程序中加了Spring的事务,插入操作生成主键调用了数据库的一个存储过程,因此报此上错误,后来执行sp_procxmode时,发现存储过程的transaction mode默认为unchained,后来按照上面的解决办法解决了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值