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

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

トランザクションのコンフィグレーション

以下の節では、トランザクション関連のコンフィグレーション タスクについて説明します。

 


トランザクション コンフィグレーションの概要

Administration Console は、WebLogic JTA などの WebLogic Server の機能をコンフィグレーションするために使用するインタフェースを備えています。コンフィグレーション プロセスでは、属性の値を指定する必要があります。それらの属性によって、以下のようなトランザクション環境が定義されます。

また、EJB、JDBC データ ソース、JMS など、トランザクションに参加可能な Java EE コンポーネントの管理についてもよく理解しておく必要があります。

注意 : WebLogic Scripting Tool (WLST。『WebLogic Scripting Tool ガイド』を参照) または JMX (『JMX によるカスタム管理ユーティリティの開発』を参照) で、トランザクション関連の設定をコンフィグレーションすることもできます。

 


JTA のコンフィグレーション

WebLogic JTA および任意のトランザクション参加コンポーネントをコンフィグレーションすると、システムは JTA API および WebLogic JTA 拡張機能を使用してトランザクションを管理できます。以下の点に注意してください。

リソース登録解除の猶予期間

アプリケーションと一緒にパッケージ化された JDBC データ ソース モジュールなど、必要に応じてアンデプロイしたり再デプロイしたりすることのあるリソースについては、ドメインに対して [リソース登録解除の猶予期間] を設定することで、リソースが登録解除されていたためにトランザクションが破棄される可能性を最小限にできます。猶予期間とは、リソースが登録解除される前に、トランザクション マネージャがトランザクションの完了を待機する秒数です。

指定された猶予期間の間、unregisterResource 呼び出しは自身が返るまでブロックを行い、関連するリソースに対して新しいトランザクションは開始されません。リソースに対して未処理のトランザクションの数が 0 になると、unregisterResource 呼び出しは即座に返ります。

猶予期間の終わりに、まだリソースに関連する未処理のトランザクションがある場合は、unregisterResource が返り、リソースが以前登録されていたサーバ上にログ メッセージが書き込まれます。

トランザクションを管理するための追加属性

デフォルトでは、グローバル トランザクションに参加している XA リソースが WebLogic Server トランザクション マネージャからの XA 呼び出しに応答しないと、そのリソースに異常があって使用できないことを示すフラグが付加されます。また、リソースのスレッドを保持するため、このリソースに対する以降のすべての呼び出しがブロックされます。障害は、トランザクションに異常がある場合でも、リソースに異常がある場合でも発生する可能性があります。これら 2 つの原因の間に区別はありません。どちらの場合も、リソースに異常があるものとしてマークされます。

この制約を緩和するため、WebLogic Server には表 3-1 に示すコンフィグレーション属性が用意されています。

表 3-1 XA リソースのヘルス モニタ コンフィグレーション属性
属性
MBean
定義
ResourceHealthMonitoring
JDBCXAParamsBean MBean の ResourcehealthMonitoring 属性。
JDBC データ ソースのリソースのヘルス モニタを有効または無効にする。この属性は、データベース接続に XA JDBC ドライバを使用するデータ ソースにのみ適用される。非 XA JDBC ドライバを使用している場合は無視される。
true に設定すると、リソースのヘルス モニタが有効になる。MaxXACallMillis 属性に指定した期間内に XA リソースが XA 呼び出しへの応答に失敗すると、データ ソースに異常があるものとしてマークされ、リソースに対する以降の呼び出しがすべてブロックされる。
false に設定すると、この機能が無効になる。
デフォルト : true
JDBC データ ソースの [リソース ヘルス モニタ] 属性は、Administration Console の [JDBC データ ソース : コンフィグレーション : 接続プール] タブで設定できる。
MaxXACallMillis
XA リソースに対する XA 呼び出しの最長許容期間をミリ秒で設定する。この設定は、ドメイン全体に適用される。
デフォルト : 120000
MaxResourceUnavailableMillis
XA リソースが異常とマークされる最長期間 (ミリ秒)。この期間を過ぎると、トランザクション マネージャで XA リソースを明示的に再登録しなくても、リソースが再び使用可能と宣言される。この設定は、ドメイン全体に適用される。
デフォルト : 1800000
MaxResourceRequestOnServer
ドメイン内の各サーバで許容するリソースへの同時要求の最大数。
デフォルト : 50
最小値 : 10
最大値 : java.lang.Integer.MAX_VALUE

JDBC データ ソースの [リソース ヘルス モニタ] を除き、これらの属性は、ドメインが非アクティブの時に config.xml ファイルで直接設定します。Administration Console では設定できません。次の例は、これらの属性に関する部分をコンフィグレーション ファイルから抜粋したものです。

...
   <JTA
