2012-01-05 95 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/