日期:2014-05-17  浏览次数:20966 次

请大家顶起,java连接存储过程由于时间长异常问题!!!
我现在有一个存储过程,大概要执行4、5个小时,此存储过程不能批量,业务很多,所以用的游标去执行。而我现在用java的jdbc去调用这个存储过程,由于时间很长,出现了异常报错问题。但是后台的存储过程依然在执行着,直到成功才终止。而现在我不想要中间的这个异常信息!!!怎么去处理呢?请高手们指教!!!

------解决方案--------------------
不想要异常信息,就自己给它屏蔽掉,不要抛出来
------解决方案--------------------
为什么要用JAVA调?为什么不用数据库本身的定时任务调
------解决方案--------------------

------解决方案--------------------
4、5个小时 ...
------解决方案--------------------
我觉得至少应该是异步执行,客户端等待4~5个小时用户体验也不好。你可以再点击按钮事件里面新建一个job运行,然后到差不多事件了再去看结果。或者异步的执行,给一个CallBack回来。然后超时时间设置的无比漫长。
------解决方案--------------------
使用JMS吧。异步去执行,要不然客户端一直在等待。
------解决方案--------------------
异步执行,然后定时到数据库查看执行的结果状态,每次执行前,都检测一下那个状态,如果未执行结束,就告诉客户端,在执行中,如果执行结束,就返回成功和失败的状态告诉客户端。
------解决方案--------------------
支持这个策略
探讨
异步执行,然后定时到数据库查看执行的结果状态,每次执行前,都检测一下那个状态,如果未执行结束,就告诉客户端,在执行中,如果执行结束,就返回成功和失败的状态告诉客户端。

------解决方案--------------------
执行4、5个小时?让客户端去执行?
让客户第二天再看??

------解决方案--------------------
关注下!以前只是听人说过,但还是不会
------解决方案--------------------
引用
多了解api,你的这种情况抛异常应该是jdbc执行的时间过长超时了吧。。。
jdbc调用存储过程CallableStatement以及PreparedStatement等对象都提供了setQueryTimeout方法设置执行等待的超时时间。。你只要将其设置到你认为可能出现的最大值 应该就不会抛异常,可以正常返回了吧。。

可以看看:http://yymmiinngg.iteye.com/blog/970918
或者http://technet.microsoft.com/zh-tw/library/ms378081.aspx

也可以看看sql包中的jdbc API。。了解

------解决方案--------------------
探讨

执行4、5个小时?让客户端去执行?
让客户第二天再看??