ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server リソース アダプタ プログラマーズ ガイド
11g リリース 1 (10.3.1)
B55541-01
目次
目次

戻る
戻る
 
次へ
次へ
 

9 リソース アダプタのパッケージ化とデプロイ

以下の節では、リソース アダプタをパッケージ化およびデプロイする方法について説明します。

WebLogic Server アプリケーションのデプロイメントについては、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションの開発』の「分割開発ディレクトリからのデプロイメントとパッケージ化」を参照してください。

リソース アダプタのパッケージ化

プロダクションおよび開発目的では、アセンブル済みのリソース アダプタ (RAR) をエンタープライズ アプリケーション (EAR) の一部としてパッケージ化することをお勧めします。

ディレクトリ構造のパッケージ化

リソース アダプタは、applications/ ディレクトリ内のリソース アダプタ アーカイブ (RAR) に含まれる WebLogic Server コンポーネントです。デプロイメント プロセスは、リソース アダプタ プロバイダによって作成されたコンパイル済みリソース アダプタ インタフェースと実装クラスを格納する RAR またはデプロイメント ディレクトリで開始されます。RAR とデプロイメント ディレクトリは、どちらがコンパイル済みクラスを格納している場合でも、Java パッケージ構造と一致するサブディレクトリに入っている必要があります。

リソース アダプタでは、展開ディレクトリ形式または RAR のどちらにパッケージ化される場合でも、同じディレクトリ形式を使用します。リソース アダプタの一般的なディレクトリ構造をコード リスト 9-1 に示します。

コード リスト 9-1 リソース アダプタのディレクトリ構造

/META-INF/ra.xml
/META-INF/weblogic-ra.xml
/META-INF/MANIFEST.MF (optional)
/images/ra.jpg
/readme.html
/eis.jar
/utilities.jar
/windows.dll
/unix.so

パッケージ化の考慮事項

リソース アダプタに関するパッケージ化の要件は以下のとおりです。

  • デプロイメント記述子 (ra.xmlweblogic-ra.xml) は、META-INF というディレクトリに入っていなければならない。

  • 省略可能な MANIFEST.MFMETA-INF サブディレクトリに入っている。マニフェスト ファイルは JAR ツールによって自動的に生成され、常に JAR ファイルの最初のエントリとなります。マニフェスト ファイルのデフォルト名は META-INF/MANIFEST.MF です。マニフェスト ファイルには、そのアーカイブのメタ情報が格納されます。

  • WebLogic Server にデプロイされたリソース アダプタは、クラスまたはリソースをプロパティとして参照する MANIFEST.MF 内の class-path エントリをサポートする。

  • リソース アダプタには、リソース アダプタが使用する Java クラスおよびインタフェースを格納する複数の JAR (たとえば、eis.jarutilities.jar) を含めることができる。プラットフォーム固有のネイティブ ライブラリについて、リソース アダプタの依存関係がすべて解決されることを確認してください。

  • リソース アダプタには、EIS との対話用にリソース アダプタが必要とするネイティブ ライブラリ (たとえば、windows.dllunix.so) を含めることができる。

  • リソース アダプタには、マニュアルや、リソース アダプタが直接には使用しない関連ファイル (たとえば、readme.html/images/ra.jpg) を含めることができる。

  • スタンドアロンのリソース アダプタ RAR をデプロイする場合、リソース アダプタはアプリケーション サーバ内のすべての J2EE アプリケーションで使用できなければならない。

  • J2EE アプリケーションの EAR 内にリソース アダプタの RAR をパッケージ化してデプロイする場合、リソース アダプタはそのパッケージ化されている J2EE アプリケーションでのみ使用可能でなければならない。この仕様に準拠した動作は必要に応じてオーバーライドできます。

パッケージ化の制限

