ApacheのCommons DBCPに含まれるorg.apache.commons.dbcp.BasicDataSourceFactoryでは、validationQueryというのを指定できるが、ここで指定するクエリにはいくつかの条件がある。 SELECTクエリであること 1つ以上の行を返すこと 1つ以上の列を返すこと したがって、例えば、"SELECT COUNT(*) FROM xxx"みたいなクエリは条件を満たすが、コネクションの検証のためだけに重たくなるかもしれないクエリは投げたくない。 そこで、DB2、Oracle、PostgreSQL、MySQLについて、validationQueryに適していそうなクエリを作ってみた。 なお、括弧内は動作確認に使用したDBMSのバージョン。 DB2 (v9.1, v9.5)*1 SELECT * FROM TABLE(VALUES(1))