分散ネットワークに対する非同期コマンドが終了したことの確認

分散ネットワークでは、多くのコマンドが非同期コマンドとして使用されます。 コマンドによっては、またコマンド発行時のネットワークの状態によっては、完了までにかなりの時間がかかる場合があります。 キュー・マネージャーは完了時にメッセージを発行しないため、コマンドが終了したことを他の方法で確認する必要があります。

本タスクについて

クラスターに対して行う構成変更のほとんどすべてがたいてい非同期で完了します。 これは、クラスター内で発生する内部管理やサイクルの更新によるものです。 パブリッシュ/サブスクライブ階層では、サブスクリプションに影響を与えるすべての構成変更がたいてい非同期で完了します。 このことはコマンドの名前からは分からないこともあります。

以下の MQSC コマンドはすべて非同期で完了します。 これらの各コマンドには PCF に相当するものがあり、ほとんどのコマンドは IBM® MQ Explorer 内からも使用できます。 これらのコマンドは通常、ワークロードのない小規模なネットワークで実行される場合は、数秒で完了します。 ただし、これは大規模で負荷の高いネットワークには当てはまりません。 また、REFRESH CLUSTER コマンドは、特に複数のキュー・マネージャーで同時に発行される場合にはそれよりもかなり長い時間がかかることもあります。

これらのコマンドが終了したことを確認するには、予期するオブジェクトがリモート・キュー・マネージャーに存在することを確認します。

