DB2问题,程序运行时不定时出现以下sql报错问题!

|2012/11/2117:31:47.032:错误信息为:[IBM][CLIDriver][DB2/AIX64]SQL1476NThecurrenttransactio... |2012/11/21 17:31:47.032: 错误信息为:[IBM][CLI Driver][DB2/AIX64] SQL1476N The current transaction was rolled back because of error "-911". SQLSTATE=40506
java.sql.BatchUpdateException: [IBM][CLI Driver][DB2/AIX64] SQL1476N The current transaction was rolled back because of error "-911". SQLSTATE=40506
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_batch_return_code(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeBatch(Unknown Source)
at com.sunyard.operatornavagation.UpdateNavagation.updateCpicOnlineinfoForRM(UpdateNavagation.java:124)
at com.sunyard.insurance.icm.rm.NavigateResourceManagerServices.migrateResourceService(NavigateResourceManagerServices.java:1676)
at com.sunyard.insurance.icm.rm.SchedUpService.run(SchedUpService.java:111)
at java.lang.Thread.run(Thread.java:595)
|2012/11/21 17:31:47.036:错误信息为:[IBM][CLI Driver][DB2/AIX64] SQL1476N The current transaction was rolled back because of error "-911". SQLSTATE=40506
展开
 我来答
Manwill71
推荐于2017-09-25 · TA获得超过304个赞
知道答主
回答量:93
采纳率:100%
帮助的人:40.5万
展开全部
-911错误有两种可能:
一、死锁
二、超时
从你使用事务上来看,请检查你的事务是否提交;如果有提交,那么如果采用多重并发事务操作的时候,且在程序要返回结果集的时候,建议你将事务做简单的操作,而不是大量数据操作,等待反馈结果。这样的话,用户可能会失去耐心,从而加快更多的进程进行并发操作,增加并发事务量。

根据你的情况,给你如下建议:
一、根据你的需求,将反馈结果,进行小时更新或日更新;
二、根据你的实际况情,优化事务SQL语句;尽量采用中间表(没办法,DB2的数据特性)
三、延长超时设置
四、跟踪你的事务,保证事物完整性提交,尽可能减少死锁。
死锁分析方法:
用实例用户连接到db2实例,切换到死锁监视器路径下,运行db2evmon -path xxx >lock_rpt.txt来生成报告
追问
请问这种情况的出现会不会影像数据准确性?报错的地方我只是对数据做了个简单的更新sql,
追答
如果你将更新做成事务的话,表示已经回滚了。未更新数据。
事务的特性是:
一、原子性,如果有一步未成功操作,其他的数据都不会操作;
二、持久性,操作的过程不会因为死锁或外部原因而分步操作
三、一致性,数据的读取和操作是一致的;
四、隔离性,其实就是加锁,对记录或表进行加锁处理,防止在进程运行时对数据进行访问。
如果你未做成事务,只是表超大,那么应该是超时原因,
一、延长超时设置。
二、将表进行分区
匿名用户
2012-11-21
展开全部
貌似是Java的JDBC驱动有问题.不知道你用什么做开发的.推荐使用QC,亲测可用,V9.7可以使用的。QC里集成了驱动。感觉你用的Data Studio。检查连接时使用的驱动配置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TUBER727
2012-11-21 · TA获得超过428个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:113万
展开全部
SQLSTATE 40506: 由于 SQL 错误,当前事务已回滚。

检查一下你程序里的语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式