起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 267|回复: 11

存储过程执行失败**

[复制链接]
发表于 2009-2-12 16:36:28 | 显示全部楼层 |阅读模式
用TStoredProc动态创建两个存储过程,分别调用数据里的两个存储过程A和B,其中A执行一次,B执行多次,使用立即事务进行操作,当B执行次数少于9次没有问题,整个事务可以正确提交,当B执行到第10次时,程序会失去响应,点停止调试,tomcat控制台会显示回滚事务

附件是整个过程的输出信息,请帮忙分析原因。

procerror.txt

9.6 KB, 下载次数: 86

回复

使用道具 举报

发表于 2009-2-12 18:59:25 | 显示全部楼层
你的版本是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-13 10:59:19 | 显示全部楼层
最初由 lixy 发布
[B]你的版本是什么? [/B]


版本2827
回复 支持 反对

使用道具 举报

发表于 2009-2-13 11:02:03 | 显示全部楼层
建议用非立即事物,立即事物对服务端占用链接太高。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-13 11:21:05 | 显示全部楼层
最初由 lixy 发布
[B]建议用非立即事物,立即事物对服务端占用链接太高。 [/B]


过程B需要使用过程A返回的数据,已经试过多次,非立即事务行不通
回复 支持 反对

使用道具 举报

发表于 2009-2-13 11:29:53 | 显示全部楼层
一个解决方案是升级。
另一个是修改您这个逻辑,让他们执行时间尽量的短。
立即事物不适合执行时间长的操作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-13 12:42:46 | 显示全部楼层
如果确定升级能解决问题,可以考虑升级来解决
感觉不是执行时间的问题,从启动事务到卡住的时间只有1-2秒钟,每次都到同样的进度卡住,是不是平台有关事务的设置有限制
回复 支持 反对

使用道具 举报

发表于 2009-2-13 14:13:01 | 显示全部楼层
不是执行时间长短的问题,平台在执行立即事务时,每执行一个sql就会占用一个数据库连接,为了防止连接用尽导致tomcat无响应,服务端做了限制:
我印象中一个立即事务只允许使用10个左右的连接。

所以:您如果必须使用立即事务,那要注意事务中的sql数量,如果实在不行就只能升级到新版本了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-14 09:01:37 | 显示全部楼层
最初由 jiahaiming 发布
[B]不是执行时间长短的问题,平台在执行立即事务时,每执行一个sql就会占用一个数据库连接,为了防止连接用尽导致tomcat无响应,服务端做了限制:
我印象中一个立即事务只允?.

以下省略...... [/B]


升级可以解决问题吗? 可以在现在平台上修改相应配置,问题确定了再升级?
回复 支持 反对

使用道具 举报

发表于 2009-2-14 10:50:00 | 显示全部楼层
这个问题周一再确定一下,然后跟贴告知
升级是有一定的风险的,需要做全面的测试才可以,不知道楼主,这个项目现在处于啥阶段,是正式运行还是开放阶段呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-29 13:11 , Processed in 0.060243 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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