ローカル・トランザクションおよびグローバル・トランザクション

アプリケーションは、Java™ Database Connectivity (JDBC) データ・ソース、接続ファクトリーなどのリソースを使用します。 これらのリソースは、管理コンソールの「リソース」ビューを使用して構成されます。 これらのリソースがどのようにしてグローバル・トランザクションに参加するかは、 基礎となるリソース・プロバイダーのトランザクション・サポートによって異なります。

例えば、ほとんどの JDBC プロバイダーは、XA または XA 以外のいずれかの バージョンのデータ・ソースを提供できます。 非 XA データ・ソースは、リソース・マネージャー・ローカル・トランザクション (RMLT) しか サポートできませんが、XA データ・ソースは、ローカル・トランザクションに加え、2 フェーズ・コミット調整を サポートできます。

[z/OS]さらに、JDBC プロバイダーのなかには、トランザクション処理を調整する z/OS® Resource Recovery Service (RRS) の使用をサポートするものもあります。 このタイプの JDBC プロバイダーは、RRSTransactional です。RRS を 使用する際は、ローカル・トランザクションとグローバル・トランザクションのどちらもサポートします。
config: アクティベーション・スペックで MQ リソース・アダプターを使用する場合、アプリケーション・サーバーは、1 フェーズ・コミットを使用するように RRS トランザクションを最適化できません。 この機能が必要な場合、リスナー・ポートを使用します。

[z/OS]RMLT のみをサポートする 2 つ以上のリソース・プロバイダーをアプリケーションで使用する場合、これらのリソースは本来 1 フェーズであるため、アトミシティは保証されません。 アトミックな動作を保証するために、アプリケーションは、XA 調整または RRS 調整を サポートするリソースを使用し、グローバル・トランザクション内で それらのリソースにアクセスする必要があります。

[AIX Solaris HP-UX Linux Windows][IBM i]RMLT のみをサポートする 2 つ以上のリソース・プロバイダーをアプリケーションで使用する場合、これらのリソースは本来 1 フェーズであるため、アトミシティは保証されません。 アトミックな動作を行えるように、アプリケーションは、XA 調整をサポートするリソースを使用し、グローバル・トランザクション内でそれらのリソースにアクセスする必要があります。

アプリケーションが RMLT を 1 つしか使用しない場合、ローカル・トランザクション内包 (LTC) コンテキストでアクセスできるリソース・マネージャーによって、アトミックな動作が保証されます。

リソース・マネージャーが XA 調整をサポートしない場合であっても、アプリケーションは、グローバル・トランザクションのコンテキストで、単一のリソース・マネージャーにアクセスすることもできます。 アプリケーションがこれを行うことができるのは、 アプリケーション・サーバーが「"リソースのみの最適化"」を行い、RMLT のもとでリソース・マネージャーと対話するためです。グローバル・トランザクション・コンテキスト内で、 RMLT のみをサポートするリソース・プロバイダーを 1 つより多く使用しようとすると、 グローバル・トランザクションはロールバックされます。

どのようなときでも、エンタープライズ Bean のインスタンスのグローバル・トランザクション・コンテキストか、ローカル・トランザクション内包コンテキストのいずれかに、未解決の作業が存在することがあります。ただし、そのような作業が両方に存在することはありません。 元のコンテキストにおける未解決の作業がすべて完了した場合、エンタープライズ Bean のインスタンスの実行が、あるタイプのコンテキストから別のタイプのコンテキストへと変更される (逆方向の変更も含む) ことがあります。 この原則に反すると、 エンタープライズ Bean が新規コンテキストを開始しようとするときに、例外がスローされます。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjta_glocons
ファイル名:cjta_glocons.html