我似乎與this original SO question的海報具有相同的確切問題。什麼是關於數據庫和JNDI的驗證查詢?
的問題是,他回答說他自己有這樣的評論的問題:
我解決我的問題,我添加了一個validationQuery到我的JNDI數據源。
不幸的是,這對我來說並不意味着什麼,也不能幫助我解決問題。所以我問:關於我的數據庫(Sybase)和用於保存服務器查找信息的JNDI條目,什麼是「validationQuery
」?
在此先感謝。
我似乎與this original SO question的海報具有相同的確切問題。什麼是關於數據庫和JNDI的驗證查詢?
的問題是,他回答說他自己有這樣的評論的問題:
我解決我的問題,我添加了一個validationQuery到我的JNDI數據源。
不幸的是,這對我來說並不意味着什麼,也不能幫助我解決問題。所以我問:關於我的數據庫(Sybase)和用於保存服務器查找信息的JNDI條目,什麼是「validationQuery
」?
在此先感謝。
驗證查詢是由數據源運行來驗證一個Connection
仍返回之前開放查詢。這裏是Tomcat的definition of a validation query;向下滾動到「4.配置Tomcat的資源工廠」部分的中間,尋找「validationQuery」屬性。
編輯
據this answer,如果驗證查詢失敗,不會引發錯誤;壞的/關閉的連接被丟棄,並且創建另一個連接來替換它。
Thanks @rgettman(+1) - 所以這是一個查詢,我將Sybase(數據源)配置爲在返回連接之前運行。我假設它會拋出一個我可以捕獲的異常,或者返回一些我可以在應用程序端使用的錯誤值來確定連接不可用,並且我需要再次嘗試?再次感謝! – IAmYourFaja 2013-03-13 19:16:51
另一件事:那篇文章沒有解釋當連接不可用時會發生什麼?拋出錯誤? – IAmYourFaja 2013-03-13 19:24:40
我編輯了我的答案。 – rgettman 2013-03-13 19:26:51
我認爲它是測試數據庫連接工作正常查詢。在應用程序服務器級別進行某種ping操作。
在DB的原題週期性爆震保持打開的連接。
感謝@Funtik(+1) - 請下rgettman的回答我的問題 - 我有同樣的問題爲您服務! – IAmYourFaja 2013-03-13 19:17:44
它是無關聯的JNDI,但JDBC數據源。
驗證查詢用於那些之前驗證從數據源連接池, 連接是越區切換到客戶機。通常這些都是低衝擊的查詢,如 「SELECT 1 ...」或「SELECT SYSDATE ......」
謝謝@orid(+1) - 請參閱我的問題在rgettman的答案下 - 我對你有同樣的問題! – IAmYourFaja 2013-03-13 19:17:16
請問這是[標籤:sybase-asa],[標籤:sybase-ase],[標籤:sybase-iq]還是[標籤:sqlanywhere]?試圖清理[標籤:SYBASE]標籤... – 2013-03-15 07:45:27