11 RMIアプリケーションのトランザクション
この章には次の項が含まれます:
始める前に
WebLogic Server RMIアプリケーションでトランザクションを処理する前に、RMIトランザクションの概念およびその実装を理解しておく必要があります。
開始する前に、「トランザクションについて」(特に次のトピック)を読んでください。
RMIアプリケーションの詳細は、『Oracle WebLogic Serverスタンドアロン・クライアントの開発』を参照してください。
ガイドライン
WebLogic Server向けのRMIアプリケーションでトランザクションを実装するための特定のガイドラインがあります。
-
WebLogic Serverでは、フラット・トランザクションのみがサポートされています。トランザクションをネストすることはできません。
-
標準的なプログラミング手法を使用してトランザクション処理を最適化します。たとえば、トランザクションの境界を適切に設定すると、トランザクションの処理が速くなります。
-
RMIアプリケーションでは、トランザクションでコールバック・オブジェクトを使用することが推奨されていません(WebLogic Serverで管理できないため)。
デフォルトでは、リモート・オブジェクトにおけるすべてのメソッド呼出しはトランザクション処理です。コールバック・オブジェクトが必要な場合は、WebLogic RMIコンパイラで -nontransactionalフラグを使って、これらのクラスをコンパイルする必要があります。『Oracle WebLogic Server RMIアプリケーションの開発』の「WebLogic RMIコンパイラの使い方」およびWebLogic RMIコンパイラのオプションに関する項を参照してください。
-
RMIアプリケーションでは、RMIクライアントがトランザクションを開始できますが、すべてのトランザクション処理はWebLogic Serverをホストとするサーバー・オブジェクトまたはリモート・オブジェクト上で行われる必要があります。クライアントJVM上でホストされるリモート・オブジェクトは、トランザクション処理に参加できません。
回避策としては、クライアントJVM上のリモート・オブジェクトを呼び出す前にトランザクションをサスペンドし、リモート処理が終了した後でトランザクションを再開します。
WebLogic Serverトランザクション・サービスのガイドラインについては、「機能と制限」を参照してください。