7.3.4 複数のアプリケーションの共通リソース・マネージャ

複数の参加側サービスに共通リソース・マネージャを使用する場合、MicroTxはコミット処理を最適化できるため、XAトランザクションのスループットが向上し、レイテンシが低下します。

複数の参加側サービスに共通リソース・マネージャを使用する場合は、ORACLE_TMM_XA_RMID環境変数の値を指定してトランザクションを最適化できます。リソース・マネージャを共有するすべての参加側サービスに対して1つのブランチのみが作成されるため、トランザクションは最適化されます。

部門A、部門Bおよび部門Cは、リソース・マネージャを共有するが、異なるORACLE_TMM_XA_RMID値を持つ3つの参加側サービスであるとします。MicroTxは、部門ごとに新しいブランチを作成します。MicroTxで、トランザクションを追跡するためのブランチが合計3つ作成されます。

トランザクションを最適化するには、部門A、部門Bおよび部門CサービスのORACLE_TMM_XA_RMID環境変数に、ORCL1などの一意の値を指定します。

ORACLE_TMM_XA_RMID環境変数に値を指定すると、MicroTxは単一のリソース・マネージャを使用するすべてのサービスに対して単一のブランチを作成します。複数のブランチが作成されないため、トランザクションが最適化されます。このシナリオでは、MicroTxはトランザクションを最適化し、共通のリソース・マネージャと複数の参加側が関与するトランザクションを追跡する単一のブランチを作成します。この変数に値を指定しない場合、MicroTxはトランザクションを最適化せず、参加側サービスごとに1つずつ3つのブランチを作成します。

ノート:

Oracle RACデータベースを複数の参加側サービスの共通リソース・マネージャとして使用する場合は、共通のOracle RACデータベースをリソース・マネージャとして使用するすべての参加側サービスに同じRMID値を指定する必要があります

制限事項

  • 複数の参加側サービスで共有できるのは、XA準拠のリソース・マネージャのみです。非XAリソースを複数の参加側サービスと共有することはできません。
  • トランザクションに参加するイニシエータ・アプリケーションを含め、すべてのトランザクション参加側サービスに共通リソース・マネージャを使用できます。トランザクションを開始するがトランザクションに参加しないトランザクション・イニシエータ・サービスは、リソース・マネージャを必要としません。
  • リソース・マネージャごとに一意のRMIDを使用する必要があります。異なるリソース・マネージャに同じRMIDを使用すると、トランザクションは失敗します。