MaxUniqueNameStatistics="5"
TimeoutSeconds="300"
RecoveryThresholdMillis="150000"
MaxResourceUnavailableMillis="900000"
MaxResourceRequestOnServer="60"
MaxXACallMillis="180000"
/>

 


ドメイン間トランザクションに対するドメインのコンフィグレーション

トランザクション マネージャで分散トランザクションを管理する場合、トランザクションを準備し、その後コミットまたはロールバックするために、トランザクション マネージャはすべての参加リソースと通信できる必要があります。これは、WebLogic ドメインが、分散トランザクションにおいて、トランザクション マネージャまたはトランザクション参加コンポーネント (リソース) として機能する場合に当てはまります。以下の節では、ドメイン間トランザクションが可能なようにドメインをコンフィグレーションする方法を説明します。

以下の節では、ドメイン間トランザクション用にドメインをコンフィグレーションする方法について説明します。

ドメイン間トランザクションの制限事項

ドメイン間トランザクションには以下の制限事項があります。

注意 : グローバル トランザクションでは、非 XA ドライバ (2 フェーズ コミットのエミュレート) ではなく、XA ドライバを使用することをお勧めします。グローバル トランザクションで非 XA ドライバを使用することにはリスクが伴います。『WebLogic JDBC のコンフィグレーションと管理』の「非 XA ドライバを使用して 2 フェーズ コミットをエミュレートする際の制限およびリスク」を参照してください。

通信チャネルのコンフィグレーション

グローバル トランザクションに参加するすべてのドメインについて、クロス ドメイン セキュリティまたはセキュリティの運用モードを使用し、互換性のある通信チャネルを適切にコンフィグレーションする必要があります。

プロセスで使用されるすべてのドメインについて、クロス ドメイン セキュリティをコンフィグレーションするか、セキュリティの相互運用モードを設定します。どちらの設定もドメイン レベルで設定されるため、ドメインがクロス ドメイン セキュリティとセキュリティの相互運用モードの両方が設定された混在モードになる可能性があります。

以下の節では、グローバル トランザクションの通信チャネルのコンフィグレーションについて説明します。

ドメイン間トランザクション用にどのタイプの通信チャネルをコンフィグレーションする必要があるかについては、次の表を参考に判断してください。

表 3-2 ドメイン間トランザクション用の通信チャネルのコンフィグレーション
ドメイン
10.x および 9.2 MP2 以上
9.0、9.1、および 9.2 MP1 以下
8.1 SP5 以上
8.1 SP4 以下
10.x および 9.2 MP2 以上
両方のドメインをクロス ドメイン セキュリティ用にコンフィグレーションする
または
セキュリティの相互運用モードを使用し、両方のドメインを [デフォルト] または [パフォーマンス] に設定する
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、9.0、9.1、または 9.2 MP1 以下のドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、両方のドメインを [デフォルト] または [パフォーマンス] に設定する
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、8.1 ドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、両方のドメインを [パフォーマンス] に設定する
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、8.1 ドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、10.x または 9.2 MP2 以上のドメインを [互換性] に設定する
9.0、9.1、および 9.2 MP1 以下
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、9.0、9.1、または 9.2 MP1 以下のドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、両方のドメインを [デフォルト] または [パフォーマンス] に設定する
両方のドメインを [デフォルト] または [パフォーマンス] に設定する
両方のドメインを [パフォーマンス] に設定する
9.x のドメインを [互換性] に設定する
8.1 SP5 以上
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、8.1 ドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、両方のドメインを [パフォーマンス] に設定する
両方のドメインを [パフォーマンス] に設定する
両方のドメインを [パフォーマンス] に設定する
8.1 SP5 以上のドメインを [互換性] に設定する
8.1 SP4 以下
10.x または 9.2 MP2 以上のドメインをクロス ドメイン セキュリティ用にコンフィグレーションし、8.1 ドメインを例外リストに追加する
または
セキュリティの相互運用モードを使用し、10.x または 9.2 MP2 以上のドメインを [互換性] に設定する
9.x のドメインを [互換性] に設定する
8.1 SP5 以上のドメインを [互換性] に設定する
なし

注意 : [セキュリティの相互運用モード] が [パフォーマンス] に設定されている場合、ドメイン間におけるドメインの信頼関係の設定は必須ではありません。

クロスドメイン セキュリティのコンフィグレーション

クロス ドメイン セキュリティでは、資格マッパーを使用することで、グローバル トランザクション内のサーバ間に、互換性のある通信チャネルをコンフィグレーションすることを可能にしています。トランザクションに参加するすべてのドメイン ペアについて、資格マッパーを 1 つずつコンフィグレーションします。CrossDomainConnector セキュリティ ロールに属す資格群は、ドメイン ペアごとに異なっていても構いません。『WebLogic Server のセキュリティ』の「クロスドメイン セキュリティの有効化」および「クロスドメイン セキュリティ用の資格マッピングのコンフィグレーション」を参照してください。

