Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


12.3 注意事項

OpenTP1の同期点処理は通信障害,リソースマネジャ障害,UAP障害などの要因によって,UAPとは別プロセス(リカバリプロセス)で並行してロールバック処理が行われる場合があります。そのため,キューからメッセージを取り出すUAPが一つであっても,ロールバック処理と並行してUAPが動作した場合,メッセージの順序性が保証できないことがあります。

メッセージの順序性が失われる例を次の図に示します。

図12‒1 メッセージの順序性が失われる例

[図データ]

メッセージの順序性を保証するためには,メッセージの取り出しを行うUAPが別プロセスで行われるロールバック処理を待ち合わせる必要があります。例えばdc_lck_get関数を呼び出してUAPで使用する資源の排他をグローバルトランザクション単位で確保することでメッセージの順序性を確保できます。

dc_lck_get関数による資源の排他要求の例を次の図に示します。

図12‒2 dc_lck_get関数による資源の排他要求の例

[図データ]