15 リソース・アダプタのチューニング
- リソース・アダプタのクラスローディングの最適化
リソース・アダプタ・クラスを1つまたは複数のJARファイルにパッケージ化してから、そのJARファイルをRARファイル内に配置することができます。これをネストされたJARと呼びます。JARファイルをRARファイル内にネストしていて、クラスがクラスローダーによってロードされる必要がある場合、RARファイル内のJARは、ロードする必要のある各クラスごとに、開いて閉じて繰返し処理されることになります。 - 接続の最適化
リソース・アダプタで、J2CA 1.5仕様の接続の最適化に関する項で述べられているオプションの機能を実装することをお薦めします。 - スレッド管理
リソース・アダプタの実装では、新しいスレッドを直接作成するかわりに新しいスレッドを実行するために必要な処理をWorkManager
を使用して起動します。WebLogic Serverは、これらのスレッドの管理および監視を行います。 - InteractionSpecインタフェース
InteractionSpecには、EISインスタンスとの対話を駆動するためのプロパティが格納されます。CCI仕様では、InteractionSpecの一連の標準プロパティが定義されます。InteractionSpec実装クラスによって、サポートされるプロパティごとにgetterおよびsetterメソッドが指定されるようにする必要があります。
リソース・アダプタのクラスローディングの最適化
リソース・アダプタ・クラスを1つまたは複数のJARファイルにパッケージ化してから、そのJARファイルをRARファイル内に配置することができます。これをネストされたJARと呼びます。JARファイルをRARファイル内にネストしていて、クラスがクラスローダーによってロードされる必要がある場合、RARファイル内のJARは、ロードする必要のある各クラスごとに、開いて閉じて繰返し処理されることになります。
RARファイル内のJARの数が少なく、JARのサイズが比較的小さい場合は、パフォーマンスに大きな影響は与えません。一方、多数のJARがあり、JARのサイズが大きい場合は、パフォーマンスへの影響が大きくなります。
そのようなパフォーマンスの問題を避けるには、以下のいずれかを行います。
- リソース・アダプタを展開形式でデプロイします。この場合、JARのネストは不要になるため、クラスの検索に関わるパフォーマンスの影響は小さくなります。
- リソース・アダプタを展開形式でデプロイできない場合は、RARファイルの内部でJARを展開できます。この場合もJARのネストは不要になるため、クラスローディングのパフォーマンスが大幅に向上します。
親トピック: リソース・アダプタのチューニング
接続の最適化
リソース・アダプタで、J2CA 1.5仕様の接続の最適化に関する項で述べられているオプションの機能を実装することをお薦めします。
http://www.oracle.com/technetwork/java/index.html
を参照してください。これらの機能を実装すると、WebLogic Serverでは、通常は利用できない機能を提供できます。
怠惰な接続の関連付けを利用すると、サーバーは未使用の接続を自動的にクリーン・アップして、アプリケーションによるリソースの占有を防ぐことができます。怠惰なトランザクション登録を利用すると、アプリケーションは、接続がすでに開かれた後で、トランザクションを開始できます。
親トピック: リソース・アダプタのチューニング
スレッド管理
リソース・アダプタの実装では、新しいスレッドを直接作成するかわりに新しいスレッドを実行するために必要な処理をWorkManager
を使用して起動します。WebLogic Serverは、これらのスレッドの管理および監視を行います。
J2CA 1.5仕様(http://www.oracle.com/technetwork/java/index.html
)の第10章の「作業管理」を参照してください。
親トピック: リソース・アダプタのチューニング
InteractionSpecインタフェース
InteractionSpecには、EISインスタンスとの対話を駆動するためのプロパティが格納されます。CCI仕様では、InteractionSpecの一連の標準プロパティが定義されます。InteractionSpec実装クラスによって、サポートされるプロパティごとにgetterおよびsetterメソッドが指定されるようにする必要があります。
J2CA 1.5仕様(http://www.oracle.com/technetwork/java/index.html
)の第17章「Common Client Interface」に従って、WebLogic ServerはEISのアクセスでCommon Client Interface (CCI)をサポートしています。CCIでは、アプリケーション・コンポーネント用の標準クライアントAPIを定義しています。アプリケーション・コンポーネントおよびEAIフレームワークは、CCIを使用することにより、異種EIS間の対話を制御できます。
ベスト・プラクティスとしては、CCIリソース・アダプタをRARファイル内に実装しなければならないInteractionSpec
クラスは格納しないでください。代わりに、RARファイルの外部にある別のJARファイルにパッケージ化してください。そうすると、一般的なCLASSPATHにInteractionSpec
インタフェース・クラスを入れないでも、クライアントがアクセスできるようになります。
InteractionSpec
インタフェースについては、すべてのアプリケーション・コンポーネント(EJB、リソース・アダプタ、Webアプリケーション)がEARファイルにパッケージ化されている場合、すべての共通クラスをAPP-INF/libディレクトリに配置できることに留意してください。これが最も簡単なシナリオです。
このことは、スタンドアロンのリソース・アダプタ(RARファイルにパッケージ化)には当てはまりません。(InteractionSpec
と同様に)インタフェースがシリアライズ可能である場合、クライアントとリソース・アダプタの両方が、実装クラスだけでなくInteractionSpec
インタフェースにアクセスする必要があります。ただし、インタフェースがjava.io.Remote
を拡張している場合、クライアントはインタフェース・クラスにのみアクセスすればよくなります。
親トピック: リソース・アダプタのチューニング