2 リソース・アダプタの作成と構成
WebLogic Serverリソース・アダプタを作成して構成し、デプロイメント用に準備するには、リソース・アダプタ・クラスの作成やデプロイメント記述子の構成などのいくつかのタスクを実行します。このタスクには、メタデータ注釈の指定、Bean検証構成ファイルの準備、スタンドアロンおよび埋込みリソース・アダプタのヘルス・ステータスのモニタリングの設定なども含まれることがあります。
リソース・アダプタの作成と構成:主なステップ
WebLogicリソース・アダプタを作成するには、特定のリソース・アダプタのクラスを作成し、リソース・アダプタのデプロイメント記述子を記述して、それらをWebLogic Serverにデプロイされるアーカイブ・ファイルにパッケージ化する必要があります。
リソース・アダプタを作成する主なステップは以下のとおりです。
既存のリソース・アダプタの変更
weblogic-ra.xml
デプロイメント記述子を追加して、リソース・アダプタを再パッケージ化します。
次の例では、blackbox-notx.rar
というRARファイルにパッケージ化された既存のリソース・アダプタを変更するステップを示します。
ra.xmlファイルの構成
ra.xml
デプロイメント記述子ファイルに指定する必要があります。 1.0または1.5のリソース・アダプタでは、このファイルを手動で作成する必要があります。1.6リソース・アダプタを作成している場合は、メタデータの注釈をオプションでリソース・アダプタ・クラスに指定できます。これにより、ra.xml
ファイルを手動で作成する必要性がなくなります。次の項では、ra.xml
ファイルの構成方法について説明します。
ra.xml
ファイルの作成の詳細は、『JSR 322: Java EE Connector Architecture 1.6』も参照してください。
ra.xmlファイルの手動作成
リソース・アダプタにra.xml
ファイルがなく、リソース・アダプタを作成している場合は、手動で作成するか、または既存のファイルを編集して、リソース・アダプタに必要なデプロイメント・プロパティを設定する必要があります。プロパティの編集には、テキスト・エディタまたはXMLエディタを使用できます。
デプロイメント情報を指定するメタデータ注釈の使用
Java EEコネクタ・アーキテクチャ1.6では、ra.xml
ファイルを手動で作成する必要はありません。かわりに、メタデータ注釈をリソース・アダプタのクラスに含めると、ra.xml
ファイルに指定するのと同じ機能を提供できます。
すべてのデプロイメント情報をra.xml
ファイルに指定することを選択した場合、Java EEコネクタ・アーキテクチャ1.6がmetadata-complete
要素を含みます。これをra.xml
ファイルに含めて、true
に設定します。metadata-complete
要素をtrue
に設定すると、リソース・アダプタのクラスに含まれるすべてのメタデータ注釈が無視されます。metadata-complete
要素を指定しない、またはfalse
に設定すると、WebLogic Serverは、注釈に指定された情報とra.xml
ファイルに指定された情報を実行時にマージし、マージした情報を使用してリソース・アダプタのデプロイと管理を行います。
デプロイメント記述子と注釈の詳細は、『JSR 322: Java EE Connector Architecture 1.6』の第18章「Metadata Annotations」を参照してください。Java Platform, Enterprise Edition: Java EEチュートリアルのMetadataの注釈に関する項も参照してください。
リソース・アダプタのXMLスキーマ定義
Java EEコネクタ・アーキテクチャ1.6では、主に開発容易性の機能(メタデータ注釈など)をサポートするためにra.xml
ファイル・スキーマが変更されています。スキーマ定義の変更の詳細は、『JSR 322: Java EE Connector Architecture 1.6』の第20.7項「Resource Adapter XML Schema Definition」を参照してください。
1.0および1.5リソース・アダプタのra-xml
ファイルのスキーマは、http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd
です。1.6および1.7のアダプタ用のスキーマはhttp://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html
にあります。
weblogic-ra.xmlファイルの構成
ra.xml
ファイルの機能をサポートする他に、WebLogic Serverでは追加のデプロイメント記述子ファイルweblogic-ra.xml
を定義しています。このファイルには、リソース・アダプタをWebLogic Serverで構成し、デプロイするための固有のパラメータが含まれます。 このファイルは、WebLogic ServerのEJBやWebアプリケーション用の同等の拡張機能(weblogic-*.xml
)と整合性があり、WebLogic固有のデプロイメント記述子をデプロイ可能なアーカイブに追加するものです。基本のRARまたはデプロイメント・ディレクトリは、weblogic-ra.xml
ファイルがなくてもWebLogic Serverにデプロイできます。weblogic-ra.xml
ファイルを使用せずにリソース・アダプタをWebLogic Serverにデプロイすると、デフォルトの要素値が含まれたweblogic-ra.xmlのテンプレート・ファイルが自動的にリソース・アダプタ・アーカイブに追加されます。ただし、この自動生成されたweblogic-ra.xml
ファイルはRARに永続化されないので、RARは変更されないままです。
weblogic-ra.xml
デプロイメント記述子ファイルで構成できる重要な機能について、以下で簡単に説明します。
-
接続ファクトリの説明用テキスト。
-
接続ファクトリにバインドされるJNDI名(『JSR 322: Java EE Connector Architecture 1.6』に基づいて開発されたリソース・アダプタは、
ConnectionFactory
オブジェクトとは関係なく、オブジェクトとしてJNDIにバインドされます)。 -
現在のリソース・アダプタと共有可能なリソース・アダプタ・コンポーネントを含み、別にデプロイされた接続ファクトリへの参照。
-
以下の動作を設定する接続プール・パラメータ。
-
WebLogic Serverがデプロイメント時に割り当てようとする
ManagedConnection
の初期数。 -
WebLogic Serverが一度に割当可能な
ManagedConnection
の最大数。 -
WebLogic Serverが新規接続のリクエストに応じるときに割り当てようとする
ManagedConnection
の数。 -
システム・リソースを節約するためにWebLogic Serverが未使用の
ManagedConnection
を再利用しようとするかどうか。 -
未使用の
ManagedConnection
の再利用を試みるまでWebLogic Serverが待機する時間。
-
-
ManagedConnectionFactory
またはManagedConnection
に対するWebLogic Serverロギングを構成するロギング・プロパティ。 -
トランザクション・サポート・レベル(XA、ローカル、またはトランザクションのサポートなし)。
-
セキュリティIDとして使用するプリンシパル名。
weblogic-ra.xml
デプロイメント記述子ファイルの構成の詳細は、「weblogic-ra.xmlスキーマ」のリファレンス情報を参照してください。次の項の構成情報も参照してください。
リソース・アダプタ・デプロイメント記述子の編集
WebLogic Serverのリソース・アダプタ・アーカイブで使用されるXML記述子を定義または変更するには、weblogic-ra.xml
およびra.xml
デプロイメント記述子ファイルでXML要素を定義または編集する必要があります。デプロイメント記述子ファイルは任意のテキスト・エディタで編集できます。ただし、エラーが起きないように、XML編集用に設計されたツールを使用してください。ファイルのほとんどの要素はWebLogic Server管理コンソールでも編集できます。
編集の考慮事項
XML要素を手動で編集するには:
-
ASCIIテキスト・エディタを使用する場合は、そのエディタによって、XMLの形式が変更されたり、ファイルを無効にする可能性のある文字が挿入されないようにします。
-
使用しているオペレーティング・システムで大文字小文字が区別されない場合でも、ファイル名やディレクトリ名の大文字小文字は正確に指定します。
-
省略可能な要素のデフォルト値を使用する場合は、要素の定義全体を省略するか、または次のように空白値を指定することができます。たとえば:
<max-config-property></max-config-property>
スキーマ・ヘッダー情報
XMLデプロイメント・ファイルを編集または作成するときに、各デプロイメント・ファイルの正しいスキーマ・ヘッダーを指定することが重要です。ヘッダーでは、デプロイメント記述子のスキーマの場所とバージョンが示されます。
このヘッダーは外部URLのxmlns.jcp.org
を参照していますが、WebLogic Serverにはスキーマの独自のコピーが用意されているので、ホスト・サーバーがインターネットにアクセスする必要はありません。ただし、<?xml version...>
要素にあるスキーマのバージョンはデプロイメント記述子のバージョンの識別に使用されるので、この要素をra.xml
ファイルに含めて、外部URLを参照させる必要があります。
表2-1に、ra.xml
およびweblogic-ra.xml
ファイルのスキーマ・ヘッダー全体を示します。
表2-1 スキーマ・ヘッダー
XMLファイル | スキーマ・ヘッダー |
---|---|
ra.xml |
|
weblogic-ra.xml |
|
XMLの解析ユーティリティ(ejbc
など)でヘッダー情報が不正なXMLファイルを解析すると、次のようなエラー・メッセージが表示されることがあります。
SAXException: This document may not have the identifier 'identifier_name'
デプロイメント記述子ファイルのスキーマへの準拠
デプロイメント記述子ファイルの内容と要素の配置は、使用する各ファイルのスキーマに従っている必要があります。以下のリンクでは、WebLogic Serverで使用されるデプロイメント記述子ファイル用のスキーマの場所が示されています。
-
connector_1_7.xsd
には、すべてのリソース・アダプタに必要な標準ra.xml
デプロイメント・ファイルのスキーマが含まれています。このスキーマはJSR 322: Java EE Connector Architecture 1.7の一部で、http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#7
にあります。 -
weblogic-ra.xsd
には、WebLogic Serverにデプロイメントする際に使用されるリソース・アダプタ・プロパティを定義するweblogic-ra.xml
を作成するためのスキーマが含まれています。このスキーマはhttp://xmlns.oracle.com/weblogic/weblogic-connector/1.5/weblogic-connector.xsd
にあります。ノート:
ブラウザによっては、
.xsd
拡張子を持つファイルの内容を表示できない場合があります。その場合にスキーマの内容を見るには、リンクをテキスト・ファイルとして保存し、テキスト・エディタで表示します。
動的な記述子の更新:コンソールの「構成」タブ
WebLogic Server管理コンソールを使用して、デプロイメント記述子の要素を表示、変更および(必要な場合には)永続化できます。一部の記述子要素の変更は、リソース・アダプタを再デプロイしなくても、実行時に動的に行われます。それ以外の記述子要素は、変更後に再デプロイメントが必要です。WebLogic Server管理コンソールを使用してリソース・アダプタを構成するには、「デプロイメント」を開いて、デプロイ済リソース・アダプタの名前をクリックします。リソース・アダプタの構成を変更するには、「構成」タブを使用します。他のタブを使用して、リソース・アダプタの制御、テスト、またはモニターを行います。
WebLogic Server管理コンソールの使用方法は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのリソース・アダプタのプロパティの構成に関する項を参照してください。
動的に再構成できる構成プロパティ
動的に再構成できる構成プロパティについては、『JSR 322: Java EE Connector Architecture 1.6』の5.3.7.6項に説明があります。1.6リソース・アダプタの場合、WebLogic Serverでは、次のアダプタ・コンポーネントBeanに関して動的に再構成できる構成プロパティをサポートします。
-
ResourceAdapter
beans -
ManagedConnectionFactory
beans -
管理対象オブジェクトBean
実行時に、これらのアダプタ・コンポーネントBeanのいずれかで動的に構成できるプロパティを更新した後では、変更を有効にするためにアダプタを更新する必要があります。アダプタの更新は比較的負荷の軽い操作です。このとき、WebLogic Serverは実行時Beanインスタンスを変更します。構成が更新されていない、アクティブな接続プールや管理オブジェクトに干渉することはありません。アダプタをすぐに更新する必要はありません。ただし、アダプタ・コンポーネントBeanが動的に更新されるか、リソース・アダプタが再起動されない限り、Beanのプロパティの変更は有効になりません。
リソース・アダプタは、実行時のプロパティに対する動的変更のサポートに関して、注意して設計する必要があります。リソース・アダプタで提供するサービスによって異なりますが、一部のプロパティはアダプタの実行中に決して再構成しないでください。たとえば、EIS接続に使用されるリソース・アダプタのリスニング・アドレスとポート番号です(このようなプロパティを再構成すると、アダプタを停止して再起動する必要が生じます)。WebLogic Serverでは、特定のプロパティを動的に再構成可能として設計するかどうかについて、アダプタ・コンポーネントBeanに関する要件はありません。動的更新をサポートするアダプタ・コンポーネントBeanの決定は、アダプタの開発者にすべて任されています。
動的な構成パラメータ
1.6アダプタの場合、WebLogic Serverでは、Resource Adapter
、ManagedConnectionFactory
および管理オブジェクトBeanのプロパティでの動的更新をサポートします。WebLogic Server管理コンソールを使用して、リソース・アダプタの再デプロイを行わずに、これらのBeanの次の構成パラメータを動的に変更できます。
-
アダプタのJNDI名の編集
-
アウトバウンド接続プールの作成と削除
-
接続プールのJNDI名の編集
-
管理オブジェクトの作成と削除
-
管理オブジェクトのJNDI名の編集
動的なプール・パラメータ
WebLogic Server管理コンソールを使用して、リソース・アダプタの再デプロイを行わずにweblogic-ra.xml
の次のプール・パラメータを動的に変更できます。
-
initial-capacity
-
max-capacity
-
capacity-increment
-
shrink-frequency-seconds
-
highest-num-waiters
-
highest-num-unavailable
-
connection-creation-retry-frequency-seconds
-
connection-reserve-timeout-seconds
-
test-frequency-seconds
weblogic-ra.xmlファイルの自動生成
WebLogic Serverにデプロイされるリソース・アダプタ・アーカイブ(RAR)には、『JSR 322: Java EE Connector Architecture 1.6』
で指定されたra.xml
デプロイメント記述子ファイルに加えて、weblogic-ra.xmlデプロイメント記述子ファイルが必要です。
weblogic-ra.xml
ファイルを使用せずにリソース・アダプタをWebLogic Serverにデプロイすると、デフォルトの要素値が含まれたweblogic-ra.xml
のテンプレート・ファイルが自動的にリソース・アダプタ・アーカイブに追加されます。ただし、この自動生成されたweblogic-ra.xml
ファイルはRARに永続化されないので、RARは変更されないままです。代わりにWebLogic Serverでは、weblogic-ra.xml
ファイルのデフォルト情報に相当する内部データ構造が生成されます。
接続ファクトリの定義が1つだけの1.0リソース・アダプタの場合、JNDI名はeis/
ModuleName
になります。たとえば、RARの名前がMySpecialRA.rar
である場合、接続ファクトリのJNDI名はeis/MySpecialRA
になります。
ResourceAdapter
Beanクラスを指定した1.5リソース・アダプタの場合、そのBeanのJNDI名はMySpecialRA
になります。また、各接続ファクトリに対応するインスタンスがeis/
ModuleName
、eis/
ModuleName_1
、eis/
ModuleName_2
などのJNDI名で作成されます。
(非推奨) Link-Refメカニズムの構成
Link-RefメカニズムはWebLogic Serverリリース8.1で導入されました。基本アダプタを1つデプロイメントし、そのコードを、さまざまな構成プロパティを持つ複数の論理的なアダプタで共有できるようにするものです。現在のリリースの1.5リソース・アダプタでは、Link-Refメカニズムは非推奨となり、新しいJava EEライブラリ機能で置き換えられています。ただし、1.0リソース・アダプタの場合は、このリリースでもLink-Refメカニズムがサポートされています。Java EEライブラリの詳細は、『Oracle WebLogic Serverアプリケーションの開発』の共有Java EEライブラリおよびオプション・パッケージの作成に関する項を参照してください。Link-Refメカニズムを使用するには、リソース・アダプタのweblogic-ra.xml
ファイルでra-link-ref
要素を使用します。
非推奨の省略可能なra-link-ref
要素を使用すると、デプロイ済みの複数のリソース・アダプタを1つのデプロイ済みリソース・アダプタに関連付けられます。つまり、属性のサブセットを変更するだけで、基本リソース・アダプタで構成されているリソースを別のリソース・アダプタにリンク(再利用)できます。ra-link-ref
要素を使用すると、可能な場合、リソース(クラス、JAR、イメージ・ファイルなど)の重複を防げます。デプロイ済みの基本リソース・アダプタ・デプロイメントで定義されている値はすべて、ra-link-ref
要素でそれ以外の値が指定されていない限り、リンク先のリソース・アダプタで継承されます。
省略可能なra-link-ref
要素を使用する場合は、pool-params要素のすべての値を指定するか、まったく指定しない
かのどちらかにします。pool-params
要素は、基本リソース・アダプタからリンク先のリソース・アダプタに部分的には継承されません。
以下のいずれか1つを実行します。
-
max-capacity
要素に0
(ゼロ)を割り当てます。これにより、リンク先のリソース・アダプタは基本リソース・アダプタからpool-params
要素の値を継承できます。 -
max-capacity
要素に0
(ゼロ)以外の値を割り当てます。リンク先リソース・アダプタは、基本リソース・アダプタから値を継承しなくなります。これを選択する場合は、リンク先リソース・アダプタのpool-params要素のすべて
の値を指定する必要があります。
weblogic-ra.xml
ファイルの編集の詳細は、「weblogic-ra.xmlスキーマ」を参照してください。
Bean検証の構成ファイル
Bean検証構成ファイルはリソース・アダプタ・モジュールに指定できます。リソース・アダプタが独立してデプロイされているか(スタンドアロンのRARとして)、エンタープライズ・アプリケーション(EAR)の一部としてデプロイされているかは関係ありません。Bean検証構成ファイルがアダプタ・モジュールに対して指定されない場合、WebLogic ServerはデフォルトのBean検証構成を使用してリソース・アダプタ・モジュールを検証します。
Bean検証構成ファイルにはvalidation.xml
という名前を付けて、デプロイメント記述子と一緒にRARのMETA-INF
サブディレクトリに含めます。
Bean検証の詳細は、「Beanの検証」を参照してください
長時間実行するWorkのサポート
WorkManager
によって提供されるサービスの品質(QoS)特性を制御する2つの標準ヒントが定義されています。次のヒントがあります。
-
Work
名のヒント —Work
インスタンスの名前になります。これは、長時間実行するWorkインスタンスに割り当てられるスレッド名の一部として使用されます。 -
長時間実行する
Work
インスタンスのヒント — WebLogic Server拡張機能の注釈@LongRunningと同じ機能を実行します。これにより、Work
インスタンスを別のスレッドにスケジュールすることができます。また、長時間実行するWorkインスタンスの制御と監視の機能が強化されます。WebLogic Serverを使用して、長時間実行する
Work
インスタンス数(同時に実行するためにリソース・アダプタで発行できる数)の制限を構成できます。デフォルトの制限は10です。この制限の値を増やすことができますが、システム・リソースの負荷が高くならないように注意する必要があります。この制限を指定するには、
weblogic-ra.xml
ファイルでmax-concurrent-long-running-requests
要素を使用するか、ConnectorWorkManagerRuntimeMBean.ActiveLongRunningRequests
属性を設定します(これはWebLogic Server管理コンソールで公開されます)。ConnectorWorkManagerRuntimeMBean
には、ActiveLongRunningRequests
属性とCompletedLongRunningRequests
属性のgetterメソッドとsetterメソッドが含まれます。これらを使用すると、長時間実行するWork
インスタンスに関する情報を構成および監視できます。
詳細は、「長時間実行するWorkの構成および管理」を参照してください
ツールのサポート
WebLogic Serverでは、リソース・アダプタの開発とデプロイメントに役立つweblogic.appmerge
およびappc
の2つのツールをサポートしています。
-
weblogic.appmerge
検証チェックのメタデータ注釈を実行します。
-writeInferredDescriptors
オプションとともに使用すると、weblogic.appmerge
では、注釈に指定されたデプロイメント情報と既存のra.xml
ファイルの内容を融合する、マージされたra.xml
が生成されます。ノート:
weblogic.appmerge
ツールを実行した後、マージされたra.xml
でmetadata-complete
要素がtrue
に設定されているか確認してください。これによってデプロイヤが注釈を再処理することを回避できるため、全体的なデプロイメント・パフォーマンスが向上し、デプロイメント時間が短縮されます。『Oracle WebLogic Serverアプリケーションの開発』のweblogic.appmergeの使用によるライブラリのマージに関する項を参照してください。
-
appc
注釈、Beanクラス、
ra.xml
、weblogic-ra.xml
、およびリソース・アダプタ・デプロイメント・プランにおける広範囲の検証チェックを実行します(weblogic.appmerge
は注釈のみを検証します)。appc
ツールには次の機能もあります。-
警告とエラーの両方を含む豊富なレポートが提供されます。
-
リソース・アダプタの検証と、その構成の正確さをデプロイを実行せずに確認する場合に特に有効です。
『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』の「appcリファレンス」を参照してください。
-
リソース・アダプタのヘルス監視
false
に設定されている場合は、1つ以上のアウトバウンド接続プール・エラーが発生した場合でもアダプタのデプロイメントは成功します。このヘルス監視機能を使用すると、アダプタを再デプロイすることなく、接続プール・エラーを検出してプールを修復できます。
次の項では、WebLogic Serverでリソース・アダプタのヘルス・ステータス監視機能を使用可能にする方法を説明します。
リソース・アダプタのヘルス状態の取得
スタンドアロン・リソース・アダプタと埋込みリソース・アダプタの両方でヘルス監視をサポートするために、WebLogic Serverには、次のMBean属性が用意されています。これらの値は、WebLogic Server管理コンソール、WLSTまたはJMXを使用して取得できます。
-
ConnectorComponentRuntimeMBean.HealthState
—スタンドアロン・リソース・アダプタまたは埋込みリソース・アダプタのいずれかの全体的なヘルス状態を返します。アウトバウンド接続プールにデプロイメント・エラーがある場合は、リソース・アダプタのヘルス状態はHEALTH_CRITICALになります。 -
ApplicationRuntimeMBean.OverallHealthState
—アプリケーションの集計されたヘルス状態を返します。これには、ヘルス状態を報告する埋込みコンポーネントのヘルス状態が含まれます。埋込みリソース・アダプタに、失敗したアウトバウンド接続プールがある場合は、その接続プールのヘルス状態がアプリケーションの全体的なヘルス状態に反映されます。 -
ConnectorConnectionPoolRuntimeMBean.HealthState
—リソース・アダプタの個々のアウトバウンド接続プールのヘルス状態を返します。
ヘルス監視に関するデプロイ要件
失敗した接続プールが原因でアダプタ・デプロイメント全体が失敗することがないように、複数のアウトバウンド接続プールで構成されるリソース・アダプタをデプロイするには、weblogic-ra.xml
ファイルのdeploy-as-a-whole
要素をfalse
に設定する必要があります。(デフォルトでは、この要素はtrue
に設定されます。)このデプロイメント・オプションの設定の詳細は、「複数のアウトバウンド接続プールで構成されたリソース・アダプタのデプロイ」を参照してください。