起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8349|回复: 19

[处理中3] 单据提交报update sa_task错误

[复制链接]

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
发表于 2018-3-26 16:14:54 | 显示全部楼层 |阅读模式
这个问题也是时不时发生  并不是一直
这个X5平台怎么老有这样那样偶发的问题  而且起步的人还解决不了
请问这是什么情况  一天会有十个左右这样的问题上报


UPDATE_SA_TASK.jpg

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-3-26 16:32:48 | 显示全部楼层
发tomcat控制完整的错误信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
 楼主| 发表于 2018-3-26 16:42:13 | 显示全部楼层
本帖最后由 xuxu 于 2018-3-26 16:52 编辑
jishuang 发表于 2018-3-26 16:32
发tomcat控制完整的错误信息

很多 随便找两个个连续的
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: update SA_Task i set  i.sParent='82373B22B4AC4C77A9921CEE69B8FE92' where i='22985495C205418D98B0FF69BDF4371E' and  i.sLock='7B3F878FF5B04EBF85F45B35A488D24E'
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlUpdate(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.process.Task.doUpdate(Unknown Source)
        at com.justep.system.process.Individual.doSave(Unknown Source)
        at com.justep.system.process.Individual.save(Unknown Source)
        at com.justep.system.process.Task.save(Unknown Source)
        at com.justep.system.process.Task.save(Unknown Source)
        at com.justep.system.process.TaskEngine.commit(Unknown Source)
        at ProcessProcedure.executeTask(ProcessProcedure.java:502)
        ... 35 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: UPDATE SA_Task SET SA_Task.sParentID = ?  WHERE  (SA_Task.sID = ?) AND (SA_Task.SLOCK = ?) , binds: [82373B22B4AC4C77A9921CEE69B8FE92, 22985495C205418D98B0FF69BDF4371E, 7B3F878FF5B04EBF85F45B35A488D24E]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlUpdate(Unknown Source)
        ... 47 more
在下面又发现一个mysql的问题
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2113)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2049)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2034)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        ... 48 more

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-3-26 17:03:23 | 显示全部楼层
在数据库中给sID和sLock创建一个联合索引看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
 楼主| 发表于 2018-3-28 10:27:29 | 显示全部楼层
本帖最后由 xuxu 于 2018-3-28 10:34 编辑
jishuang 发表于 2018-3-26 17:03
在数据库中给sID和sLock创建一个联合索引看看

昨天按照你说的在生产环境的DB弄了
今天问同事  问题依然存在 没有任何变化
这个是否和x5自带的mysql隔离级别有关系?


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-3-28 11:49:51 | 显示全部楼层
这个错误就是mysql的标准报错,查的就是表锁的问题
https://blog.csdn.net/jerrydjy/article/details/41479315
https://www.cnblogs.com/softidea/p/5816502.html
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
 楼主| 发表于 2018-3-28 12:42:44 | 显示全部楼层
本帖最后由 xuxu 于 2018-3-28 12:53 编辑
jishuang 发表于 2018-3-28 11:49
这个错误就是mysql的标准报错,查的就是表锁的问题
https://blog.csdn.net/jerrydjy/article/details/41479 ...

你发的这个解决方案都没有细看吧.
1.这个update sa_Task语句是x5提供的 并非我们二次开发改的  而且sa_task也是x5自带的
这个对吧
2.别人的解决方案说的是给where条件加索引  也就是你昨天提供的方案
但是结果并不理想  问题还是存在
另外刚问了MYSQL DB的维护的同事
事物隔离级别是默认的repeatable read :可重复读时并不会锁住读取到的行
444.jpg
333.jpg
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-3-28 13:50:38 | 显示全部楼层
但现在报错就是mysql的标准报错啊,mysql的事务隔离级别平台也不会去设置
发一个报错完整的错误信息看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
 楼主| 发表于 2018-4-2 17:35:21 | 显示全部楼层
jishuang 发表于 2018-3-28 13:50
但现在报错就是mysql的标准报错啊,mysql的事务隔离级别平台也不会去设置
发一个报错完整的错误信息看看
...

这个错误消息可以么  很多都是类似的
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: update SA_Task i set  i.sParent='C10B319BF44F4DE88AC961852F779EDE' where i='2FEA24A7AB5644F3AD3071C7BBEDC0E2' and  i.sLock='222E2E7D06394525A22FA01BE3645A86'
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlUpdate(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.process.Task.doUpdate(Unknown Source)
        at com.justep.system.process.Individual.doSave(Unknown Source)
        at com.justep.system.process.Individual.save(Unknown Source)
        at com.justep.system.process.Task.save(Unknown Source)
        at com.justep.system.process.Task.save(Unknown Source)
        at com.justep.system.process.TaskEngine.commit(Unknown Source)
        at ProcessProcedure.executeTask(ProcessProcedure.java:502)
        ... 34 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: UPDATE SA_Task SET SA_Task.sParentID = ?  WHERE  (SA_Task.sID = ?) AND (SA_Task.SLOCK = ?) , binds: [C10B319BF44F4DE88AC961852F779EDE, 2FEA24A7AB5644F3AD3071C7BBEDC0E2, 222E2E7D06394525A22FA01BE3645A86]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlUpdate(Unknown Source)
        ... 46 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
        at com.mysql.jdbc.Util.getInstance(Util.java:383)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2113)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2049)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2034)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        ... 47 more
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-4-2 17:41:33 | 显示全部楼层
这个错误就是mysql错误信息抛出的标准的mysql错误信息,设置了索引后数据库重启了吗?

x5具体用的什么版本?所有的流程在默认的流转时都能重现这个问题吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-8 12:32 , Processed in 0.082299 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表