メッセージキューイングアクセス機能 TP1/Message Queue - Access 使用の手引
アプリケーション作成時の注意事項(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を含むアプリケーションのデプロイに失敗します。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.
(C) Copyright International Business Machines Corporation 1994, 1999. All rights reserved.