WebLogic Server MTでは、複数のパーティション環境でのトランザクション処理をサポートしています。トランザクションの範囲は、ドメイン・レベルまたはパーティション・レベルのいずれかになります。
この章の内容は次のとおりです。
ロギング・ラスト・リソース(LLR)データ・ソース、JDBC TLogデータ・ソースまたは決定子リソースは、パーティションで登録できません。このリリースのWebLogic Serverで、これらのリソースをパーティション・レベルで登録しようとすると、システム例外が発生します。
この制限が発生するのは、これらのいずれかのリソースが使用できない場合にWebLogic Serverインスタンスを起動できないためです。そのため、マルチテナント環境では、アクセス不可状態は他のパーティションで共有されます。リソース(およびそのコミット・レコード)にアクセスできなくてもサーバーの起動が許可される場合、コミット・レコードの不足によりこれらのリソースがロールバックされるため、これらのリソースもリスト化したトランザクションでリスト化されたリソースのリカバリは、非原子的となる可能性があります。
固有に提供されたリソース・コミットの順序付けにLLRを使用する場合、WebLogic Server 12.2.1リリースで提供された最初リソース・コミット機能を使用します。この機能では、ローカル・トランザクション・ベースのLLRリソースではなく正確なXAリソースが必要になるため、LLRによるパフォーマンスの利点が提供されず、LLR表は必要ありません。LLRデータ・ソースはデプロイ先のサーバーに固定されますが、XAデータ・ソースは固定されません。そのため、複数のサーバーがトランザクションでリスト化される場合、2段階コミット・フローは少し異なる場合があります。『Oracle WebLogic Server JTAアプリケーションの開発』の最初のリソース・コミットの順序付けに関する項を参照してください。
他のクラスタへのリソース・グループのライブ移行後のステートフルEJBクライアント・フェイルオーバーはクラスタ内のフェイルオーバーより時間がかかります。これは、ClusterMBean.getSessionStateQueryRequestTimeout()
によるクラスタ・メンバーからのレプリカ検索の結果を待機するためで、このデフォルト値は30秒です。そのため、他のクラスタへのリソース・グループのライブ移行後のステートフルEJB呼出しのフェイルオーバー中に、スレットにトランザクションがある場合、トランザクション・タイムアウト値の長さが十分でない場合、ステートフルEJBメソッド呼出しのフェイルオーバー中にトランザクションがタイムアウトする可能性があります。デフォルトのトランザクション・タイムアウトは30秒です。
ステートフルEJBクライアントを含むクラスタ間でのリソース・グループのライブ移行中にトランザクションがタイムアウトするのを回避するには、リソース・グループの移行の前にトランザクションのタイムアウト値を増やします。それから、ステートフルEJBを使用する移行されたすべてのクライアントがターゲット・クラスタにフェイルオーバーしたときに、タイムアウトを前の値にリセットできます。たとえば、コンテナ管理トランザクションでステートフルEJBを呼び出すEJBがある場合、WebLogic Server Administration Consoleを使用してEJBアプリケーションのtrans-timeout-seconds
デプロイメント・ディスクリプタを増やします。詳細は、EJB: 構成を参照してください。