2 つのシステム間での dmpmqmsg ユーティリティーの使用

dmpmqmsg ユーティリティー (以前の qload) は、 IBM® MQ 8.0から製品に組み込まれました。 このユーティリティーは以前、サポートパック MO03 から入手することができました。

概要

dmpmqmsg で作成したファイルは、必要に応じて保存し、後でキューにメッセージを再ロードするために使用することができます。
重要:
  1. このファイルは、ユーティリティーが理解できる特定の形式になっています。 しかし、このファイルは人間も読める形式になっているため、再ロードする前にエディターで更新できます。 ファイルを編集しない場合は、その形式を変更してはなりません。
  2. IBM MQ 9.1では、 dmpmqmsg ユーティリティーは、 Linux® および Windows用のランタイム・ファイル・セットとともに出荷されるため、 IBM MQ サーバーとクライアントの両方で使用できます。 IBM MQ 9.1 より前のバージョンでは、ユーティリティーはサーバー・パッケージにのみ付属していました。
考えられる用途は、次のとおりです。
  • キューにあるメッセージをファイルに保存する。 これはアーカイブなどの目的で行われ、後で元のキューに再ロードされます。
  • 以前にファイルに保存されたメッセージをキューに再ロードする。
  • キューから古いメッセージを削除する。
  • 保管場所からテスト・メッセージを「適用」する (必要に応じて、メッセージ間の正確な時間も保持する)。
重要: SupportPac MO03 は、ローカル・バインディングまたはクライアント・バインディングを指定するために -l パラメーターを使用しました。 -l は、 -c パラメーターに置き換えられました。

コード・ページ情報には、-c の代わりに -P が使用されるようになりました。

コマンドおよび使用可能なパラメーターについて詳しくは、 dmpmqmsg を参照してください。

LinuxWindows マシンを使用して dmpmqmsg ユーティリティーを使用する例

同じキュー・マネージャー内の別のキュー ( Q2) に移動したいメッセージがキュー (Q1) 上にある Linux マシン上にキュー・マネージャーがある。 Windows マシンから dmpmqmsg ユーティリティーを開始する必要がある。

キュー (Q1) には、サンプル・アプリケーション amqsput (ローカル・キュー・マネージャー) または amqsputc (リモート・キュー・マネージャー) を使って追加した 4 つのメッセージがあります。

Linux マシンでは、以下が表示されます。

display ql(Q1) CURDEPTH
        2 : display ql(Q1) CURDEPTH
AMQ8409: Display Queue details.
     QUEUE(Q1)                                             
TYPE(QLOCAL)
     CURDEPTH(4)
Linuxのキュー・マネージャーを指すように MQSERVER 環境変数を設定します。 以下に例を示します。

set MQSERVER=SYSTEM.DEF.SVRCONN/TCP/veracruz.x.com(1414)
veracruz は、マシンの名前です。

dmpmqmsg ユーティリティーを実行してキュー Q1から読み取り、出力を c:\temp\mqqload.txtに保管します。

MQSERVER によって確立された Linux ホストおよびポートで実行されているキュー・マネージャー QM_VERに、リモート・クライアントとして接続します。 リモート・クライアントとしての接続は、属性 -c を使って行います。

dmpmqmsg -m QM_VER -i Q1 -f c:\temp\mqqload.txt -c
Read      - Files:    0   Messages:       4   Bytes:            22
Written - Files:    1   Messages:       4   Bytes:            22

出力ファイル c:\temp\mqqload.txt には、 dmpmqmsg ユーティリティーが認識するフォーマットを使用したテキストが含まれています。

Windows マシンで、 dmpmqmsg コマンド ( -i オプションの代わりに -o オプションを使用) を発行して、 Windows マシン上のファイルから Linux マシン上のキュー (Q2) をロードします。


dmpmqmsg -m QM_VER -o Q2 -f c:\temp\mqqload.txt -c
Read      - Files:    1   Messages:       4   Bytes:            22
Written - Files:    0   Messages:       4   Bytes:            22

Linux マシンでは、キュー内にファイルから復元されたメッセージが 4 つあることに注意してください。


display ql(Q2) CURDEPTH
        6 : display ql(Q2) CURDEPTH
AMQ8409: Display Queue details.
     QUEUE(Q2)                                             
TYPE(QLOCAL)
     CURDEPTH(4)

Linux マシンで、以下のようにします。

メッセージを元のキューから削除します。

clear qlocal(Q1)
        4 : clear qlocal(Q1)
AMQ8022: IBM MQ queue cleared.
元のキューにメッセージが存在していないことを確認します。

display ql(Q1) CURDEPTH
        5 : display ql(Q1) CURDEPTH
AMQ8409: Display Queue details.
     QUEUE(Q1)                                             
TYPE(QLOCAL)
     CURDEPTH(0)

コマンドとそのパラメーターの説明については、 dmpmqmsg を参照してください。