WebSphere MQ: メッセージの完全性 (2) メディア・リカバリー

リニア・ロギングのキュー・マネージャのメディア・リカバリー機能を確認する。前回までの記事はこちら。参考文献は末尾に記載。

リニア・ロギングとは

下記に適当な説明があるので、引用させて頂く。
引用元:WebSphere MQ System Administration Guide Version 7.0

Linear logging:
Use linear logging if you want both restart recovery and media recovery
(recreating lost or damaged data by replaying the contents of the log).
Linear logging keeps the log data in a continuous sequence of files. Space is not
reused, so you can always retrieve any record logged in any log extent that has not
been deleted
As disk space is finite, you might have to think about some form of archiving. It is
an administrative task to manage your disk space for the log, reusing or extending
the existing space as necessary.

線形的に増加していくタイプのロギング方式。メディア・リカバリー機能を使用するにはリニア・ロギング方式にする必要がある。尚、これとは対照的に循環ロギング(Circular Logging)と言うのもある。こちらはログファイルが環内で継続的に再利用されるため、ディスク容量はある一定までしか消費しない。キュー・マネージャーの作成コマンドcrtmqmではデフォルトでこの循環ロギング方式で作成する。

キュー・マネージャーの環境作成

リニア・ロギングのキュー・マネージャーは-llオプションで作成する。

続けてローカル・キュー、別名キューを作成しパーシステント、ノンパーシステント・メッセージをputする。

メディア・リカバリー

メディア・イメージの取得

キュー・マネージャーはキューのメッセージ数が0になった際に、自動的にチェックポイントを作るが、今回はrcdmqimgを使用して、ローカル・キューのメディア・イメージを取得することでチェックポイントを強制的に作る。

キューの実体ファイルを削除

キューの障害を再現する為、QL.Aの実体ファイルを確認し削除する。

キューの損傷を確認

仮に上記の結果とならず、まだキューにメッセージをputできたら、キューに対して数件のメッセージをputする事で検知させる。(キュー・マネージャーのバッファリングや検知タイミングのずれがある為)

オブジェクトの再作成

rcrmqimgコマンドを用いてQL.Aキューを再作成する。

QL.Aキューが復旧したか確認する。

QL.Aのパーシステント・メッセージが確かにリカバリーできていることを確認できた。(またノンパーシステント・メッセージはリカバリーされていないことを確認できた。)

参考文献

  • WebSphere MQ System Administration Guide Version 7.0