データソースのプロパティで設定するコネクションプーリングとコネクションスイーパの動作,コネクションを共有する場合の留意点について説明します。
コネクションプーリングおよびコネクションスイーパについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。
コネクションシェア機能は,同一JavaVM内という条件で,同一トランザクション(ここでのトランザクションとはjavax.transaction.UserTransactionによるトランザクションまたはEJBでのCMTによるトランザクションだけ)中での同一データソース(javax.sql.DataSource)へのコネクション取得要求(getConnectionメソッド)に対して,アプリケーションが同一の物理コネクションを共有できるようにするものです。これによって,アプリケーションがトランザクション中で同じデータソースから複数回コネクションを取得してSQLを発行した場合,トランザクションコミット時にそれぞれのSQLの処理結果をデータベースにまとめて反映できます。この機能を利用するには,コネクションプールの設定でコネクション数<MinimumSize>を1以上に設定する必要があります。なお,コネクションシェア機能は,同一データソース(javax.sql.DataSource)に対し,パラメタなしgetConnectionメソッドと,パラメタありgetConnection(java.lang.String username,java.lang.String password)メソッド間では,同一トランザクション中でもコネクションを共有できません。また,パラメタありのgetConnection(java.lang.String username,java.lang.String password)メソッド間でusernameが異なる場合,同一トランザクション中でもコネクションを共有できません。