java运行过程,数据库卡住不动了

昨日凡阳 2011-12-02 05:36:15
程序跑的过程中一切正常,链接的是db2资料库,
rs = stat.getResultSet();
就是当

if (rs != null) {
while (rs.next()) {
执行到这里的时候,整个画面就卡住不动了。
请大家帮忙看看什么情况。控制台无任何异常。
执行的不是sql是存储过程。

stat = conn.prepareCall("CALL " + EServicingHelper.getDBSchema() +
"SP_ESERV_GET_CLT_INFO_BY_NAME(?,?,?,?,?,?,?)");
...全文
759 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
喜欢送 2011-12-27
  • 打赏
  • 举报
回复
要查的对象表死锁,
死循环。貌似已经排除了。
dracularking 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 iisgirl 的回复:]

存儲過程不會有問題(傳遞參數也不會有問題),否則早該報錯
原因查明:該存儲過程無問題,只是要等大約20-30分鐘左右,這段code才會繼續執行下去,執行完畢。深層原因還是不明。
[/Quote]
确定只是一句next()就消耗了2,30分钟吗?

如果是这样,next()时应该是数据集已经全部在内存中了(不是100%确定)
所以这时应该无关是执行的存储过程还是sql,因为结果已经返回。
我觉得是和结果集相关。
游一游走一走 2011-12-27
  • 打赏
  • 举报
回复
估计锁的问题或者你的存储过程的问题吧,不通过JAVA手工调用存储过程看看,现在也在用DB2,恶心死了,读锁定的,当有人使用update或者insert无提交时,select都会给锁掉...
  • 打赏
  • 举报
回复
你吧你的数据库存储过程 贴出来吧。。
dxqrr 2011-12-27
  • 打赏
  • 举报
回复
把所有其他链接到数据库的客户端先关闭掉
昨日凡阳 2011-12-27
  • 打赏
  • 举报
回复
存儲過程不會有問題(傳遞參數也不會有問題),否則早該報錯
原因查明:該存儲過程無問題,只是要等大約20-30分鐘左右,這段code才會繼續執行下去,執行完畢。深層原因還是不明。
昨日凡阳 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dracularking 的回复:]

引用 8 楼 iisgirl 的回复:

存儲過程不會有問題(傳遞參數也不會有問題),否則早該報錯
原因查明:該存儲過程無問題,只是要等大約20-30分鐘左右,這段code才會繼續執行下去,執行完畢。深層原因還是不明。

确定只是一句next()就消耗了2,30分钟吗?

如果是这样,next()时应该是数据集已经全部在内存中了(不是100%确定)
所以这时应该无关是执行的存储过……
[/Quote]

确定只是一句next()就消耗了2,30分钟。
不能排除是否是資料庫死鎖問題造成。
昨日凡阳 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dracularking 的回复:]

引用 8 楼 iisgirl 的回复:

存儲過程不會有問題(傳遞參數也不會有問題),否則早該報錯
原因查明:該存儲過程無問題,只是要等大約20-30分鐘左右,這段code才會繼續執行下去,執行完畢。深層原因還是不明。

确定只是一句next()就消耗了2,30分钟吗?

如果是这样,next()时应该是数据集已经全部在内存中了(不是100%确定)
所以这时应该无关是执行的存储过……
[/Quote]

非常确定只是一句next()就消耗了2,30分钟。
next()时应该是数据集已经全部在内存中了(不是100%确定),這個不太明白。

其他人說的或許有一定道理,比如資料庫死鎖,很有可能。但是我無法得知。但是存儲過程絕對沒有問題,因為這個系統02年上線用到現在了,都運營了好多年,存儲過程是沒有問題的。
小V小V志 2011-12-27
  • 打赏
  • 举报
回复
死鑜?
任第一 2011-12-27
  • 打赏
  • 举报
回复
在存储过程加异常处理:exception
when others then
rollback;。然后在Java里面加try catch ,在设置断点一步一步跟进。
桃园闲人 2011-12-02
  • 打赏
  • 举报
回复
问题很可能在你这个存储过程中,
SP_ESERV_GET_CLT_INFO_BY_NAME

java端将将执行命令发给数据库服务器后,数据库在执行该存储过程的时候出现了死循环或者其他原因迟迟没有放回数据。原因有二:
1。数据库的存储过程创建的有问题,建议你在数据库端用SQL 执行以下。
2。java短程序在给存储过程装载参数时出现数据异常,导致数据库在用传递过来的参数实行SQL的时候出现死循环或是其他原因至迟迟没有返回结果。
昨日凡阳 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sdliubo 的回复:]

有可能是你的数据库锁住了,有其它的操作没有commit。
[/Quote]

怎麽樣個鎖住法?
daishunchaoaiqiu 2011-12-02
  • 打赏
  • 举报
回复
死循环了
passportandy 2011-12-02
  • 打赏
  • 举报
回复
额 rs.next()一直为真OK它在这儿陷入死循环了!!
sdliubo 2011-12-02
  • 打赏
  • 举报
回复
有可能是你的数据库锁住了,有其它的操作没有commit。
昨日凡阳 2011-12-02
  • 打赏
  • 举报
回复
斑竹呢,斑竹能否幫我看看。
昨日凡阳 2011-12-02
  • 打赏
  • 举报
回复
沒有人遇到過嗎?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