LoginSignup
4
4

More than 5 years have passed since last update.

MQメモ 〜Javaインターフェース(Base&JMS)〜

Last updated at Posted at 2016-01-03

資料のありか

WMQ Javaインターフェース(Base&JMS)ワークショップ資料

2_MQ_ Javaデザインのポイント

  • Expiryは照会メッセージに設定するのが普通らしい。
  • MQ被仕向けでは、要求メッセージのGET〜応答メッセージのPUTまでをUOWとすべき。
  • 応答メッセージには、要求メッセージのmessageIdをcorrelationIdに設定する必要がある。
  • 応答メッセージは、要求メッセージに設定されている、応答先キュー・マネージャーと応答先キューに送信する必要がある。
  • 応答メッセージは、応答先キュー・マネージャー名と同名のトランスミッション・キューに(リモート・キューを介さずに)PUTされ、要求元のキューに届く。
    image

  • BaseJavaから利用する場合、文字コード変換はBaseJavaが自動でやってくれる。MQMessageのcharacterSetに、Unicodeからの変換先CCSIDを指定し、writeString()すればOK。

  • UOWはキュー・マネージャーとの1接続内でのみ制御できる。

  • PUT,GETをUOWに入れるかは、その度にMQxMO_SYNCPOINTで指定する。

  • MQのコネクション・プーリングは、あくまでも「使い回す」ものであり、「予め貯めておく」ものではない。起動直後から高い性能が求められるのであれば、空回しして「予め貯めておく」必要がある。

  • コネクション・マネージャがコネクション・プーリングを制御する。

  • プールのスコープはコネクション・マネージャーのインスタンスごと(なはず)。

    • 対向先ごとにキュー・マネージャを用意するなら、対向先ごとにコネクション・マネージャのインスタンスを用意しておかないとマズイということか。
  • BaseJavaのメソッドは処理が異常終了した場合、MQExceptionをthrowする。適切なハンドリングが必要。

3_1_MQ_Javaシステム構成-その1

  • バインディング接続(ローカル接続)を利用したシステム構成

image

image

4_MQ_Javaパフォーマンス

  • コネクション・プーリングは実際に効果がありそう。
  • BaseJavaはJMSより速い。

5_まとめ

  • JMSを選択する理由はほぼない。事実上、BaseJava一択。
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4