アプリケーション作成時の注意事項(JMS)
-
TP1/Message Queue AccessのJMSインタフェースでは,論理コネクション(QueueSession)と物理コネクションを1対1で対応づける必要があります。このため,アプリケーション(EJB)のResource Referenceタブで必ずUnshareableを設定してください。Shareableを設定して,アプリケーションで複数のQueueSessionを作成すると,例外がスローされます。
-
QueueSession,およびQueueSessionを使用して生成したオブジェクトを複数のスレッドやアプリケーション間で共有することはできません。複数のスレッドやアプリケーション間で共有した場合の動作は保証できません。
-
一つのQueueSessionが生成されるたびに,一つの物理コネクションが消費されます。このため,アプリケーションで使用しなくなったQueueSessionに対しては必ずQueueSessionのcloseメソッドを発行し,物理コネクションを解放するようにしてください。
-
QueueSessionの生成時にtransactedパラメタにtrueを指定した場合の注意事項を次に示します。
-
該当するQueueSessionから生成したQueueSender,QueueReceiverオブジェクトからのsendまたはreceiveメソッドの発行を契機に,ローカルトランザクションが開始されます。したがって,これらのメソッドの発行前にQueueSessionのcommitまたはrollbackメソッドを発行すると,例外がスローされます。
-
該当するQueueSessionから生成したQueueSender,QueueReceiverオブジェクトからのsendまたはreceiveメソッドの発行前にユーザトランザクションを開始したときは,sendまたはreceiveメソッドはユーザトランザクションに含まれます。ユーザトランザクションによってトランザクションを開始した場合は,ユーザトランザクションからcommitまたはrollbackメソッドを発行してください。ユーザトランザクションが開始済みの状態でQueueSessionからcommitまたはrollbackメソッドを発行すると,例外がスローされます。
-
コミットまたはロールバックをするためには,QueueSessionオブジェクトのcommitまたはrollbackメソッドを使用してください。
なお,ローカルトランザクションが開始済みの状態のときは,ユーザトランザクションのコミットまたはロールバックは受け付けられません。
-
-
QueueConnectionのcreateQueueSessionメソッドとQueueSessionのcloseメソッドを繰り返し発行すると,QueueConnectionのcreateQueueSessionメソッドで回線障害によってコネクション確立に失敗し,例外がスローされる場合があります。このため,このようなアプリケーションを作成する場合はコネクションプーリング機能を使用してください。
-
QueueReceiverの生成時に指定するキューが共用できない属性(Shareability属性がMQQA_NOT_SHAREABLE)の場合,QueueReceiverを複数生成できません。
QueueReceiverを複数生成する場合は,共用できる属性(Shareability属性がMQQA_SHAREABLE)のキューを指定して,QueueReceiverを生成するようにしてください。
-
次に示すメソッドを発行してキューからメッセージを取得する場合は,メッセージデータはコード変換されません。
-
QueueReceiverインタフェースのreceiveメソッドおよびreceiveNoWaitメソッド
-
QueueBrowserインタフェースのgetEnumerationメソッドによって取得したEnumerationオブジェクトのnextElementメソッド
-
-
Message-Driven Beanアプリケーションを使用した場合,アプリケーションのPropertiesのPooled InstancesでMaximumに指定した値の分だけMessage-Driven Beanキュー監視機能の監視スレッドが起動してキューを監視します。Maximumに0を指定した場合は,監視スレッド数は1となります。
-
Message-Driven Beanを使用する場合,リソースアダプタのトランザクションサポートのレベルをXATransactionに指定してください。
XATransaction以外を指定すると,Message-Driven Beanを含むアプリケーションのデプロイに失敗します。
-
uCosminexus Application ServerのDeployツール上に表示されるリソースアダプタの表示名は,「TP1/Message Queue - Access」となります。