付録G.1 アプリケーションが消費するコネクション数
Reliable Messagingを利用するアプリケーションごとに次の計算をし,個々のアプリケーションで計算した値の総和が,アプリケーションが消費するコネクション数となります。
アプリケーションの最大同時実行数(多重度)×アプリケーションでの消費コネクション数
アプリケーションでの消費コネクション数は,アプリケーションの種類がMDBの場合とMDB以外(SessionBeanやサーブレットなど)の場合とで算出方法が異なります。それぞれの場合の算出方法について説明します。
(1) MDBの場合
MDBの場合,メッセージを一つ配信する契機でコネクションを一つ消費します。この消費コネクションを「配信用コネクション」と定義します。配信用コネクションは,MDBアプリケーション内で生成したjavax.jms.QueueSessionおよびjava.sql.Connectionとコネクションシェアリングできます。これを「配信用コネクションとのシェアリング」と定義します。
アプリケーションでの消費コネクション数は,配信用コネクションとのシェアリングが適用される場合と適用されない場合によって次のように異なります。
配信用コネクションとのシェアリングが適用される場合
アプリケーションでの消費コネクション数=1
配信用コネクションとのシェアリングが適用されない場合
アプリケーションでの消費コネクション数 =1(配信用コネクション) +MDBアプリケーション内でコネクションシェアリングされたグループの数※1 +MDBアプリケーション内でコネクションシェアリングされないjavax.jms.QueueSessionの生成数 +MDBアプリケーション内でコネクションシェアリングされないjava.sql.Connection※2の生成数
- 注※1
-
配信用コネクションとはシェアリングされないで,MDBアプリケーション内で生成した複数のjavax.jms.QueueSessionおよびjava.sql.Connectionがコネクションシェアリングされることを示します。
- 注※2
-
DB Connector for Reliable Messagingのjavax.sql.DataSourceから生成したjava.sql.Connectionが対象です。また,Reliable MessagingのコンフィグレーションプロパティRMAssociateJDBCFlagの値がtrueの場合だけ生成できます。
配信用コネクションとのシェアリングが適用されるか適用されないかは,次の条件によって決まります。
- 配信用コネクションとのシェアリングが適用される場合
-
次の条件をすべて満たす場合,配信用コネクションとのシェアリングが適用されます。
-
リソース参照に関する設定の,コネクションシェアリングの有無で「Shareable」を設定
-
トランザクション管理方法を「Container」に設定
-
トランザクション属性を「Required」に設定
-
- 配信用コネクションとのシェアリングが適用されない場合
-
次のどれかの条件を満たす場合,配信用コネクションとのシェアリングは適用されません。
-
リソース参照に関する設定の,コネクションシェアリングの有無で「Unshareable」を設定
-
トランザクション管理方法を「Bean」に設定
-
トランザクション属性を「Not Supported」に設定
-
(2) MDB以外(SessionBeanやサーブレットなど)の場合
アプリケーションで生成するjavax.jms.QueueSessionおよびjava.sql.Connectionの合計数が消費コネクション数となります。ただし,コネクションシェアリングが適用された場合,コネクションシェアリングされた一つのグループにつき,消費コネクションは一つとなります。よって,アプリケーションでの消費コネクション数は次のようになります。
アプリケーションでの消費コネクション数 =コネクションシェアリングされたグループの数 +コネクションシェアリングされないjavax.jms.QueueSessionの生成数 +コネクションシェアリングされないjava.sql.Connection※の生成数
- 注※
-
DB Connector for Reliable Messagingのjavax.sql.DataSourceから生成したjava.sql.Connectionが対象です。また,Reliable MessagingのコンフィグレーションプロパティRMAssociateJDBCFlagの値がtrueの場合だけ生成できます。
コネクションシェアリングが適用される条件については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」を参照してください。