MicroTxの変更点

マイクロサービス対応トランザクション・マネージャ(MicroTx)パッチ22.3.2とその先行リリースの変更点は次のとおりです。

22.3.2の新機能

MicroTxリリース22.3.2の新機能は次のとおりです。

XAトランザクションのラスト・リソース・コミット(LRC)の最適化

ロギング・ラスト・リソース(LLR)の最適化に加え、ラスト・リソース・コミット(LRC)の最適化を使用すると、1つの非XAリソースがグローバルXAトランザクションに参加できるようになりました。「非XAリソースの最適化」を参照してください。

サービスでの複数のリソース・マネージャのサポート

アプリケーションのビジネス・ロジックに基づいて、1つの参加側サービスに対して複数のリソース・マネージャを使用できます。1つの参加側サービスは、複数のXA準拠リソース・マネージャに接続できます。ただし、1つのトランザクションで非XAリソースは1つしかサポートされません。「1つのアプリケーションでの複数のリソース・マネージャの構成」を参照してください。

TCCトランザクション・プロトコルを使用したPythonアプリケーション用のMicroTxライブラリ

Python用のMicroTxライブラリは、Pythonアプリケーションが新しいTCCトランザクションを開始したり、既存のTCCトランザクションに参加したりする機能を提供します。以前は、TCCトランザクション・プロトコル用のMicroTxライブラリはJavaとNode.jsアプリケーションに対してのみサポートされていましたが、Pythonアプリケーション用のTCCライブラリを使用できるようになりました。「TCCでのPythonアプリケーションの開発」を参照してください。

XAトランザクション通知の受信の登録

トランザクション・イニシエータ・サービスおよび参加側サービスを登録して、通知を受信できます。MicroTxは、イベントの発生時(準備フェーズの前およびMicroTxがトランザクションを正常にコミットまたはロールバックしたとき)に、登録したサービスについて通知します。イベントの発生時にビジネス・ロジックに基づいてサービスが追加のタスクを実行するようにする場合には、サービスの登録をお薦めします。「XAトランザクション通知の受信の登録」を参照してください。

以前のリリースでの変更点

MicroTxリリース22.3.1での変更点は次のとおりです。

Oracle Databaseまたはetcdにトランザクション詳細を格納

MicroTxは、内部メモリーに加えて、トランザクション状態の永続性を確保するためのデータ・ストアとしてetcdまたはOracle Databaseをサポートするようになりました。「サポートされているデータベース」を参照してください。

セッション・アフィニティのサポート

参加側サービスのレプリカが複数ある場合、リクエストは1つのトランザクションで異なるレプリカに向けられることがあります。参加側サービスのセッション・アフィニティを有効にすると、一意のトランザクションまたはセッションに対するすべてのリクエストは、最初のリクエストを処理した参加側サービスの同じエンドポイントまたはレプリカにルーティングされます。ビジネス・ユース・ケースによっては、トランザクション参加側サービスまたはトランザクション・コーディネータに対してセッション・アフィニティを有効にする必要がある場合があります。「セッション・アフィニティについて」を参照してください。

トランザクション・コーディネータの複数のレプリカの作成

マイクロサービス対応トランザクション・マネージャの複数のレプリカを一度に実行できます。本番環境に3つ以上のレプリカが推奨されます。「環境の詳細」を参照してください。

レプリカの数は、トランザクションの数に基づいてスケール・アップまたはスケール・ダウンできます。トランザクション・リクエストの数が少ない場合は、レプリカの数をスケール・ダウンしてリソースを効率的に使用します。

共通リソース・マネージャを使用するトランザクションの最適化

ビジネス要件に基づいて、複数のトランザクション参加側サービスに対して単一のリソース・マネージャを使用できます。複数の参加側サービスに共通リソース・マネージャを使用する場合は、トランザクションを最適化できます。「複数のアプリケーションの共通リソース・マネージャ」を参照してください。

トランザクションのリカバリ

トランザクション・コーディネータ・サーバーに障害が発生した場合、マイクロサービス対応トランザクション・マネージャは、サーバーの再起動後に進行中のトランザクションを再開します。「トランザクション・リカバリについて」を参照してください。