1.3 分散トランザクション・プロトコルについて
MicroTxでは、次の分散トランザクション・プロトコルがサポートされています:
- XAプロトコル。これはThe Open GroupのXA仕様に基づいています。この仕様の詳細は、https://pubs.opengroup.org/onlinepubs/009680699/toc.pdfを参照してください。
- Sagaプロトコル。これはEclipse MicroProfile LRA仕様に基づいています。この仕様の詳細は、https://download.eclipse.org/microprofile/microprofile-lra-1.0-M1/microprofile-lra-spec.htmlを参照してください。
- Try-Confirm/Cancel (TCC)プロトコル
XAを使用するのは、ローカル・データベース・トランザクションによって提供される一貫性のように強力な一貫性が必要な場合です。これにはトランザクションのすべてのACIDプロパティが存在します。たとえば、財務アプリケーションです。Sagaプロトコルを使用するのは、完了に時間がかかる可能性があるトランザクションの場合です。Sagaプロトコルを使用すると、ロックの問題を軽減できます。TCCプロトコルは、飛行機座席やホテル客室などの予約モデルを使用するアプリケーションに適しています。SagaとTCCはどちらも長時間実行トランザクションをサポートしています。Sagaの方が一般的ですが、成功したSagaの完了と失敗したSagaの補正のために、アプリケーション固有のアクションが必要です。一方、TCCでの補正は、予約を削除してから予約されていたものを使用可能リソースのプールに返すことによって実行されます。
- XAトランザクション・プロトコル
XAを使用するアプリケーションは、トランザクションの境界を設定する必要があります。MicroTxがトランザクションをコミットまたはロールバックします。 - Sagaトランザクション・プロトコル
- Try-Confirm/Cancelトランザクション・プロトコル
Try-Confirm/Cancel (TCC)トランザクション・プロトコルは、トランザクションが確定されるか取り消されるまで、リソースを予約状態のまま保持します。トランザクションが取り消されると、予約されたリソースが解放され、インベントリで使用できるようになります。
親トピック: MicroTxについて