JBoss ASのデータソースその他のパラメータ
JBoss Advent Calendar 2011の7日目のエントリです。まだ1/3も終わってないんですね。データソースの基本、コネクションプール、障害検知に入らなかった雑多なパラメータを紹介していきます。
- <query-timeout>
- より優秀な<set-tx-query-timeout>があるので基本的に使わないのですが、JDBCのクエリタイムアウトを設定します。全てのStatement発行前にjava.sql.Statement#setQueryTimeout(int)を利用して適用されます。
- <connection-property>
- JDBCドライバへ渡すプロパティを指定します。設定されたプロパティはjava.sql.Driver#connect(String, Properties)の第2引数に渡されます。JDBCドライバが内部的に利用するソケットのタイムアウトであるとか、JDBCドライバ実装固有のパラメータはこの要素で指定します。
- <use-java-context>
- <new-connection-sql>
- <stale-connection-checker-class-name>
- <track-statements>
- <share-prepared-statements>
- PreparedStatementキャッシュのカスタマイズオプションで、PreparedStatementをクローズせずに同じSQLを再度発行するときに同一のPreparedStatementインスタンスのキャッシュを返却したい場合trueを設定します。デフォルトはfalseです。同一SQLを複数回発行して複数のResultSetを同時に扱う、というユースケースですが、このユースケースはほとんど使われない(基本開いて閉じる、という形であり、このような開いたままで複数同時進行するようなコードが書けることを知らない人が多数でしょう)ので、基本的に設定する必要はありません。JDBCドライバによっては期待どおりに動かない可能性があるので、利用する場合は必ずこのユースケースをテストしてください。
ローカルJDBCデータソースの解説はこの3日間のエントリで一通り終わりました。データソースフェイルオーバとXAデータソースについてまた別のエントリにする予定です。