在我们的服务器/客户端设置中,我们遇到了一些奇怪的行为。客户机是一个C/C++应用程序,它使用OCI连接到Oracle服务器(使用OTL库)。
每隔一段时间,DB服务器就会以某种方式崩溃(是的,这是核心问题,但从应用程序端看,我们无法解决它,但无论如何都必须处理它),即机器不再响应新的请求/连接,但现有的请求/连接,如Oracle-connections,不会丢失或超时。发送到数据库的查询再也不会成功返回。
Oracle提供了哪些可能性(如果有)来检测来自客户端应用程序端的这些停滞的连接,并以或多或少安全的方式进行恢复?
发布于 2010-09-14 01:40:55
这是Oracle 11.1.0.6之前的一个bug (或者称之为特性),他们说Oracle 11g release 1( patch 11.1.0.7 )上的补丁已经修复。我需要看到这一点。如果发生这种情况,您将不得不取消(杀死)执行此操作的线程。尽管不是一个好的方法
发布于 2009-10-15 07:18:40
在我的所有DB模式中,我都有一个表,其中包含一个常量记录。只需通过简单SQL请求定期轮询此类表即可。所有其他方法都不可靠。
发布于 2009-09-16 10:16:38
在OTL中有一个set_timeout应用程序接口可能对此很有用。
编辑:实际上,忽略它。set_timeout不适用于保险业监管局。看一下来自here的set_timeout描述,它描述了一种可以与OCI一起使用的技术。
https://stackoverflow.com/questions/1431560
复制相似问题