10.3 トランザクション・リカバリについて

トランザクション・コーディネータ・サーバーは、障害後にサーバーが再起動したときに進行中のトランザクションを再開します。

トランザクション・コーディネータ・サーバーは、再起動するたびに、トランザクション・ストアに格納されている進行中のトランザクションをすべて処理し、進行中のトランザクションを再起動します。リカバリは、トランザクション・ストアで使用可能なデータによって異なります。トランザクション・ストアは、トランザクション・コーディネータがクラッシュまたは再起動した後でも、以前のトランザクションに関する情報を保持する必要があります。MicroTxがトランザクション・データを格納するようetcdまたはOracle Databaseを設定した場合は、コーディネータの再起動後、進行中のトランザクションに関する情報とトランザクションの詳細を取得できます。ただし、個別のトランザクション・ストアを設定しておらず、内部メモリーを使用してトランザクション詳細を格納している場合は、コーディネータがクラッシュまたは再起動すると、格納されているすべての情報が失われます。

MicroTxは、次の状態のトランザクションについて、トランザクション・ストアで使用可能なデータに基づいて進行中のトランザクションをリカバリします:

トランザクション・プロトコル トランザクション・ステータス トランザクション・リカバリの一環としてトランザクション・コーディネータは...
XA Preparing トランザクションをロールバックします
XA Rolling back トランザクションをロールバックします
XA Committing prepareおよびcommitコマンドを再送信し、トランザクションを正常にコミットするために再試行します
LRA Closing closeコマンドを再発行してトランザクションをクローズします
LRA Canceling cancelコマンドを再発行して、トランザクションを取り消します
TCC Confirming confirmコマンドを再発行してトランザクションを確定します
TCC Canceling cancelコマンドを再発行して、トランザクションを取り消します

また、XAトランザクション・プロトコルの場合、トランザクション・コーディネータは、コミットされていないトランザクションを動的にリカバリします。「XAトランザクションの動的リカバリについて」を参照してください。