我自己做了个基于Tuxedo 中间件的Oracle可用性监控软件,目前监测了有将近100个数据库,但是有个问题却困扰了很久,那就是连接探测功能这部分。我采用 EXEC SQL CONNECT *** 去连接数据库,但是根据网络状态和主机繁忙程度的不同经常出现连接超时的问题,有时候超时居然达到几个小时,程序就阻塞到这行语句这里,等到发出报警往往就迟了。其实我考虑过采用Tuxedo 来控制超时,但是我想EXEC CONNECT 也无非就是建立Socket 连接,应该有基于通信这个层次的控制方法吧。请大家指点一下。

解决方案 »

  1.   

    这里连接超时有几个可能1. 网络原因
    这里好像没有特别好的方法来设置。2. 本身服务器的处理
    可以设置服务器里的listener.ora里的connect_timeout_listener参数3. processor的限制
    不过这里不是提示超时的错误了。
      

  2.   


    配置这些或许可以有用,但是因为数量太庞大,无法单独一个个去配置,况且配置完了一般都要重启listener 才能生效,这对于7*24业务系统也不太实际。所以我想能否通过设置连接程序类似 Socket 选项的方法来达到目的?