Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引


mqrrefresh(リポジトリ情報の再作成)

〈このページの構成〉

形式

mqrrefresh  〔{-f|〔-m〕〔-t〕}〕{-c クラスタ名|-a

機能

リポジトリ情報を削除し,再作成します。

オプションの指定と削除するリポジトリ情報について,次の表に示します。

表6‒5 オプションの指定と削除するリポジトリ情報

リポジトリ情報

すべて省略

-f

-m

-t

-m -t

フルリポジトリキューマネジャ情報

(フルリポジトリのクラスタレシーバチャネル情報)

×

×

×

×

パーシャルリポジトリキューマネジャ情報

(パーシャルリポジトリのクラスタレシーバチャネル情報)

×

×

リモートに存在するクラスタキュー情報

マネジャ問い合わせ情報

×

×

キュー問い合わせ情報

×

×

(凡例)

○:削除します。

×:削除しないで残します。

コマンドを入力する状況と指定するオプションについて,次の表に示します。

表6‒6 コマンドを入力する状況と指定するオプション

コマンドを入力する状況

指定するオプション

相手システムのクラスタキューを使用できない場合

すべて省略

次に示す条件を同時に満たす場合

  • 相手システムのクラスタキューを使用できません。

  • 相手システム(フルリポジトリキューマネジャ)のクラスタレシーバチャネルを認識できません。

-f

次に示す条件を同時に満たす場合

  • 相手システムのクラスタキューを使用できません。

  • 相手システム(パーシャルリポジトリキューマネジャ)のクラスタレシーバチャネルを認識できません。

-m

次に示す条件を同時に満たす場合

  • 相手システムのクラスタキューを使用できません。

  • 以前のアクセス時にフルリポジトリキューマネジャに場所を問い合わせたオブジェクトを,あらかじめmqrrefreshコマンド入力時に問い合わせておきます。

-t

次に示す条件を同時に満たす場合

  • 相手システムのクラスタキューを使用できません。

  • 相手システム(パーシャルリポジトリキューマネジャ)のクラスタレシーバチャネルを認識できません。

  • 以前のアクセス時にフルリポジトリキューマネジャに場所を問い合わせたオブジェクトを,あらかじめmqrrefreshコマンド入力時に問い合わせておきます。

-m -t

オプション

● -f

フルリポジトリキューマネジャ情報を再作成します。

このオプションを省略すると,フルリポジトリキューマネジャについての情報は再作成されません。

● -m

リモートのパーシャルリポジトリキューマネジャ情報を削除します。

● -t

過去に問い合わせた情報を削除しないで残します。

アクセスするチャネル情報やキュー情報を保持していない場合,リポジトリ管理サーバはこれらの情報をフルリポジトリに問い合わせます。このオプションを指定すると,リポジトリ情報の再作成時に情報を削除しないで残します。

● -c クラスタ名

 〜<1〜48文字のMQ文字列>

リポジトリ情報を再作成するクラスタ名を指定します。

● -a

リポジトリ管理サーバが参加しているすべてのクラスタに対し,リポジトリ情報の再作成処理を行います。

実行手順

  1. クラスタキューにアクセスするすべてアプリケーションを終了します。

  2. mqtstpchaコマンドでクラスタレシーバチャネルを終了します。

  3. SYSTEM.CLUSTER.TRANSMIT.QUEUEにメッセージが滞留していないことを確認します。

    KFCA16350-I,KFCA16351-IまたはKFCA16352-Wが出力されることを確認してください。

    クラスタセンダチャネルは,mqtstpchaコマンドを入力すると,該当チャネルに割り当てられたメッセージを別のチャネルで送信するため,メッセージ送信経路の再設定処理を行います。再設定処理では,転送キューに登録されているメッセージを再登録します。

    KFCA16350-I,KFCA16351-IまたはKFCA16352-Wが出力されない場合は,mqtstpcha -fコマンドを入力してチャネルを強制解放してください。

  4. チャネル状態を確認して,送達未確認メッセージがないことを確認します。

    チャネルの送達未確認メッセージがないことを確認するには,mqtlschaコマンドで,クラスタセンダチャネルの状態を確認します。

    mqtlscha -n クラスタセンダチャネル名

    送達未確認メッセージがある場合は,必ずそれを解決してから作業を進めてください。

    解決しないでmqrrefreshコマンドを実行するとメッセージが二重に送信されるおそれがあります。

  5. mqrrefreshコマンドを実行します。

    KFCA31526-IおよびKFCA31527-Iが出力されることを確認してください。

    KFCA31526-Iが出力されない場合,コマンドが異常終了しているおそれがあります。原因を取り除き,再度mqrrefreshコマンドを実行してください。KFCA31527-Iが出力されない場合,リポジトリ管理サーバが開始していることを確認してください。

  6. クラスタレシーバチャネルを開始します(mqtstachaコマンドを実行します)。

  7. クラスタセンダチャネルを開始します(mqtstachaコマンドを実行します)。

    KFCA31529-Iが出力されることを確認してください。

注意事項

  1. リポジトリ管理サーバが開始していない場合はエラーとなります。また,指定したクラスタに参加していない場合もエラーとなります。

  2. リポジトリ情報の再作成処理中にMQSET命令を発行したり,mqasetコマンドを入力したりした場合,フルリポジトリに情報が反映されるのは再作成処理終了メッセージが出力されたあとになります。

  3. フルリポジトリでキューマネジャをクラスタから強制的に除去したあとにmqrrefreshコマンドを実行する場合は,10秒以上経過してから実行してください。強制的な除去はフルリポジトリ側だけの処理となりパーシャルリポジトリに通知は来ないため,メッセージを表示できません。このためフルリポジトリ側の処理完了をパーシャルリポジトリ側の運用者が待つ必要があります。

    10秒経過していない場合,mqrrefreshコマンドは無視され,再作成処理完了メッセージは出力されません。この状態になったときは,TP1/Message Queueで,再度mqrrefresh -fコマンドを実行してください。

  4. 再作成処理中にmqrsupまたはOpenTP1が異常終了した場合,再作成処理は中断されます。その後,mqrsup開始時に再作成処理は再開されますが,その際再びKFCA31527-Iメッセージが出力されます。

  5. KFCA31526-Iメッセージ出力後KFCA31529-Iメッセージ出力までの間は,クラスタに未参加となるため,リモートのクラスタキューに対するMQOPEN,MQPUT,およびMQPUT1命令がエラーとなる場合があります。リフレッシュ処理完了後,再度MQOPEN,MQPUT,およびMQPUT1命令を発行してください。

  6. SYSTEM.CLUSTER.TRANSMIT.QUEUEにメッセージが滞留している状態で-mオプションを指定しmqrrefreshコマンドを実行した場合,メッセージがあて先キューに送信されないで,クラスタ転送キューに滞留した状態となります。必ずメッセージが滞留していないことを確認してください。

出力メッセージ

出力メッセージID

内容

出力先

KFCA04208-E

MQAサーバのV/Rが誤っています。

標準エラー出力

KFCA04209-E

メモリ不足で処理を続行できません。

標準エラー出力

KFCA04300-E

コマンドで指定した引数の数が正しくありません。

標準エラー出力

KFCA04301-E

定義解析中にエラーが発生しました。

標準エラー出力

KFCA04302-E

MQAサービスが終了処理中です。

標準エラー出力

KFCA04303-E

RPCでネットワーク障害が発生しました。

標準エラー出力

KFCA04304-E

MQAサービスが起動されていません。

標準エラー出力

KFCA04307-E

指定したオプションの数が誤っています。

標準エラー出力

KFCA26184-E

プロセス固有領域のメモリ不足で処理を続行できません。

標準エラー出力

KFCA31030-E

コマンド実行中に異常を検知しました。

標準エラー出力

KFCA31115-E

コマンドに対して処理結果を送信できません。

メッセージログファイル

KFCA31120-E

RPCインタフェースで異常を検知しました。

標準エラー出力

KFCA31124-E

リポジトリ管理サーバが起動されていません。

標準エラー出力

KFCA31173-E

OpenTP1がオンライン状態ではないため,コマンドを実行できません。

標準エラー出力

KFCA31502-E

MQIでエラーが発生しました

メッセージログファイル

KFCA31526-I

リポジトリ管理サーバに処理を依頼しました。

メッセージログファイル

KFCA31528-I

ヘルプメッセージ

標準出力

KFCA31530-E

リポジトリ管理サーバは指定したクラスタに参加していません。

標準エラー出力

KFCA31531-E

クラスタは再作成処理中です。

標準エラー出力

KFCA31536-E

リポジトリ管理サーバへの処理依頼に失敗しました。

メッセージログファイル

KFCA31538-E

指定したクラスタ名が誤っています。

標準エラー出力