ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     WebLogic JTA プログラマーズ ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

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

 

この章では、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 種類のトランザクションをサポートするトランザクション サービスが提供されます。

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

 


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

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

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

 

back to top previous page next page