手順

  • ALTER QMGR

    ALTER QMGR PARENT コマンドの場合、 DISPLAY PUBSUB TYPE(PARENT) ALL を使用して、要求された親関係の状況を追跡します。

    ALTER QMGR REPOS コマンドおよび ALTER QMGR REPOSNL コマンドの場合は、 DISPLAY CLUSQMGR QMTYPE を使用して完了を確認します。

  • DEFINE CHANNELALTER CHANNEL、および DELETE CHANNEL

    ALTER CHANNEL パラメーター表にリストされているすべてのパラメーターについて、 DISPLAY CLUSQMGR コマンドを使用して、いつ変更がクラスターに伝搬されたかをモニターします。

  • DEFINE NAMELISTALTER NAMELIST、および DELETE NAMELIST

    NAMELISTQMgr オブジェクトの CLUSNL 属性で使用する場合、そのオブジェクトはキューまたはクラスター・チャネルの影響を受ける可能性があります。 必要に応じて、影響を受けるオブジェクトをモニターしてください。

    SYSTEM.QPUBSUB.QUEUE.NAMELIST を変更すると、パブリッシュ/サブスクライブ階層でのプロキシー・サブスクリプションの作成または取り消しに影響する可能性があります。 DISPLAY SUB SUBTYPE(PROXY) コマンドを使用してこれをモニターしてください。

  • DEFINE キューALTER キュー、および DELETE キュー

    DISPLAY QUEUE コマンドによって戻すことができるパラメーターの表にリストされているすべてのパラメーターについては、 DISPLAY QCLUSTER コマンドを使用して、変更がクラスターに伝搬された時点をモニターしてください。

  • DEFINE SUB、および DELETE SUB

    最初のサブスクリプションをトピック・ストリングで定義する際、パブリッシュ/サブスクライブ階層またはパブリッシュ/サブスクライブ・クラスターにプロキシー・サブスクリプションを作成することもできます。 同様に、トピック・ストリング上の最後のサブスクリプションを削除する際、パブリッシュ/サブスクライブ階層またはパブリッシュ/サブスクライブ・クラスターでプロキシー・サブスクリプションを取り消すこともできます。

    サブスクリプションを定義または削除しているコマンドが終了したことを確認するには、予期するプロキシー・サブスクリプションが分散ネットワーク内の他のキュー・マネージャーに存在するかどうか確認します。 クラスターで直接ルーティング を使用する場合、クラスター内の他の部分リポジトリーに予期するプロキシー・サブスクリプションが存在することを確認してください。 クラスターでトピック・ホスト・ルーティング を使用する場合、一致するトピック・ホスト上に予期するプロキシー・サブスクリプションが存在することを確認してください。 以下の MQSC コマンドを使用します。
    
    DISPLAY SUB(*) SUBTYPE(PROXY)
    
    これに相当する以下のサブスクライブおよびアンサブスクライブ MQI 呼び出しがクラスターまたは階層で発行される場合には、これらの呼び出しに対して同じ確認を行ってください。
    • MQSUBを使用してサブスクライブします。
    • MQCO_REMOVE_SUB を指定した MQCLOSE を使用してアンサブスクライブします。
  • DEFINE TOPICALTER TOPIC、および DELETE TOPIC

    クラスター化されたトピックを定義、変更、または削除するコマンドが終了したことを確認するには、クラスター内の他の部分リポジトリー内のトピック (直接ルーティング を使用している場合)、または他のトピック・ホスト上のトピック (トピック・ホスト・ルーティング を使用している場合) を表示します。

    DISPLAY TOPIC コマンドで戻すことができるパラメーターの表にリストされているすべてのパラメーターについては、 DISPLAY TCLUSTER コマンドを使用して、変更がクラスターに伝搬された時点をモニターしてください。
    注:
    • CLUSTER パラメーターは、パブリッシュ/サブスクライブ・クラスターでのプロキシー・サブスクリプションの作成または取り消しに影響を与える可能性があります。
    • PROXYSUB パラメーターおよび SUBSCOPE パラメーターは、パブリッシュ/サブスクライブ階層またはパブリッシュ/サブスクライブ・クラスターでのプロキシー・サブスクリプションの作成または取り消しに影響を与える可能性があります。
    • DISPLAY SUB SUBTYPE(PROXYSUB) コマンドを使用してこれをモニターしてください。
  • リフレッシュ・クラスター

    REFRESH CLUSTER コマンドを実行している場合、クラスターのコマンド・キュー項目数をポーリングしてください。 それがゼロになるまで待機し、ゼロの状態にしたまま、オブジェクトを検索してください。

    1. 以下の MQSC コマンドを使用して、クラスター・コマンド・キューのサイズがゼロであることを確認します。
      
      DISPLAY QL(SYSTEM.CLUSTER.COMMAND.QUEUE) CURDEPTH
      
    2. キュー項目数がゼロに達するまで確認を繰り返し、後続の確認でゼロを維持します。

    REFRESH CLUSTER コマンドは、オブジェクトを削除して再作成します。大きな構成の場合、完了までにかなりの時間がかかることがあります。 パブリッシュ/サブスクライブ・クラスターの REFRESH CLUSTER についての考慮事項を確認してください。

  • REFRESH QMGR タイプ (PROXYSUB)
    REFRESH QMGR TYPE(PROXYSUB) コマンドが終了したことを確認するには、分散ネットワーク内の他のキュー・マネージャー上でプロキシー・サブスクリプションが修正されていることを確認してください。 クラスターで直接ルーティング を使用する場合、クラスター内の他の部分リポジトリー上でプロキシー・サブスクリプションが修正されていることを確認してください。 クラスターでトピック・ホスト・ルーティング を使用する場合、一致するトピック・ホスト上で、予期するプロキシー・サブスクリプションが修正されていることを確認してください。 以下の MQSC コマンドを使用します。
    
    DISPLAY SUB(*) SUBTYPE(PROXYSUB)
    
  • クラスターのリセット

    RESET CLUSTER コマンドが完了したことを確認するには、DISPLAY CLUSQMGR を使用します。

  • RESET QMGR タイプ (PUBSUB)

    RESET QMGR コマンドが完了したことを確認するには、DISPLAY PUBSUB TYPE(PARENT|CHILD) を使用します。

    注: RESET QMGR コマンドにより、パブリッシュ/サブスクライブ階層またはパブリッシュ/サブスクライブ・クラスター内のプロキシー・サブスクリプションが取り消される場合があります。 DISPLAY SUB SUBTYPE(PROXYSUB) コマンドを使用してこれをモニターしてください。
  • コマンドの完了が近づくにつれて、また完了したときにキュー項目数がゼロになる傾向がある他のシステム・キューを、モニターすることもできます。
    例えば、 SYSTEM.INTER.QMGR.CONTROL キュー、および SYSTEM.INTER.QMGR.FANREQ キューをモニターすることができます。 クラスターでのプロキシー・サブスクリプション・トラフィックのモニター 、および パブリッシュ/サブスクライブ・ネットワークでのプロデューサーとコンシューマーの平衡化を参照してください。

次のタスク

これらの確認によって非同期コマンドが終了したことを確認できない場合、エラーが発生する可能性があります。 調査を行うには、コマンドが発行されたキュー・マネージャーのログをまず確認し、その後、(クラスターで) クラスターのフル・リポジトリー・ログを確認してください。