IBM Support

MQコマンドを使用してローカル・キューの作成、メッセージの送受信の方法

Question & Answer


Question

WebSphere MQ (WMQ)コマンドを使用して、ローカル・キューの作成、メッセージのPUT、ブラウズ、GET、クリアの方法を教えてください。

Answer

+ ローカル・キューの作成

MQ管理者でログインし、下記コマンドを実行してください



runmqsc QM_TEST
DEFINE QLOCAL(Q1)
もしくは
DEFINE QL(Q1)
end

* QLOCALの代わりに QL を使用することもできます。


+ユーザーが適切な権限を持っていない場合

MQ管理者は、キューにアクセスするための、追加の権限は必要ありません。
MQ管理者でないユーザーがキューの使用を試みた場合、下記のリターンコードを受け取ることがあります。
2035 MQRC_NOT_AUTHORIZED
このリターンコードを受け取った場合、MQ管理者は、そのユーザーに対して、権限を与える必要があります。
下記の例では、ユーザー"fulano"、所属しているグループを"mqusers"とします。

下記コマンドで、ユーザーがキュー・マネージャに接続、問い合わせ、情報を表示できる許可を与えます。
実行例:
オプション -p を使用して、ユーザー名を指定します。
 setmqaut -m QM_TEST -t qmgr -p fulano +connect +inq +dsp

もしくは、オプション -g を使用して、グループ名を指定します。
setmqaut -m QM_TEST -t qmgr -g mqusers +connect +inq +dsp


下記コマンドで、キューにアクセスし、問い合わせ、ブラウズ、GET、PUT、 表示できる許可を与えます。
実行例:
オプション -p を使用して、ユーザー名を指定します。
setmqaut -m QM_TEST -t q -n Q1 -p fulano +inq +browse +get +put +dsp

もしくは、オプション -g を使用して、グループ名を指定します。
setmqaut -m QM_TEST -t q -n Q1 -g mqusers +inq +browse +get +put +dsp


+ メッセージのPUT

amqsput もしくは、amqsputc サンプル・コマンドを使用して、メッセージをPUTします。

サンプルを終了するために、何も文字を入力しないで実行(ENTER)キーを押す必要があります。

1) amqsput (バインディング接続:ローカル環境でインタープロセス通信を使用します。)
例:(括弧内は、注釈です。太字のみ入力します。)
amqsput Q1 QM_TEST
Sample AMQSPUT0 start
target queue is Q1
TEST-PUT-1 (メッセージを入力しENTERキーを押します。)
(文字を入力しないで、空ENTERキーを押すと、終了します)
Sample AMQSPUT0 end

2) amqsputc (クライアント接続:TCP接続を使用します)
例:(括弧内は、注釈です。太字のみ入力します。)
MQクライアントがホストに接続できるように、下記を実行します。変数 MQSERVER を使用した例です。
Unix: export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/'hostname.com(1414)'
Windows: set MQSERVER=SYSTEM.DEF.SVRCONN/TCP/hostname.com(1414)
amqsputc Q1 QM_TEST
Sample AMQSPUT0 start
target queue is Q1
TEST-PUT-2
Sample AMQSPUT0 end


+ メッセージのブラウズ


下記サンプル・コマンドでキュー内のメッセージのブラウズができます。
メッセージの表示後も、メッセージは、キュー内に残ります。

1) amqsbcg (バインディング接続:ローカル環境でインタープロセス通信を使用します。)
例:
amqsbcg Q1 QM_TEST

AMQSBCG0 - starts here
**********************
MQOPEN - 'Q1'

MQGET of message number 1
****Message descriptor****

StrucId : 'MD ' Version : 2
Report : 0 MsgType : 8
Expiry : -1 Feedback : 0
Encoding : 546 CodedCharSetId : 1208
Format : 'MQSTR '
Priority : 0 Persistence : 0
MsgId : X'414D5120514D5F37303120202020202080A1F950043E0020'
CorrelId : X'000000000000000000000000000000000000000000000000'
BackoutCount : 0
ReplyToQ : ' '
ReplyToQMgr : 'QM_701 '
** Identity Context
UserIdentifier : 'rivera '
AccountingToken :
X'0431303033000000000000000000000000000000000000000000000000000006'
ApplIdentityData : ' '
** Origin Context
PutApplType : '6'
PutApplName : 'amqsput '
PutDate : '20130125' PutTime : '15422875'
ApplOriginData : ' '

GroupId : X'000000000000000000000000000000000000000000000000'
MsgSeqNumber : '1'
Offset : '0'
MsgFlags : '0'
OriginalLength : '-1'

**** Message ****

length - 10 bytes

00000000: 5445 5354 2D50 5554 2D31 'TEST-PUT-1 '


2) amqsbcgc  (クライアント接続:TCP接続を使用します)
"メッセージのPUT"と同様にMQSERVER変数を使用して、MQクライアントをホストに接続します。

amqsbcgc Q1 QM_TEST

出力結果は、"1) amqsbcg"と同じです。


+ メッセージのGET

下記サンプル・コマンドでキュー内のメッセージのGETができます。
GET後、メッセージは、キューからなくなります。

このコマンドは、新しいメッセージがを受け取るために、15秒待ち、新しいメッセージが届かない場合、終了します。

1) amqsget (バインディング接続:ローカル環境でインタープロセス通信を使用します。)
例:
amqsget Q1 QM_TEST
Sample AMQSGET0 start
message <TEST-PUT-1>
message <TEST-PUT-2>
no more messages
Sample AMQSGET0 end

2) amqsgetc  (クライアント接続:TCP接続を使用します)

"メッセージのPUT"と同様にMQSERVER変数を使用して、MQクライアントをホストに接続します。
例:
amqsgetc Q1 QM_TEST

出力結果は、"1) amqsget"と同じです。


+ メッセージのクリア

amqsget もしくは amqsgetc コマンドでメッセージをGET後、キュー内のすべてのメッセージがクリアされます。

もしくは、下記、コマンドを実行することで、メッセージ内のすべてのメッセージがクリアできます。
GETしないで、キュー内のメッセージがクリアされますので、注意が必要です。

runmqsc コマンドから CLEAR コマンドを実行しますので、MQ管理権限が必要です。
例:
runmqsc QM_TEST

CLEAR QLOCAL(Q10)
もしくは、
CLEAR QL(Q10)
end



【関連文書】
英文:Technote (FAQ) :1623407
Using WMQ line commands to define a local queue, to put, browse and get a message
※ 最新の情報は英文をご参照いただくことをお勧めいたします。


【お問合せ先】
技術的な内容に関して、サービス契約のあるお客様はIBMサービス・ラインにお問い合わせください。
IBM サービス・ライン

[{"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.5;7.1;7.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21637143