REST API を使用したリモート管理
REST API を使用して、リモート・キュー・マネージャー、およびそれらのキュー・マネージャーに関連付けられた IBM® MQ オブジェクトを管理できます。 このリモート管理には、同じシステム上にあるが、mqweb サーバーと同じ IBM MQ インストール済み環境にはないキュー・マネージャーが含まれます。 したがって、 REST API を使用して、mqweb サーバーを実行する 1 つのインストール済み環境のみで IBM MQ ネットワーク全体を管理できます。 リモート・キュー・マネージャーを管理するには、mqweb サーバーと同じインストール済み環境内の少なくとも 1 つのキュー・マネージャーがゲートウェイ・キュー・マネージャーとして機能するように administrative REST API ゲートウェイを構成する必要があります。 その後、 REST API リソース URL でリモート・キュー・マネージャーを指定して、指定した管理アクションを実行できます。
始める前に
administrative REST API ゲートウェイを無効にすることで、リモート管理を防止できます。 詳しくは、 administrative REST API ゲートウェイの構成を参照してください。
- mqweb サーバーを構成し、開始する必要があります。 mqweb サーバーの構成と開始について詳しくは、 管理 REST API 入門を参照してください。
- ゲートウェイ・キュー・マネージャーとして構成するキュー・マネージャーは、mqweb サーバーと同じインストール済み環境にある必要があります。
- 管理するリモート・キュー・マネージャーは、 IBM MQ 8.0 以降でなければなりません。
- 要求で指定する属性が要求の送信先システムで有効であることを確認する必要があります。 例えば、ゲートウェイ・キュー・マネージャーが Windows 上にあり、リモート・キュー・マネージャーが z/OS®上にある場合、
queue
リソースで HTTP GET 要求に対してdataCollection.statistics
属性が返されるように要求することはできません。 - 要求に指定されているすべての属性が、要求の送信先の IBM MQ のレベルに対して有効であることを確認する必要があります。 例えば、リモート・キュー・マネージャーが IBM MQ 8.0を実行している場合、
queue
リソースの HTTP GET 要求に対してextended.enableMediaImageOperations
属性を返すように要求することはできません。 - 以下のサポートされる REST リソースの 1 つを使用する必要があります。
/queue
/subscription
/channel
/mqsc
/qmgr
リモート・キュー・マネージャーを照会すると、
/qmgr
リソースは、属性のサブセット (name
、status.started
、status.channelInitiatorState
、status.ldapConnectionState
、status.connectionCount
、およびstatus.publishSubscribeState
) のみを返します。
本タスクについて
mqRestGatewayQmgr
属性をゲートウェイ・キュー・マネージャーの名前に設定するか、要求とともに送信されるヘッダーでゲートウェイ・キュー・マネージャーの名前を送信します。 要求は、ゲートウェイ・キュー・マネージャーを経由してリモート・キュー・マネージャーに送信されます。 ゲートウェイ・キュー・マネージャーとして使用されたキュー・マネージャーを示すヘッダーと共に応答が返されます。手順
結果
ibm-mq-rest-gateway-qmgr
ヘッダーが REST 応答と共に返されます。 このヘッダーは、ゲートウェイ・キュー・マネージャーとして使用されたキュー・マネージャーを指定しています。
例
Machine 1
には、 Installation
1
と Installation 2
があります。 Machine 2
には、 Installation 3
があります。 mqweb サーバーは Installation 1
用に構成されています。 各インストール済み環境には 1 つのキュー・マネージャーがあり、これらのキュー・マネージャーはリモート管理用に構成されています。 つまり、以下のリスナー、チャネル、およびキューが構成され、開始されています。Machine 1
上のInstallation 1
のキュー・マネージャー QM1:- 送信側チャネル QM1.to.QM2
- 受信側チャネル QM2.to.QM1
- 送信側チャネル QM1.to.QM3
- 受信側チャネル QM3.to.QM1
- 伝送キュー QM2
- 伝送キュー QM3
- ポート 1414 に構成されたリスナー
Machine 1
上のInstallation 2
のキュー・マネージャー QM2:- 送信側チャネル QM2.to.QM1
- 受信側チャネル QM1.to.QM2
- 伝送キュー QM1
- ポート 1415 に構成されたリスナー
Machine 2
上のInstallation 3
のキュー・マネージャー QM3:- 送信側チャネル QM3.to.QM1
- 受信側チャネル QM1.to.QM3
- 伝送キュー QM1
- デフォルトのリスナー
キュー Qon2
が QM2 に定義され、キュー Qon3
が QM3 に定義されています。
ユーザー mquser
には、両方のマシンで定義され、 REST APIで MQWebAdmin 役割が付与され、各キュー・マネージャーの該当するキューにアクセスする権限が付与されます。
setmqweb コマンドを使用して、キュー・マネージャー QM1 をデフォルトのゲートウェイ・キュー・マネージャーとして構成しています。
GET https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM2/queue?attributes=general.isTransmissionQueue
{
"queue" :
[{
"general": {
"isTransmissionQueue": true
},
"name": "QM1",
"type": "local"
},
{
"general": {
"isTransmissionQueue": false
},
"name" : "Qon2",
"type" : "local"
}]
}
GET https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM3/queue?attributes=general.isTransmissionQueue,general.description
{
"queue" :
[{
"general": {
"isTransmissionQueue": true,
"description": "Transmission queue for remote admin."
},
"name": "QM1",
"type": "local"
},
{
"general": {
"isTransmissionQueue": false,
"description": "A queue on QM3."
},
"name" : "Qon3",
"type" : "local"
}]
}