クロス ドメイン セキュリティをコンフィグレーションする際は、以下の点を考慮に入れてください。

セキュリティの相互運用モードのコンフィグレーション

[セキュリティの相互運用モード] を使用すると、グローバル トランザクション内のサーバ間に、互換性のある通信チャネルをコンフィグレーションできます。次の手順に従って、セキュリティの相互運用モードをコンフィグレーションします。

  1. ドメインの信頼関係を確立します。
  2. 表 3-2 の値を使用して、セキュリティの相互運用モードをコンフィグレーションします。
注意 : [セキュリティの相互運用モード] が [パフォーマンス] に設定されている場合、ドメイン間におけるドメインの信頼関係の設定は必須ではありません。
ドメインの信頼関係を確立する

すべての参加ドメインのセキュリティ資格を同じ値に設定します。これにより、ドメインの信頼関係が確立します。

セキュリティの相互運用モードをコンフィグレーションする

参加しているすべてのサーバの [セキュリティの相互運用モード] パラメータを同じ値に設定する必要があります。

有効な値は以下のとおりです。

参加しているサーバのセキュリティの相互運用モードをコンフィグレーションするには、以下を参照してください。

 


ドメイン内トランザクションに対するドメインのコンフィグレーション

セキュリティの相互運用モードを使用して、同じドメイン内のトランザクションに参加するサーバ間に、互換性のある通信チャネルを正しくコンフィグレーションする必要があります。「セキュリティの相互運用モードのコンフィグレーション」を参照してください。

ドメイン内トランザクション用にどのタイプの通信チャネルをコンフィグレーションする必要があるかについては、以下の情報を参考に判断してください。

 


トランザクション ログ ファイル

各サーバには、そのサーバで調整されてコミットされたが、未完了の可能性があるトランザクションの情報を格納するトランザクション ログが備わっています。WebLogic Server では、システムのクラッシュやネットワーク障害からの回復時にトランザクション ログを使用します。トランザクション ログを直接見ることはできません。レコードはバイナリ形式で、サーバのデフォルト永続ストアに格納されます。

クラスタ内のサーバに対するトランザクション回復サービスの移行機能を利用するには、トランザクション ログをサーバとそのバックアップ サーバが使用できる場所 (デュアルポート SCSI ディスクまたは SAN (Storage Area Network) を推奨) に格納する必要があります。詳細については、「デフォルト永続ストアへのパスの設定」を参照してください。

デフォルトのストアがトランザクション ログ レコードの保存先とするファイル システムで領域が不足したり、アクセス不能になったりすると、commit()SystemException を送出し、トランザクション マネージャによってシステム エラー ログにメッセージが書き込まれます。使用できる領域が増えるまで、トランザクションはコミットされません。

デフォルト永続ストアへのパスの設定

管理サーバを含む、各サーバ インスタンスには、デフォルトの永続ストアがあります。これは、特定のストアを明示的に選択する必要がなく、システムのデフォルトのストレージ メカニズムを使用することで最適に動作するサブシステムから使用することができる、ファイルベースのストアです。トランザクション マネージャは、デフォルト永続ストアを使用して、トランザクション ログ レコードを格納します。多くの場合、デフォルトの永続ストアは、コンフィグレーションを必要としません。ただし、トランザクション回復サービスの移行を有効化するには、オリジナルのサーバで障害が発生した場合に、クラスタ内の別のサーバで使用できる、永続ストレージ ソリューションに、データ ファイルを格納するよう、デフォルトの永続ストアをコンフィグレーションする必要があります。

手順については、Administration Console オンライン ヘルプの「トランザクション回復サービスの移行のためのデフォルト永続ストアのコンフィグレーション」を参照してください。

デフォルト永続ストアの同期書き込みポリシーの設定

WebLogic Server は、デフォルト永続ストアを使用して、トランザクション ログ レコードを格納します。デフォルト ストアの書き込みポリシーを選択することで、WebLogic Server がレコードをディスクに書き込む方式を変更できます。以下のいずれかのオプションを選択できます。

Windows では [Direct-Write] トランザクション ログ ファイル書き込みポリシーが指定されていても、トランザクション データがディスクに直接書き込まれずにオンディスク キャッシュに残される場合があります。この場合、停電などによってオンディスク キャッシュのデータが失われるおそれがあり、トランザクションとしては安全とはいえません。Windows で [Direct-Write] トランザクション ログ ファイル書き込みポリシーを使用している場合にキャッシュ データの消失を回避するには、ディスクの書き込みキャッシュをすべて無効にするか (デフォルトでは有効)、またはシステムのバッテリー バックアップを使用してください。

手順については、Administration Console オンライン ヘルプの「トランザクション回復サービスの移行のためのデフォルト永続ストアのコンフィグレーション」を参照してください。


ページの先頭       前  次