JDBC連接池的testQuery/validationQuery設置


在《 Tomcat中使用Connector/J連接MySQL的超時問題》帖子中想要增加對連接池中連接的測試/驗證,防止數據庫認為連接已死而Web應用服務器認為連接還有效的問題,Mysql文檔中提到Tomcat文檔中的例子中用的是validationQuery,但是網上還有很多帖子寫的是testQuery,到底用哪一個呢?

 



此外,測試/驗證連接池連接的SQL語句也因數據庫而異:
Efficient SQL test query or validation query that will work across all (or most) databases
DBCP - validationQuery for different Databases

綜合上述兩個帖子,匯總結果如下:

數據庫 測試/驗證查詢
MySQL SELECT 1
PostgreSQL SELECT 1
Microsoft SQL Server SELECT 1
SQLite SELECT 1
H2 SELECT 1
Ingres SELECT 1
Oracle select 1 from dual
DB2 select 1 from sysibm.sysdummy1 或
SELECT current date FROM sysibm.sysdummy1
Apache Derby VALUES 1 FROM SYSIBM.SYSDUMMY1 或
SELECT 1 FROM SYSIBM.SYSDUMMY1
HSQLDB SELECT 1 FROM any_existing_table WHERE 1=0 或
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
Informix select count(*) from systables


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM