12.3 注意事項
OpenTP1の同期点処理は通信障害,リソースマネジャ障害,UAP障害などの要因によって,UAPとは別プロセス(リカバリプロセス)で並行してロールバック処理が行われる場合があります。そのため,キューからメッセージを取り出すUAPが一つであっても,ロールバック処理と並行してUAPが動作した場合,メッセージの順序性が保証できないことがあります。
メッセージの順序性が失われる例を次の図に示します。
|
メッセージの順序性を保証するためには,メッセージの取り出しを行うUAPが別プロセスで行われるロールバック処理を待ち合わせる必要があります。例えばdc_lck_get関数を呼び出してUAPで使用する資源の排他をグローバルトランザクション単位で確保することでメッセージの順序性を確保できます。
dc_lck_get関数による資源の排他要求の例を次の図に示します。
|