Oracle® Fusion Middleware Oracle WebLogic Server デプロイメント プログラマーズ ガイド 11g リリース 1 (10.3.1) B55512-01 |
|
![]() 戻る |
![]() 次へ |
WebLogic デプロイメント API は J2EE Deployment API 標準 (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照) のインタフェースを実装し拡張したもので、WebLogic Server アプリケーションに特定のデプロイメント機能を提供します。以下の節では、WebLogic デプロイメント API の構造と機能について説明します。
注意 : WebLogic Server 9.0 では、旧リリースで使われていたweblogic.management.deploy API の使用は非推奨になっています。 |
以下の節では、WebLogic Server デプロイメント API の概要を説明します。
J2EE Deployment API 標準 (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照) では、コンフィグレーション セッションとデプロイメントは違うものとされています。この 2 つは次のように区別されています。
アプリケーションのコンフィグレーション : デプロイメント プランの元になる記述子を生成する。
デプロイメント タスク : 配布、起動、停止、再デプロイ、アンデプロイ。
お使いの環境でデプロイメント プロセスを効率的に管理するには、WebLogic デプロイメント API を使用して、以下を実行する必要があります。
このドキュメントでは、コンフィグレーションという用語は、WebLogic Server インスタンスへのデプロイメントのためにアプリケーションまたはデプロイ可能なリソースを準備するプロセスのことを指します。アプリケーションのコンフィグレーションは、以下のフェーズで構成されています。
アプリケーション評価 - アプリケーション ファイルを検査および評価して、アプリケーションの構造と組み込まれている標準の記述子の内容を判断します。「アプリケーション評価」を参照してください。
フロントエンド コンフィグレーション - アプリケーションに組み込まれている情報に基づいてコンフィグレーション情報を作成します。この情報には、WebLogic Server 記述子、デフォルト、ユーザ定義によるデプロイメント プランの形式があります。「フロントエンド コンフィグレーションの実行」を参照してください。
デプロイメント コンフィグレーション - ユーザ入力および選択する WebLogic Server 対象に基づいて、個々の WebLogic Server コンフィグレーションの値を変更します。「デプロイメント コンフィグレーションのカスタマイズ」を参照してください。
デプロイメント準備 - 最終的なデプロイメント プランを生成し、クライアントサイドでアプリケーションをある程度検証します。「デプロイメント準備」を参照してください。
アプリケーションのデプロイメントは、サーバサイド処理とアプリケーションの起動のために管理サーバにアプリケーションとプランを配布するプロセスです。「デプロイメント工程の実行」を参照してください。
WebLogic Server では、パッケージ化されたデプロイメント ツール webLogic.Deployer
が提供されています。このツールを使用すると、WebLogic Serverでデプロイメント サービスを利用できます。WebLogic デプロイメント API を使用して実装できるデプロイメント処理は、webLogic.Deployer
によって部分的に、または完全に実装されています。
注意 : webLogic.Deployer は、WebLogic Server 環境で推奨されるデプロイメント ツールです。webLogic.Deployer および WebLogic Server Administration Console の使用方法については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』を参照してください。 |
WebLogic デプロイメント API は以下の場合に必要になります。
独自の実装をモデル化して、WebLogic Service Provider Interface (SPI) とインタフェースする。この場合、WebLogic デプロイメント API のデプロイメント ファクトリを使用して WebLogicDeploymentManager
を取得します。これは、weblogic.deploy.api.spi
と連携するための javax.enterprise.deploy.spi.DeploymentManager
の拡張です (http://java.sun.com/javaee/5/docs/api/javax/enterprise/deploy/spi/DeploymentManager.html を参照)。アプリケーション評価および J2EE Deployment API 標準を参照してください (http://java.sun.com/j2ee/tools/deployment/index.jsp
)。
WebLogic Server Administration Console または webLogic.Deployer
を使用する代わりに、独自のデプロイメント インタフェースを作成する。この場合、WebLogic デプロイメント API のクラスとインタフェースを使用して、「WebLogic デプロイメント API のデプロイメントのフェーズ」の一部またはすべてを実装します。
WebLogic デプロイメント API のクラスとインタフェースには、J2EE Deployment API 標準 (JSR-88) インタフェースが拡張されて実装されています。詳細については、javax.enterprise.deploy
のサブパッケージを参照してください (http://java.sun.com/javaee/5/docs/api/overview-summary.html
を参照)。WebLogic デプロイメント API には、以下のパッケージが提供されています。
WebLogic では、J2EE Deployment API 標準 (JSR-88) に記述されている「Product Provider (製品プロバイダ)」の役割をサポートしています (http://java.sun.com/j2ee/tools/deployment/index.jsp
)。そのため、任意の J2EE ネットワーク クライアント用の拡張可能なコンポーネントに加えて、WebLogic Server 環境に固有のユーティリティも用意されています。そうした拡張機能には、以下のようなものがあります。
WebLogic の各種機能のサポート。admin
モードでの起動や、バージョニング機能付きの再デプロイなどがあります。
以下のようなきめ細かなレベルでの制御。
モジュール レベルの対象指定
部分的な再デプロイメント (アプリケーションの一部の再デプロイまたは削除)
動的なコンフィグレーションの変更
WebLogic のモジュール拡張。JMS、JDBC、インターセプション、アプリケーション固有のコンフィグレーション (カスタムまたはコンフィグレーション) モジュールなどがあります。
付加的な操作。distribute
と start
を組み合わせた Deploy
という動詞などがあります。
注意 : WebLogic デプロイメント API では、アプリケーションの更新に失敗した際の自動フォールバック手続きはサポートされていません。この動作のポリシーと手続きは、各デプロイメント環境の開発者または管理者が定義し、コンフィグレーションする必要があります。 |
Oracle は J2EE 製品プロバイダとして、Sun Microsystems javax
Service Provider Interface (SPI) パッケージを拡張して、WebLogic Server 固有のコンフィグレーションとデプロイを提供しています。このパッケージのコア インタフェースは DeploymentManager
で、ここから他のすべてのデプロイメント アクティビティを開始、モニタ、および制御します。
WebLogicDeploymentManager
インタフェースは、javax.enterprise.deploy.spi.DeploymentManager
インタフェースの WebLogic Server 拡張です。WebLogicDeploymentManager
のオブジェクトでは Weblogic Server デプロイメント フレームワークがステートレスでインタフェースされます。これにより、基本的なデプロイメント機能に加えて、プロダクションの再デプロイメント、エンタープライズ アプリケーション内のモジュールの部分的なデプロイメントなどの幅広い WebLogic Server デプロイメント機能が実現します。WebLogicDeploymentManager
オブジェクトは、通常 Tools パッケージの SessionHelper
ヘルパー クラスから SessionHelper.getDeploymentManager
メソッドを使用して取得します。「アプリケーション評価」を参照してください。
以下の節では、WebLogic Server SPI の機能の概要について説明します。
weblogic.deploy.api.spi
パッケージには、対象にアプリケーションをコンフィグレーションおよびデプロイするのに必要なインタフェースが用意されています (有効な対象の種類については、「WebLogic 対象の種類のクエリ サポート」を参照)。このパッケージを使用すると、エンタープライズ アプリケーションまたはスタンドアロン モジュールの WebLogic Server 固有のデプロイメント コンフィグレーションを実装できるデプロイメント ツールを作成することができます。
weblogic.deploy.api.spi
には、WebLogicDeploymentManager
インタフェースが含まれています。このデプロイメント マネージャを使用して、WebLogic Server でのすべてのデプロイメント関連工程 (アプリケーションの配布、起動、停止) を行います。WebLogicDeploymentManager
は、J2EE DeploymentManager
インタフェースの重要な拡張で、エンタープライズ アプリケーション モジュールのモジュールレベルの対象指定、プロダクションの再デプロイメント、アプリケーションのバージョニング、アプリケーションのステージング モード、デプロイされたアプリケーションへの管理アクセスの制約などの機能がサポートされます。
weblogic.deploy.api.spi
パッケージの WebLogicDeploymentConfiguration
クラスと WebLogicDConfigBean
クラスで、アプリケーションのデプロイメントとコンフィグレーションの記述子 (WebLogic Server デプロイメント記述子) が表されます。
WebLogicDeploymentConfiguration
オブジェクトはデプロイメント プランのラッパー。
WebLogicDConfigBean
には、Weblogic デプロイメント記述子のプロパティがカプセル化される。
このパッケージに含まれるインタフェースは WebLogicDeploymentFactory
のみです。これは、javax.enterprise.deploy.spi.factories.DeploymentFactory
の WebLogic 拡張です。このファクトリ インタフェースを使用すると、さまざまな特性を持つ DeploymentManager
オブジェクトを選択して割り当てられます。WebLogicDeploymentManager
の特性は、この WebLogicDeploymentFactory
の public フィールドで定義されます。
モジュールの対象指定とは、アプリケーション内の特定のモジュールを別の対象にデプロイすることです (JSR-88 の仕様にある、すべてのモジュールを同じ対象のセットにデプロイする処理とは異なります)。モジュールの対象指定は、WebLogicDeploymentManager.createTargetModuleID
メソッドによってサポートされています。
WebLogicTargetModuleID
クラスには、javax.enterprise.deploy.spi.TargetModuleID
インタフェースの WebLogic Server 拡張が含まれています。このクラスは、コンフィグレーションされた TargetInfoMBeans
(AppDeploymentMBean
および SubDeploymentMBean
) と密接に関連しています。WebLogicTargetModuleID
クラスには、アプリケーション モジュールについて、またアプリケーション モジュールとその対象との関係について、TargetInfoMBeans
にあるよりも詳細に記述されます。「モジュールのタイプ」を参照してください。
WebLogic Server では、WebLogicTarget
クラスに WebLogic Server で使用できる対象の種類を管理するための直接インタフェースが提供されています。表 2-1 で、対象アクセサ メソッドについて説明します。
アプリケーションのステージング モードは、デプロイメントの動作に影響します。アプリケーションのステージング動作は、DeploymentOptions.setStageMode (stage mode)
を使用して設定されます。stage mode
の値は以下のいずれかになります。
STAGE
- 対象サーバにファイルが強制的にコピーされる。
NO_STAGE
- 対象サーバにファイルがコピーされない。
EXTERNAL_STAGE
- ファイルは手動でステージングされる。
DConfigBean
のプロパティ セッターでは、無効な値の設定が拒否されます。これには、プロパティの型の検証 (整数型プロパティに対する非数値の指定の検証など) が含まれます。一部のプロパティでは、セマンティックな検証 (関連する最小値よりも最大値が小さく指定されていないことの確認など) が行われます。
このパッケージの一連のクラスは javax.enterprise.deploy.model
インタフェースの WebLogic Server 拡張および実装です (http://java.sun.com/javaee/5/docs/api/javax/enterprise/deploy/model/package-summary.html
を参照)。model インタフェースでは、J2EE アプリケーションの標準的な要素 (デプロイメント記述子など) を表現します。
このパッケージには、デプロイ可能なオブジェクトの J2EE コンフィグレーションの表現に使用されるインタフェース群が含まれています。デプロイ可能なオブジェクトとは、エンタープライズ アプリケーションまたはスタンドアロン モジュールのデプロイメント コンテナです。
javax.enterprise.deploy.model
インタフェースの WebLogic Server 実装を使用すると、WebLogic Server アプリケーションのインストール ディレクトリに格納されているアプリケーションで作業できます。WebLogic Server アプリケーションのインストール ディレクトリとは、コンフィグレーションの過程で生成される、アプリケーションのデプロイメント ファイル、デプロイメント、および外部 WebLogic デプロイメント記述子の管理に用いる正式なディレクトリ構造です。アプリケーション インストール ディレクトリの配置の詳細については、「アプリケーションおよびモジュールのデプロイメント準備」を参照してください。任意の J2EE アプリケーションと、(拡張として) アプリケーション インストール ディレクトリにあるアプリケーションがサポートされています。
注意 : weblogic.deploy.api.model では、J2EE デプロイメント記述子要素に対するコンフィグレーション中の動的な変更がサポートされません。したがって、XPath リスナの登録と削除はサポートされません。DDBean.addXPathListener と removeXPathListener はサポートされていません。 |
weblogic.deploy.api.model
パッケージの WebLogicDeployableObject
クラスと WebLogicDDBean
インタフェースで、アプリケーションの標準的なデプロイメント記述子が表現されます。
J2EE Deployment API では、J2EE デプロイメント記述子には DeployableObject
を介してアクセスするように規定されています (http://java.sun.com/javaee/5/docs/api/javax/enterprise/deploy/model/DeployableObject.html
を参照)。DeployableObject
はアプリケーション内のモジュールを表します。記述子の要素は DDBean
で表されます。デプロイメント記述子の各要素に 1 つの DDBean が対応します。記述子のルート要素は DDBeanRoot
オブジェクトで表されます。これらのインタフェースはすべて、対応するこのパッケージのインタフェースおよびクラス内に実装されます。
WebLogicDeployableObject
クラス (DeployableObject
の WebLogic Server 実装) には createDeployableObject
メソッドがあり、このメソッドでアプリケーションのデプロイメント記述子の WebLogicDeployableObject
および WebLogicDDBean
を作成します。基本的なコンフィグレーション タスクを実行するには、WebLogicDDBean
を WebLogicDConfigBean
に関連付けます。WebLogicDConfigBean は WebLogic Server へのアプリケーションのデプロイに必要なサーバ コンフィグレーションのプロパティを表しています。「アプリケーション評価」を参照してください。
サーバ環境 (この場合は WebLogic Server インスタンス) の具体的なコンフィグレーション情報を格納する DConfigbean
と異なり、DDBean
オブジェクトにはアプリケーションの一般的なデプロイメント記述子要素が格納されます。たとえば、Web アプリケーションをデプロイする場合、WebLogicDDBeans
のデプロイメント記述子は、.war
アーカイブの WEB-INF/web.xml
ファイルから取得されます。WebLogicDConfigBean
の情報は、WebLogicDDBean
に基づいて .war
アーカイブの WEB-INF/weblogic.xml
から取得されます。これらの Bean はコンフィグレーション情報を保持するという基本的な目的については同じですが、論理的には異なるものです。DDBean
ではアプリケーションについて記述され、DConfigBean
では特定の環境に対してアプリケーションがコンフィグレーションされます。
これらのオブジェクトは両方ともコンフィグレーション セッションを開始するときに生成されます。WebLogicDeployableObject
、WebLogicDDBean
、および WebLogicDConfigBean
はすべてコンフィグレーション セッションの中でインスタンス化され、操作されます。「コンフィグレーション プロセスの概要」を参照してください。
以下の節では、WebLogic Server 固有のデプロイメント コマンド、モジュールのタイプ、および (クラスとしての) 対象の種類を表現する一連のクラスについて説明します。
weblogic.deploy.api.shared
パッケージには、WebLogic Server 固有のデプロイメント コマンド、モジュールのタイプ、および (クラスとしての) 対象の種類を表す一連のクラスが用意されています。これらのクラスのオブジェクトは weblogic.deploy.api.model パッケージおよび weblogic.deploy.api.spi パッケージで共有できます。
標準の javax.enterprise.deploy.shared
クラスにある ModuleType
および CommandType
の定義は、以下をサポートするように拡張されています。
モジュールのタイプ。「モジュールのタイプのサポート」を参照してください。
コマンド。「デプロイ用、更新用のコマンド タイプ」を参照してください。
J2EE Deployment API 標準では必須でない WebLogicTargetType
クラス (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照) では、WebLogic Server でサポートされる多様なデプロイメント対象の種類が列挙されます。このクラスは javax のデプロイメント クラスを拡張するものではありません。詳細については、「全種類の WebLogic Server 対象のサポート」を参照してください。
javax.enterprise.spi.shared
パッケージに定義されている必須のコマンド タイプに、deploy
と update
のコマンド タイプが追加され、WebLogicDeploymentManager
から利用できます。
サポートされているモジュールのタイプには、JMS、JDBC、インターセプション、WSEE、コンフィグ、および WLDF があります。これらは weblogic.deploy.api.shared.WebLogicModuleType
クラスにフィールドとして定義されています。
対象は、J2EE Deployment API 仕様では実装されず、WebLogic デプロイメント API で実装されます。有効な対象の値は以下のとおりです。
クラスタ
JMS サーバ
ストア アンド フォワード (SAF) エージェント
サーバ
仮想ホスト
これらは、weblogic.deploy.api.shared.WebLogicTargetType
クラスの列挙フィールドの値です。
以下の節では、一般的なデプロイメント ツールのタスクを最小限の制御で明示的にオブジェクトを操作して行うことができる API ツールについて説明します。
weblogic.deploy.api.tools
には、便利なコンビニエンス クラスが用意されています。
WebLogicDeploymentManager
の取得
アプリケーションのコンフィグレーションの設定
デプロイメント プランの新規作成または更新
Tools パッケージのクラス群は、J2EE Deployment API 標準のインタフェースの拡張ではありません (JSR-88、http://java.sun.com/j2ee/tools/deployment/index.jsp
を参照)。これらのクラス群を使用すると、WebLogic デプロイメント API で提供されるデプロイメント オペレーションに簡単にアクセスできます。
コンフィグレーション セッションは直接 WebLogicDeploymentManager
から制御することもできますが、この制御を簡単に行えるメソッド群が SessionHelper
に用意されています。使用しているツールで直接 WebLogic Server J2EE Deployment API 実装に対してコーディングする場合、常に SessionHelper
を使用する必要があります。
SessionHelper
を使用すると、1 回のメソッド呼び出しで WebLogicDeploymentManager
を取得できます。この作業を効率的に行うには、アプリケーションを検索できる必要があります。SessionHelper
では「インストール ルート」抽象を使用してアプリケーションとデプロイメント プランのアーティファクトを表示します。これは理想的には実際のアプリケーションの構成です。インストール ルートは次のように表示されます。
install-root (eg myapp) -- app ----- archive (eg myapp.ear) -- plan ----- deployment plan (eg plan.xml) ----- external descriptors (eg META-INF/weblogic-application.xml...)
アプリケーションは上記の構成でなくても構いません。ただし、アプリケーションとコンフィグレーション アーティファクトは共通のルートに保持するのが推奨されるアプローチです。そうすることで SessionHelper
で解釈できる形式になります。
SessionHelper.getModuleInfo ()
では、アプリケーション構造の理解に役立つオブジェクトが返されます。この場合、DDBeans
および DeployableObjects
を直接扱う必要がありません。このオブジェクトでは以下の情報が提供されます。
アプリケーション内のモジュールおよびサブモジュールの名前およびタイプ
アプリケーションで提供される Web サービスの名前
Web アプリケーションのコンテキスト ルート
EJB のエンタープライズ Bean 名
デプロイメント記述子は、内部的には記述子 Bean のツリー (個々の記述子要素を表す型付きの Java Bean オブジェクトのツリー) として表現されます。こうした Bean ツリーを使用すると、より一般的な DDBean
および DConfigBean
オブジェクトを扱うよりも簡単に処理できます。各モジュールの記述子 Bean ツリーには、関連する各モジュールの WebLogicDDBeanRoot
オブジェクトおよび WebLogicDConfigBeanRoot
オブジェクトから、それらのオブジェクトにある getDescriptorBean
メソッドを使用して直接アクセスできます。WebLogicDConfigBean
から取得した Bean ツリーを変更すると、関連付けられた DConfigBean
(したがってアプリケーションのデプロイメント プラン) を変更するのと同じ結果が得られます。
weblogic.PlanGenerator
を使用すると、アプリケーション内にある J2EE および WebLogic Server 記述子に基づいてデプロイメント プランのテンプレートを作成できます。結果として作成されるプランによりアプリケーションの構造が記述され、すべてのデプロイメント記述子が特定されて、アプリケーションのコンフィグレーション可能なプロパティのサブセットがエクスポートされます。プロパティがエクスポートされると、そのプロパティは WebLogic Server コンソールのようなツールに対して公開されます。そうしたツールではプランを使用して、管理者がプロパティに適切な値を指定できるように支援します。weblogic.PlanGenerator
ツールからは、デフォルトではアプリケーションの依存関係、つまり正常なデプロイメントに必要なプロパティのみがエクスポートされます。この動作は以下のオプションの 1 つを用いてオーバーライドできます。
-dependencies
: アプリケーションで参照するリソースをエクスポート (デフォルト)
-declarations
: アプリケーションで定義されているリソースをエクスポート
-configurables
: 非リソース指向のコンフィグレーション可能なプロパティをエクスポート
-dynamics
: 実行中のアプリケーションで変更される可能性があるプロパティをエクスポート
-all
: すべての変更可能なプロパティをエクスポート
-none
: どのプロパティもエクスポートしない