2012-01-05 92 views
2

有人告诉我,如果我在Oracle中设置了“ValidateConnection”属性设置为TRUE,应用程序将能够处理以下情况:如何验证Oracle的ValidateConnection属性正在工作?

  1. 超时的网络设备有一定 时间后关闭TCP连接和/或不活动。
  2. 物理连接断开诸如拉动电缆,网络设备复位, 等
  3. Oracle服务器被重新启动或逻辑DBA闭上 服务器侧的连接。

我的问题是:

  1. 如果ValidateConnection设置为TRUE,甲骨文可以实际处理上述情况?
  2. 我是否需要编写其他代码或Oracle的连接池将等待连接超时?
  3. 我可以用什么技术或工具来测试这种情况?示例代码或链接到其他文章将非常有用。

谢谢。

回答

2

ValidateConnection只是告诉Oracle在将池交给应用程序之前先测试池中的连接。这可以防止您从连接池中获取已断开的连接。为了回答你使用ValidateConnection处理哪些情况的问题,我想我需要知道你的意思是“处理”。如果Oracle服务器与互联网断开连接,ValidateConnection无法对此做任何事情。但是,一旦它重新联机,ValidateConnection将阻止Oracle将连接池中的应用程序断开连接。下面的链接提供了一些更多的信息,并且他很快描述了他如何在他的环境中测试ValidateConnection。

http://spdeveloper.net/2009/10/disconnected-odp-net-and-system-data-oracleclient-connections/