JMS機能を使用する場合、以下に注意してください。
コンシューマのパフォーマンスについての注意事項
consumerFlowLimitプロパティの値を大きくした場合、コンシューマの多重化運用時やロールバック処理が頻繁に発生する運用では、パフォーマンスが低下する場合があります。
構築するシステムを考慮して、consumerFlowLimitプロパティの値を設定してください。
受信アプリケーションがnull復帰する場合の注意事項
受信アプリケーションで以下のメソッドを使用した場合に、受信可能なメッセージが存在するにもかかわらず、nullが復帰する場合があります。
javax.jms.MessageConsumer#receive(long)
javax.jms.MessageConsumer#receiveNoWait()
javax.jms.JMSConsumer#receive(long)
javax.jms.JMSConsumer#receiveNoWait()
javax.jms.JMSConsumer#receiveBody(Class<T>, long)
javax.jms.JMSConsumer#receiveBodyNoWait(Class<T>)
本現象が発生した場合は、上記メソッドのリトライを実施してください。
javax.jms.Session、javax.jms.JMSContextのメソッド使用時の注意事項
以下のメソッドを使用する場合は、javax.jms.MessageConsumer、javax.jms.JMSConsumerのcloseメソッドを使用しないでください。
javax.jms.Session#recover()
javax.jms.Session#rollback()
javax.jms.JMSContext#recover()
javax.jms.JMSContext#rollback()
MessageConsumerのcloseメソッドを実施する必要がある場合は、javax.jms.Session#close()を実施してください。
JMSConsumerのcloseメソッドを実施する必要がある場合は、javax.jms.JMSContext#close()を実施してください。
imqcmd list dur コマンド使用時の注意事項
メッセージブローカを再起動した場合、表示情報「Messages」に「0」が表示される場合があります。
imqcmd list dst コマンドで蓄積されているメッセージ数を確認してください。
imqcmd list dst コマンド使用時の注意事項
物理格納先タイプがQueueまたはQueue(temporary)の場合、表示情報「UnAck」には、トランザクション処理中の送受信メッセージ数と接続コンシューマに配信処理中のメッセージ数のみではなく、配信遅延中のメッセージ数も計上されます。物理格納先タイプがQueueまたはQueue(temporary)の場合に、トランザクション処理中の送受信メッセージ数と接続コンシューマに配信処理中のメッセージ数の総和を求めたい場合は、表示情報「UnAck」から表示情報「InDelay」を引いて算出してください。
アプリケーションクライアントコンテナを使用する場合の注意事項
クライアントパッケージでアプリケーションクライアントコンテナを使用する場合、クライアントパッケージの製品バージョンと、JMS接続ファクトリ、JMS送信先リソースを登録しているサーバパッケージの製品バージョンを同一にしてください。
メッセージのプロパティに関する注意事項
JMS2.0から、メッセージの配信を試行した回数をあらわすJMSXDeliveryCountプロパティが受信したメッセージに付与されるようになりました。送信アプリケーション側で設定していないプロパティが受信アプリケーション側で取得できるため、注意してください。
メッセージブローカが使用するポート番号についての注意事項
メッセージブローカが使用する、代表ポートを除く各種ポートの設定を行っていない場合、メッセージブローカのポートマッパー機能によりエフェメラルポートが自動的に割り振られ、使用されます。メッセージブローカがエフェメラルポートを使用している場合、エフェメラルポートを使用する他プロセスとポート番号が競合し、正常に動作できなくなる可能性があります。
メッセージブローカが使用するポートが他プロセスと競合しないよう、各種ポートの設定を行ってください。
メッセージブローカが使用するポートの設定については、「2.19.5 ポートマッパー」、および「8.7.1 接続サービスに関するプロパティ」を参照してください。