![]() |
![]() |
|
|
| |
この章では、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.1 を参照してください。トランザクションの境界を設定するためにアプリケーションで使用される UserTransaction
オブジェクトの詳細については、WebLogic Server Javadoc を参照してください。
以下の節では、EJB と RMI のアプリケーションをサポートするトランザクション サービスの機能と制限について説明します。
軽量クライアントは、可用性が一定ではなく、管理のされていない、1 ユーザ対象のデスクトップ システムで動作します。デスクトップ システムは、使用されないときは所有者によって電源が落とされます。そのような管理のされていない、1 ユーザ対象のデスクトップ システムでは、トランザクションの調整などのネットワーク機能を行うべきではありません。特に、管理のされていないシステムはサーバ リソースが関わるトランザクションにおいて、障害の影響を受けず原子性、一貫性、隔離性、および持続性という ACID プロパティを維持することに責任を持つべきではありません。WebLogic Server のリモート クライアントは軽量クライアントです。
トランザクション サービスを利用すると、軽量クライアントでは委託コミットを実行できます。つまり、軽量クライアントでは、トランザクションの調整をサーバ マシン上のトランザクション マネージャにまかせてトランザクションを開始および終了することができるのです。クライアント アプリケーションは、ローカルのトランザクション サーバを必要としません。EJB クライアントまたは RMI クライアントで使用される UserTransaction
のリモート実装によって、トランザクション調整の実際の作業がサーバ上のトランザクション マネージャに委託されます。
アプレットなどのクライアントでは、JNDI を使用して UserTransaction
オブジェクトおよび TransactionManager
オブジェクトの参照を取得できます。クライアントでは、いずれかのオブジェクト参照を使用してトランザクションを開始できます。現在のスレッドの Transaction
オブジェクトを取得するには、クライアント プログラムは ((TransactionManager)tm).getTransaction()
メソッドを呼び出さなければなりません。JNDI から返される Transaction
オブジェクトでは、UserTransaction
インタフェースと TransactionManager
インタフェースの両方がサポートされます。
トランザクションの動作を管理すると、そのトランザクションに関わるすべてのトランザクション オブジェクトでトランザクション要求の処理が完了しない限り commit
が成功しないのでトランザクションの整合性が保証されます。トランザクション サービスでは、Open Group によって定義されている要求と応答のプロセス間通信モデルで提供されるものと同等のトランザクション動作の管理が提供されます。
WebLogic Server では、トランザクションはそのトランザクションを生成したクライアントによってのみ終了することができます。
注意: クライアントは、別のオブジェクトのサービスを要求したサーバ オブジェクトの場合もあります。
WebLogic Server では、フラット トランザクション モデルが実装されています。ネスト トランザクションはサポートされていません。
トランザクション サービスのトランザクション処理との関係
トランザクション サービスは、さまざまなトランザクション処理のサーバ、インタフェース、プロトコル、および規格と以下のように関連しています。
WebLogic Server では、マルチスレッド トランザクション クライアントがサポートされています。クライアントでは、複数のスレッドで同時にトランザクション要求を行うことができます。
トランザクション サービスには以下の制約があります。
トランザクションのスコープは、そのトランザクションが実行される環境を表します。WebLogic Server では、スタンドアロン サーバでのトランザクション、クラスタ化されていないサーバ間でのトランザクション、およびドメイン内のクラスタ化されたサーバ間でのトランザクションがサポートされています。複数のドメインにまたがるトランザクションはサポートされていません。
EJB アプリケーションでのトランザクション サービス
WebLogic Server EJB コンテナでは、WebLogic Server EJB アプリケーションでの以下の 2 種類のトランザクションをサポートするトランザクション サービスが提供されます。
UserTransaction
オブジェクトに対する明示的なメソッド呼び出しを行って、トランザクションの開始、コミット、およびロールバックを行います。UserTransaction
のメソッドの詳細については、オンラインの Javadoc を参照します。
EJB アプリケーションでのトランザクション管理の概要については、トランザクションについての WebLogic Server EJB アプリケーションのトランザクションの概要および トランザクションのサンプル EJB コードを参照してください。
WebLogic Server は、WebLogic Server RMI アプリケーションのトランザクションをサポートするトランザクション サービスを備えています。RMI アプリケーションでは、クライアント アプリケーションまたはサーバ アプリケーションが UserTransaction
オブジェクトに対する明示的なメソッド呼び出しを行って、トランザクションの開始、コミット、およびロールバックが行われます。
UserTransaction
のメソッドの詳細については、オンラインの Javadoc を参照してください。RMI アプリケーションでのトランザクション管理の概要については、トランザクションについての
WebLogic Server RMI アプリケーションのトランザクションの概要および
トランザクションのサンプル RMI コードを参照してください。
![]() |
![]() |
![]() |