3.7 メッセージ永続性
永続メッセージは,システムジャーナルやキューファイルに書き出されます。システムジャーナルへの書き出しはTP1/Message Queueの環境に依存します。キューマネジャを障害後に再開始する場合,永続メッセージはシステムジャーナルから必要に応じて回復されます。キューマネジャが終了すると,オペレータコマンドの結果であるのか,システムの障害であるのかに関係なく,永続でないメッセージは破棄されます。
メッセージを作成するときにメッセージ記述子をデフォルトで初期化すると,MQOPEN命令で指定されたキューのDefPersistence属性にあるメッセージ永続性が使用されます。また,MQMD構造体のPersistenceフィールドを使用して,ユーザがメッセージの永続性を指定することもできます。
永続メッセージを使用する場合にはアプリケーションの性能に影響があります。影響範囲は,使用するコンピュータのI/Oサブシステムと各OSでの同期点の使用方法によって異なります。
-
TP1/Message Queueの仕掛かり中のトランザクション外部にある永続メッセージは,登録または取り出し操作のたびにディスクに書き出されます。詳細については,「12. コミットとロールバック」を参照してください。
-
TP1/Message Queueの仕掛かり中のトランザクション内部にある永続メッセージは,トランザクションがコミットした場合にだけシステムジャーナルおよびキューファイルに書き出されます。システムジャーナルへの書き出しはTP1/Message Queueの環境に依存します。トランザクションには複数のキュー操作を入れることができます。トランザクションに同期しない永続メッセージは,MQI命令が正常終了した場合,システムジャーナルおよびキューファイルに書き出されます。
非永続メッセージは同期点外で取り出しを実行するときのファーストメッセージ機能で使用できます。ファーストメッセージ機能については,マニュアル「TP1/Message Queue 使用の手引」を参照してください。