一个数量的存储过程我支持通过广域网的查询远程数据库。网络偶尔出现故障,但曾经发生在程序失败,最严重的将不得不重新启动。

在过去几周它采取阴险转。相反,失败的程序挂在一个奇怪的锁定状态。因为它们存在的任何尝试运行该程序的其他副本将挂过多,他们不能被杀死甲骨文的内部和长。我们已经找到了唯一的解决办法就是杀从OS有违规程序“杀-9”。有些程序没有改变几个月,甚至几年,所以我怀疑在DB或DB配置的根本原因。

任何一个有什么我们能做的要么解决这个问题的任何想法吗?或者根本PL / SQL有一个超时机制,我可以添加到代码,这样我可以创造我可以编程方式处理异常?

有帮助吗?

解决方案 2

我们始终没能确定是什么原因导致这种情况发生。我们相信这是在2008年10月累积修补程序的缺陷。也许以后的补丁作为固定它。它并没有发生在几个月(我们已经有一些网络故障),所以希望这个问题已经消失。

其他提示

什么数据库版本?是他们把运行SQL或PL / SQL? 有没有人加入异常处理进入程序最近还好吗? 我记得在9iR2上,我们被告知,而不是或提高的例外调用程序,我们要捕获所有异常并继续运行(基本上尝试运行过程作业中的所有项目,即使一些失败)。 我们不可避免地工作陷在与SQLS没有一个无限循环,异常处理程序被逮住,并再次尝试。他们不能被杀死的WHEN OTHERS也引起了“会话已被杀害”例外。我认为在10g中后期更改,以便例外没有被抓到。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top