ナビゲーションをスキップ

WebLogic JTA プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

トランザクション サービス

この章では、WebLogic Server システム向けのトランザクション対応アプリケーションを記述するために必要な情報を提供します。

この章では、以下のトピックについて説明します。

 


トランザクション サービスについて

WebLogic Server は、EJB アプリケーションと RMI アプリケーションのトランザクションをサポートするトランザクション サービスを備えています。WebLogic Server EJB コンテナでは、そのトランザクション サービスによって、Sun Microsystems 発行の EJB 仕様 2.0 で説明されているトランザクション サービスの実装が提供されます。

EJB と RMI のアプリケーションの場合、WebLogic Server では Java アプリケーションの Java Transaction API (JTA) を実装する Sun Microsystems の javax.transaction パッケージおよび javax.transaction.xa パッケージも提供されます。JTA の詳細については、Sun Microsystems 発行の Java Transaction API (JTA) 仕様 1.0.1a を参照してください。トランザクションの境界を設定するためにアプリケーションで使用される UserTransaction オブジェクトの詳細については、WebLogic Server の Javadoc を参照してください。

 


機能と制限

この節の内容は以下のとおりです。

以降の節では、EJB と RMI のアプリケーションをサポートするトランザクション サービスの機能と制限について説明します。

軽量クライアントと委託コミット

軽量クライアントは、可用性が一定ではなく、管理のされていない、1 ユーザ対象のデスクトップ システムで動作します。デスクトップ システムは、使用されないときは所有者によって電源が落とされます。そのような管理されていない、1 ユーザ対象のデスクトップ システムでは、トランザクションの調整などのネットワーク機能を行うべきではありません。特に、管理されていないシステムには、サーバ リソースが関わるトランザクションにおいて、障害の影響を受けずに原子性、一貫性、隔離性、および持続性という ACID プロパティを維持するという役目を負わせるべきではありません。WebLogic Server のリモート クライアントは軽量クライアントです。

トランザクション サービスを利用すると、軽量クライアントでは委託コミットを実行できます。つまり、軽量クライアントでは、トランザクションの調整をサーバ マシン上のトランザクション マネージャにまかせてトランザクションを開始および終了することができるのです。クライアント アプリケーションは、ローカルのトランザクション サーバを必要としません。EJB クライアントまたは RMI クライアントで使用される UserTransaction のリモート実装によって、トランザクション調整の実際の作業がサーバ上のトランザクション マネージャに委託されます。

クライアントが開始するトランザクション

アプレットなどのクライアントでは、JNDI を使用して UserTransaction オブジェクトおよび TransactionManager オブジェクトの参照を取得できます。クライアントでは、いずれかのオブジェクト参照を使用してトランザクションを開始できます。現在のスレッドの Transaction オブジェクトを取得するには、クライアント プログラムは ((TransactionManager)tm).getTransaction() メソッドを呼び出さなければなりません。

トランザクションの整合性

トランザクションの動作を管理すると、そのトランザクションに関わるすべてのトランザクション オブジェクトでトランザクション リクエストの処理が完了しない限り commit が成功しないので、トランザクションの整合性が確保されます。トランザクション サービスでは、Open Group によって定義されているリクエストと応答のプロセス間通信モデルで提供されるものと同等のトランザクション動作の管理が提供されます。

トランザクションの終了

WebLogic Server では、トランザクションはそのトランザクションを生成したクライアントによってのみ終了することができます。

注意 : クライアントは、別のオブジェクトのサービスを要求したサーバ オブジェクトの場合もあります。

フラット トランザクション

WebLogic Server では、フラット トランザクション モデルが実装されています。ネスト トランザクションはサポートされていません。

トランザクション サービスのトランザクション処理との関係

トランザクション サービスは、さまざまなトランザクション処理のサーバ、インタフェース、プロトコル、および規格と以下のように関連しています。

マルチスレッド トランザクション クライアントのサポート

WebLogic Server では、マルチスレッド トランザクション クライアントがサポートされています。クライアントでは、複数のスレッドで同時にトランザクション リクエストを行うことができます。

制約

トランザクション サービスには以下の制約があります。

 


トランザクションのスコープ

トランザクションのスコープは、そのトランザクションが実行される環境を表します。WebLogic Server では、スタンドアロン サーバでのトランザクション、クラスタ化されていないサーバ間でのトランザクション、ドメイン内のクラスタ化されたサーバ間でのトランザクション、およびドメイン間のトランザクションがサポートされています。ドメイン間のトランザクションがサポートされるようにするためには、関連するすべてのドメインに共通の資格をコンフィグレーションする必要があります。Administration Console オンライン ヘルプの「ドメイン間トランザクションに対するドメインのコンフィグレーション」を参照してください。

 


EJB アプリケーションでのトランザクション サービス

WebLogic Server EJB コンテナでは、WebLogic Server EJB アプリケーションでの以下の 2 種類のトランザクションをサポートするトランザクション サービスが提供されます。

EJB アプリケーションでのトランザクション管理の概要については、「トランザクションについて」の「WebLogic Server EJB アプリケーションのトランザクション」および「トランザクションのサンプル EJB コード」を参照してください。

 


RMI アプリケーションでのトランザクション サービス

WebLogic Server は、WebLogic Server RMI アプリケーションのトランザクションをサポートするトランザクション サービスを備えています。RMI アプリケーションでは、クライアント アプリケーションまたはサーバ アプリケーションが UserTransaction オブジェクトに対する明示的なメソッド呼び出しを行って、トランザクションの開始、コミット、およびロールバックが行われます。

UserTransaction のメソッドの詳細については、オンラインの Javadoc を参照してください。RMI アプリケーションでのトランザクション管理の概要については、「トランザクションについて」の「WebLogic Server RMI アプリケーションのトランザクション」および「トランザクションのサンプル RMI コード」を参照してください。

 


OTS と相互運用できるトランザクション サービス

WebLogic Server では、Object Transaction Service (OTS) との相互運用をサポートするトランザクション サービスが提供されます。Java Transaction Service (JTS) 仕様を参照してください。このリリースでは、WebLogic Server は以下のシナリオで OTS と相互運用できます。

サーバ間 2PC トランザクション

この場合、サーバ間 2PC トランザクションは介在を使用して完了します。開始側サーバは xid を作成し、トランザクションを対象サーバに伝播します。対象サーバは、自身をリソースとして開始側サーバに登録します。開始側サーバがトランザクションを完了させます (ラスト リソースの最適化はなし)。

クライアントによって境界設定されるトランザクション

クライアントが OTS クライアント API を介してサーバ上でトランザクションを開始します。その後、クライアントはこのトランザクションから xid を取得し、トランザクションがコミットするまでその xid をリクエストごとに伝播します。クライアントはトランザクションを開始しますが、すべてのコミット処理はサーバ上で行われます。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次