スタンドアロンのリソース アダプタを再ロードするときに、そのリソース アダプタを使用するクライアントを再ロードしない場合、クライアントは正常に機能しなくなる可能性があります。この制限事項は、リモート可用性のあるインタフェースを許可しないという J2CA 1.5 仕様 (http://java.sun.com/j2ee/connector/) の制限によるものです。

リソース アダプタ アーカイブ (RAR) のパッケージ化

1 つまたは複数のリソース アダプタをディレクトリにステージングしたら、.rar ファイル拡張子の付いた Java アーカイブ (JAR) にパッケージ化します。


注意 :

リソース アダプタをアセンブルした後は、エンタープライズ アプリケーションの一部としてパッケージ化することをお勧めします。これにより、従来の単一ディレクトリ構造に比べていくつかの利点がある分割開発ディレクトリ構造を利用できるようになります。『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションの開発』の「分割開発ディレクトリ環境の作成」を参照してください。

リソース アダプタをステージングおよびパッケージ化するには、次の手順に従います。

  1. 一時ステージング ディレクトリをハード ディスクの任意の場所に作成します。

  2. 対象となるリソース アダプタの Java クラスをステージング ディレクトリにコンパイルまたはコピーします。

  3. リソース アダプタの Java クラスを入れる JAR を作成します。この JAR をステージング ディレクトリの最上位に追加します。

  4. ステージング ディレクトリに META-INF サブディレクトリを作成します。

  5. META-INF サブディレクトリに ra.xml デプロイメント記述子を作成して、そのリソース アダプタのエントリを追加します。


    注意 :

    ra.xml の文書型定義の詳細については、Sun Microsystems のドキュメント (http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd) を参照してください。

  6. META-INF サブディレクトリに weblogic-ra.xml デプロイメント記述子を作成して、そのリソース アダプタのエントリを追加します。


    注意 :

    weblogic-ra.xml ファイルの内容については、「A weblogic-ra.xml スキーマ」を参照してください。

  7. リソース アダプタ クラスとデプロイメント記述子をステージング ディレクトリに配置すると、次のような JAR コマンドを使用して RAR を作成できます。

    jar cvf jar-file.rar -C staging-dir
    

    このコマンドによって作成された RAR は、WebLogic Server にデプロイすることも、アプリケーション アーカイブ (EAR) にパッケージ化することもできます。

    -C staging-dir オプションを指定すると、JAR コマンドはディレクトリを staging-dir に変更します。これにより、JAR に記録されるディレクトリ パスがリソース アダプタのステージング ディレクトリを基準にした相対パスとなります。

このトピックの詳細については、「リソース アダプタの作成とコンフィグレーション : 主な手順」を参照してください。

リソース アダプタのデプロイ

リソース アダプタのデプロイメントは、Web アプリケーション、EJB、およびエンタープライズ アプリケーションのデプロイメントとほぼ同じです。これらのデプロイメント ユニットと同様、リソース アダプタも展開ディレクトリ形式でデプロイしたり、アーカイブ ファイルとしてデプロイしたりすることができます。

デプロイメント オプション

以下のツールのいずれかを使用して、スタンドアロンのリソース アダプタ (またはエンタープライズ アプリケーションの一部としてパッケージ化されたリソース アダプタ) をデプロイできます。

  • WebLogic Server Administration Console

  • weblogic.Deployer ツール

  • wldeploy Ant タスク

  • WebLogic Scripting Tool (WLST)

これらのアプリケーションのデプロイメント方法の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』の「weblogic.deployer によるアプリケーションおよびモジュールのデプロイ」を参照してください。

デプロイメント プランを使用してリソース アダプタ デプロイメントをデプロイできます。リソース アダプタの場合、WebLogic Server デプロイメント プランは、RAR の外部にあるオプションの XML ドキュメントであり、特定の WebLogic Server 環境のデプロイメントとしてリソース アダプタがコンフィグレーションされます。デプロイメント プランでは、リソース アダプタのデプロイメント記述子で通常定義するようなデプロイメント プロパティ値を設定したり、デプロイメント記述子ですでに定義されているプロパティ値をオーバーライドしたりします。デプロイメント プランの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』の「プロダクション デプロイメントのためのアプリケーションのコンフィグレーション」を参照してください。

自動デプロイメントを使用してリソース アダプタをデプロイすることもできます。この方法は開発時や初期テスト時に便利です。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』の「開発ドメインへのアプリケーションの自動デプロイ」を参照してください。

リソース アダプタのデプロイメント名

リソース アダプタ アーカイブ (RAR) またはデプロイメント ディレクトリをデプロイする場合は、myResourceAdapter のように、デプロイメント ユニットの名前を指定する必要があります。この名前を使用すると、後でリソース アダプタをアンデプロイしたり更新したりする場合に、リソース アダプタのデプロイメントを簡単に参照できます。

リソース アダプタをデプロイする場合は、WebLogic Server が、RAR またはデプロイメント ディレクトリのパスおよびファイル名と一致するデプロイメント名を暗黙的に割り当てます。この名前を使用すると、サーバが起動した後にリソース アダプタをアンデプロイまたは更新できます。

リソース アダプタのデプロイメント名は、サーバが再起動されるまで、WebLogic Server 内でアクティブなままです。リソース アダプタをアンデプロイしても、関連付けられたデプロイメント名は削除されません。したがって、後でその名前を使用してリソース アダプタを再デプロイできます。

プロダクションの再デプロイメント

WebLogic Server のプロダクションの再デプロイメント機能を使用すると、同じアプリケーションの古いバージョンと一緒に、WebLogic Server アプリケーションの新しいバージョンを再デプロイできます。デフォルトでは、WebLogic Server は直ちに新しいクライアント要求を新しいバージョンのアプリケーションにルーティングする一方で、既存のクライアント接続は古いバージョンにルーティングします。古いバージョンのアプリケーションを使用するすべてのクライアントが作業を完了したら、WebLogic Server は、新しいバージョンだけがアクティブになるように、古いバージョンを廃止します。

Suspendable インタフェースとプロダクションの再デプロイメント

一般に、リソース アダプタ bean は javax.resource.spi.ResourceAdapter インタフェースを実装します。このインタフェースでは start() および stop() メソッドを定義しています。このタイプのリソース アダプタではプロダクションの再デプロイメントを行うことはできません。リソース アダプタは着信/発信通信で 1 つまたは複数の EIS に接続します。すべての通信は、アプリケーション サーバの知識を使用せずに、リソース アダプタ独自の方法で実行されます。実行時にプロダクションの再デプロイメントが試行された場合、アプリケーション サーバは、既存のリソース アダプタから新しいインスタンスへの接続の移行を管理できるように、リソース アダプタに通知を提供するだけです。ただし、リソース アダプタは Suspendable インタフェースを実装できます。このインタフェースは、リソース アダプタがプロダクションの再デプロイメントに参加するための機能を提供します。Suspendable インタフェースの実装の詳細については、「リソース アダプタのアクティビティの中断と再開」を参照してください。

プロダクションの再デプロイメントの要件

プロダクションの再デプロイメントが機能するためには、リソース アダプタの古いバージョンと新しいバージョンの両方で、以下の要件をすべて満たしている必要があります。満たされていない場合、再デプロイメントは失敗します。

  • リソース アダプタは J2CA 1.5 仕様に基づいている必要がある (1.0 リソース アダプタではプロダクションの再デプロイメントは利用できません)。

  • リソース アダプタは、Suspendable インタフェースを実装する必要がある (コード リスト 4-3) を参照してください。

  • リソース アダプタはエンタープライズ アプリケーション (EAR ファイル) の内部にパッケージ化されている必要がある。スタンドアロンのリソース アダプタのプロダクション再デプロイメントはサポートされていません。

  • WebLogic Server に呼び出された場合、Suspendable.supportsVersioning() メソッドは true を返す必要がある。

  • weblogic-ra.xml 記述子の enable-access-outside-app 要素を false に設定する必要がある。

プロダクションの再デプロイメントのプロセス

以下のプロセスでは、リソース アダプタの古いバージョンがデプロイされて実行中であると仮定しています。また、古いバージョン (「old」) と新しいバージョン (「new」) の両方のリソース アダプタが、「プロダクションの再デプロイメントの要件」で述べた要件をすべて満たしており、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』の「プロダクション環境でのアプリケーションの再デプロイメント」で示されたアプリケーションの要件も満たしていることとします。

プロダクションの再デプロイメント時に、リソース アダプタに以下のような呼び出しが行われます。

  1. WebLogic Server は new.init(old, null) を呼び出して、新しいリソース アダプタに古いリソース アダプタと交代することを通知します。

  2. WebLogic Server は old.startVersioning(new, null) を呼び出して、古いリソース アダプタに、新しいリソース アダプタと共にプロダクションの再デプロイメント処理を開始することを通知します。

  3. WebLogic Server は new.start(extendedBootstrapContext) を呼び出します。「拡張された BootstrapContext」を参照してください。

  4. 古いリソース アダプタは、「終了」すると (つまり、すべてのクライアントおよび着信接続を新しいリソース アダプタに正常に移行し終えると)、(ExtendedBootstrapContext)bsCtx.complete() を呼び出します。これは、WebLogic Server に、古いリソース アダプタをアンデプロイしてもよいことを通知するものです。

  5. アンデプロイメントが行われると、WebLogic Server が old.stop() を呼び出して、プロダクションの再デプロイメントは完了します。

new.init()old.startVersioning() の呼び出しによって、新旧のリソース アダプタは、着信または発信の通信を古いリソース アダプタから新しいリソース アダプタに移行することができます。この処理方法は個々のリソース アダプタ開発者の裁量に任されています。