WebLogic Server アプリケーションのデプロイメント
![]() |
![]() |
![]() |
![]() |
以下の節では、BEA WebLogic ServerTM のデプロイメントに関する主なトピックの基本的な概要を示します。
このマニュアルは、Java 2 Platform, Enterprise Edition (J2EE) アプリケーションまたはアプリケーション モジュールを WebLogic Server にデプロイする管理者を主な対象としています。このマニュアルは、読者がプロダクション環境で作業しているものと想定しています。通常のプロダクション環境では、複数の WebLogic Server インスタンスまたはクラスタが複数のマシン上で動作しています。また、1 つまたは複数のアプリケーション モジュール アーカイブ ファイルがすでにテストされ、プロダクション サーバにデプロイできる状態にあることも想定しています。
開発環境でアプリケーションをデプロイまたはパッケージ化する必要があるエンジニアの方は、『WebLogic Server アプリケーションの開発』を参照してください。開発環境で使用するデプロイメント機能については、「開発者向けデプロイメント トピック 」を参照してください。
デプロイメント ユニットとは、J2EE 仕様に従って構成されており、WebLogic Server にデプロイ可能な J2EE アプリケーション (エンタープライズ アプリケーションまたは Web アプリケーション) あるいはスタンドアロン J2EE モジュール (EJB またはリソース アダプタ) のことです。
デプロイメント ユニットのタイプごとに、必要なファイル、およびアプリケーションまたはモジュールのディレクトリ構造内での各ファイルの位置が J2EE 仕様で定義されています。デプロイメント モジュールは、EJB とサーブレットの Java クラス、リソース アダプタ、Web ページとサポート ファイル、XML 形式のデプロイメント記述子、およびその他のモジュールで構成されています。
J2EE では、どのようにデプロイメント ユニットを対象サーバにデプロイするかは指定されておらず、標準のアプリケーションおよびモジュールの構造だけが指定されています。WebLogic Server は、jar
ユーティリティを使用してアーカイブ ファイルとしてパッケージ化されたデプロイメント、または展開されたアーカイブ ディレクトリとしてパッケージ化されたデプロイメントをサポートしています。
J2EE には、スタンドアロン モジュールの作成に関する仕様があります。エンタープライズ JavaBean とリソース アダプタ モジュールはスタンドアロン モジュールに含まれます。WebLogic Server では、J2EE 仕様では対象になっていない Web サービス モジュールもデプロイできます。
スタンドアロン モジュールは、通常大規模な分散アプリケーションの部品となるものですが、必ずしも直接ユーザ インタフェースを備えていません。特定のモジュール タイプの詳細については、J2EE 1.3 仕様 (http://java.sun.com/j2ee/download.html#platformspec) を参照してください。
エンタープライズ JavaBean (EJB) は、ビジネス ロジックを実装する再利用可能な Java コンポーネントで、コンポーネントベースの分散ビジネス アプリケーションの開発を可能にします。EJB モジュールは .jar
という拡張子を持つアーカイブ ファイルとしてパッケージ化されますが、通常は展開されたアーカイブ ディレクトリとしてデプロイします。EJB のアーカイブ ファイルまたは展開されたアーカイブ ディレクトリには、コンパイル済みの EJB クラス、省略可能な生成済みクラス、および EJB の XML デプロイメント記述子が格納されます。各種の EJB の詳細については、『WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』を参照してください。
リソース アダプタ (コネクタとも呼ばれる) は、エンタープライズ情報システム (EIS) と J2EE プラットフォームの統合を可能にします。コネクタは、WebLogic Server と EIS の接続に使用できるシステムレベルのソフトウェア ドライバとして機能します。コネクタには、Java クラス、および必要に応じて EIS との対話に必要なネイティブ コンポーネントが含まれます。詳細については、『WebLogic J2EE コネクタ アーキテクチャ』を参照してください。
注意 : リソース アダプタは展開されたアーカイブ ディレクトリとしてデプロイできません。
Web サービスは、分散型 Web ベース アプリケーションのコンポーネントとして共有および使用されるサービスのタイプです。これらのサービスは一般的に、CRM (カスタマ リレーションシップ マネージメント)、注文処理システムなどの既存のバックエンド アプリケーションとインタフェースします。
Web サービス モジュールは、Web アプリケーションのデプロイメント記述子と Web サービスのデプロイメント記述子の両方を最低限含む仮想モジュールです。Web サービスを実装する EJB を含む場合もあります。詳細については、『WebLogic Web サービス プログラマーズ ガイド』を参照してください。
J2EE には、Web アプリケーション、エンタープライズ アプリケーション、およびクライアント アプリケーションという 3 つの異なるタイプのデプロイ可能アプリケーションも定義されています。アプリケーションは、通常、論理サービスを提供する 1 つまたは複数のスタンドアロン J2EE モジュールを含みます。また、アプリケーションの内容との直接ユーザ インタフェースを備えている場合もあります。
Web アプリケーションは、JSP タグ ライブラリ、静的 .html ファイルと画像ファイル、サポート クラスと .jar
ファイル、および weblogic.xml
デプロイメント記述子 (Web アプリケーションの WebLogic サーバ固有要素をコンフィグレーションする) を含むこともできます。詳細については、『WebLogic Server Web アプリケーションの開発』を参照してください。
エンタープライズ アプリケーションは、次に示す 1 つまたは複数の J2EE アプリケーションまたはモジュールで構成されます。
エンタープライズ アプリケーションは、拡張子 .ear
を持つ JAR ファイルとしてパッケージ化されますが、通常は展開 EAR ディレクトリとしてデプロイします。展開 EAR ディレクトリには、アプリケーションで使用する JAR、WAR、および RAR モジュールのすべてが (同じく展開形式で) 格納されるほか、エンタープライズ アプリケーション用の XML 記述子ファイル、およびバンドルされたアプリケーションとモジュールが格納されます。詳細については、『WebLogic Server アプリケーションの開発』を参照してください。
J2EE 仕様には、クライアント アプリケーションのアーカイブ ファイルをエンタープライズ アプリケーション内に組み込む機能が用意されています。J2EE クライアント アプリケーション モジュールには、クライアント JVM (Java 仮想マシン) で実行される Java クラスと、EJB (エンタープライズ JavaBean)、およびクライアントによって使用されるその他の WebLogic Server リソースに関するデプロイメント記述子が収められます。これによって、サーバサイドとクライアントサイドのコンポーネントを 1 つのユニットとして配布できます。EAR に含まれるクライアント モジュールは、J2EE 標準の application-client.xml
デプロイメント記述子、および省略可能な WebLogic Server 記述子である client-application.runtime.xml
を使用して定義します。
起動クラスおよび停止クラスは、サーバを起動または正常に停止させるときにロードして実行するようコンフィグレーションできる、Java クラスです。起動クラスおよび停止クラスのデプロイメント プロセスでは、実際のデプロイメント ファイルを指定しないため、他のデプロイ可能ユニットの場合とは異なります。代わりにクラスを実行するサーバを識別し、実行に使用するクラスパスおよび任意指定の引数を指定します。詳細については、Administration Console オンライン ヘルプの「起動クラスと停止クラス」を参照してください。
デプロイメント ユニットの各タイプを定義する主要なファイルは、そのタイプ用の XML デプロイメント記述子です。デプロイメント記述子は、アプリケーションまたはモジュールに関する特定の実行時特性を定義する XML ドキュメントです。XML デプロイメント記述子を編集することによって、コードを再コンパイルしたりデプロイメント ユニット自体を再ビルドしたりしなくても、デプロイメント ユニットの実行時動作を変更できます。変更後の動作は、記述子ファイルから読み込まれ、アプリケーションまたはモジュールをデプロイするときに実装されます。
たとえば、EJB 用の WebLogic デプロイメント記述子を使用すると、EJB をサーバにデプロイするときにキャッシュに保持する Bean の数を指定できます。パフォーマンス上の理由により、キャッシュする Bean の数を変更する必要がある場合は、デプロイメント記述子を変更するだけで済みます。
J2EE では、デプロイメント ユニットごとに必要な XML デプロイメント記述子の構造と内容が定義されています。さらに、省略可能な WebLogic Server XML デプロイメント記述子を指定して、デプロイメントを処理するための WebLogic 固有の動作をコンフィグレーションすることができます。WebLogic Server デプロイメント記述子を使用すると、WebLogic Server だけで使用可能な機能を活用しながら、オリジナルの J2EE モジュールの移植性を維持できます。
表 1-1 に、デプロイメント ユニットのタイプと、それらに関連する J2EE 標準および WebLogic 固有のデプロイメント記述子を示します。
|
||
デプロイメント記述子は手動で作成するか、WebLogic Server の Java ベース ユーティリティで生成します。開発者から J2EE 準拠の JAR ファイルを受け取った場合、そのファイルにはすでに J2EE 標準のデプロイメント記述子と WebLogic Server のデプロイメント記述子が組み込まれています。Administration Console を使用して、デプロイ済みアプリケーションの主要なデプロイメント記述子要素を変更することもできます。この方法は、アプリケーションの実行時動作とパフォーマンスの調整に役立ちます。
WebLogic Server では、単一のアーカイブ ファイルとして、またはアーカイブ ファイルと同じ内容を含む展開されたディレクトリとして、デプロイメント ユニットを格納できます。
ほとんどのプロダクション環境では、デプロイメント ユニットをアーカイブ ファイルとして受け取ります。アーカイブ ファイルは、アプリケーションまたはモジュールのクラス、静的ファイル、ディレクトリ、およびデプロイメント記述子ファイルをすべて含む単一のファイルです。アーカイブ ファイルは通常、jar
ユーティリティまたは Ant の jar
ツールを使用して作成します。
jar
ユーティリティを使用してパッケージ化されたデプロイメント ユニットには、タイプ別に特定のファイル拡張子が付きます。
.jar
ファイルにパッケージ化されます。.war
ファイルにパッケージ化されます。.rar
ファイルにパッケージ化されます。.ear
ファイルとしてパッケージ化され、EJB、Web アプリケーション、およびリソース アダプタの任意の組み合わせを含みます。 .ear
ファイルまたは .war
ファイルとしてパッケージ化できます。注意 : 起動および停止クラスは、パッケージ化されません。対象サーバの割り当て時に、使用するクラスパスを指定するだけです。
アーカイブ ファイルを WebLogic Server に直接デプロイできますが、展開されたアーカイブ ディレクトリをデプロイすると、さらに再デプロイ機能が得られます。
展開されたアーカイブ ディレクトリには、.jar
アーカイブと同じファイルおよびディレクトリが格納されています。ただし、それらのファイルとディレクトリは、ファイル システム上に直接存在し、jar
ユーティリティを使用して単一のアーカイブ ファイルにパッケージ化されていません。
デプロイメント ユニットを単一のアーカイブ ファイルとしてではなく、展開されたアーカイブ ディレクトリとしてデプロイするのは、以下のような場合です。
展開されたアーカイブ ディレクトリとしてデプロイするアーカイブ ファイルがある場合は、jar
ユーティリティを使用してアーカイブ ファイルを専用ディレクトリに復元します。次に例を示します。
mkdir /myapp
cd /myapp
jar xvf /dist/myapp.ear
復元するアーカイブ ファイルに他のモジュール アーカイブ ファイル (たとえば、JAR ファイルや WAR ファイルを含むエンタープライズ アプリケーションまたは Web サービス) が含まれていて、それらのモジュールの部分的な更新を行う場合には、組み込まれたアーカイブ ファイルも展開する必要があります。各モジュールをアーカイブ ファイルと同じ名前のサブディレクトリに復元してください。たとえば、myejb.jar
という名前のモジュールは、展開したエンタープライズ アプリケーション ディレクトリの /myejb.jar
サブディレクトリに復元します。
注意 : 展開した .EAR ファイルのアーカイブ モジュールに異なるサブディレクトリ名を使用する場合は、アプリケーション自体の中で使用しているこれらのモジュールへの参照を修正する必要があります。たとえば、manifest.mf
ファイルの application.xml
および CLASSPATH
のエントリに指定されている URI 値を更新する必要があります。
新しいアーカイブまたは展開されたアーカイブ ディレクトリをデプロイするには、ドメインの管理サーバからファイルにアクセス可能である必要があります。つまり、ファイルは管理サーバ マシン上にあるか、またはネットワークにマウントされたリモート ディレクトリを通して使用できなければなりません。
Administration Console を使用して最初にモジュールをデプロイするとき、ファイルを使用できるようにする他の方法がない場合は、ファイルを管理サーバにアップロードすることができます。ファイルは、アップロード ディレクトリ名 の属性で指定された場所にアップロードされます。
デプロイメント対象は、アプリケーションまたはスタンドアロン モジュールのデプロイ先であるサーバです。有効なデプロイメント対象には、WebLogic Server インスタンス、クラスタ、および仮想ホストが含まれます。デプロイメント プロセス中に、ドメインにコンフィグレーションされている使用可能なサーバ、クラスタ、および仮想ホストから対象のリストを選択します。また、モジュールのデプロイ後いつでも対象リストを変更できます。
ドメインの 1 つまたは複数の管理対象サーバ、または単一サーバ ドメインの管理サーバに、アプリケーションおよびスタンドアロン モジュールをデプロイできます。複数のサーバがあるドメインの管理サーバにデプロイすることはできますが、お勧めしません。複数サーバ ドメインの管理サーバは、管理の目的にのみ使用するようにしてください。
WebLogic Server インスタンスのクラスタにデプロイする場合、デフォルトではクラスタ内のすべてのサーバ インスタンスがデプロイメントの対象になります。これは、ほとんどのクラスタにおいて推奨される、均一なモジュール デプロイメントに対応しています。クラスタ内の 1 つのサーバだけにモジュールをデプロイする (モジュールをサーバに「固定」する) 場合は、個別のサーバ名を選択することもできます。このタイプのデプロイメントはそれほど一般的ではなく、固定サービスが要求される特別な状況においてのみ行うようにする必要があります。詳細については、「クラスタのコンフィグレーションとアプリケーションのデプロイメント」を参照してください。
注意 : クラスタ内のサーバ インスタンスのサブセットにデプロイメントを固定すること (単一サーバとは異なる) は推奨されておらず、警告メッセージが生成されます。
仮想ホスティングを使用すると、サーバまたはクラスタが応答するホスト名を定義できます。仮想ホスティングを使用するときは、WebLogic Server またはクラスタの IP アドレスにマップする 1 つまたは複数のホスト名を、DNS 名を使って指定します。また、各仮想ホストによって提供されるアプリケーションを指定します。
デプロイ中に、Weblogic Server のインスタンス名またはクラスタ名を選択するのと同じように、コンフィグレーション済みの仮想ホスト名を選択します。詳細については、『WebLogic Server のコンフィグレーションと管理』の「仮想ホスティングのコンフィグレーション」を参照してください。
注意 :Web アプリケーションのコンテキスト ルートが weblogic.xml
ファイルで空白で、仮想ホストがサーバ インスタンスを対象とする場合、Web アプリケーションは仮想ホスト、またはサーバ インスタンスにしかデプロイできません。
デプロイメントのステージング モードにより、デプロイメント ファイルを、アプリケーションまたはスタンドアロン モジュールをデプロイする必要がある対象サーバから使用できるようにする方法が決まります。WebLogic Server のステージング モードには、stage モード、nostage モード、external_stage モードの 3 種類があります。次の表では、デプロイメント ステージング モード別にそのモードを使用する場合の動作とベスト プラクティスについて説明します。
表 1-2 アプリケーション デプロイメントのステージング モード
|
||
|
||
|
ほとんどのデプロイメントでは、stage モードまたは nostage モードを使用します。アプリケーションまたはモジュールをデプロイするとき、Administration Console に適切なモードが自動的に示されます。ステージング モードの詳細については、「高度なデプロイメントについて」の「デプロイメントのステージング モードとステージング ディレクトリ」を参照してください。
1 つまたは複数の WebLogic Server インスタンスにアプリケーションまたはスタンドアロン モジュールを最初にデプロイするときには、デプロイメント ファイル、対象サーバ、および選択したその他のコンフィグレーション オプションを総体的に説明するデプロイメント名を指定します。後ですべての対象サーバ上のデプロイメント ユニットを再デプロイまたは停止する場合、デプロイメント名を使用して簡単に指定できます。デプロイメント名を使用すると、ドメイン内の複数サーバにかかわるデプロイメント ユニットを操作する場合に、デプロイメント ファイルと対象サーバを再度特定する手間を省くことができます。
デプロイメント時にデプロイメント名を指定しない場合、デプロイメント ツールによってデフォルトの名前が選択されます。展開されたアーカイブ ディレクトリについては、デプロイする最上位ディレクトリの名前がデフォルトのデプロイメント名になります。アーカイブ ファイルについては、デプロイメント名はアーカイブ ファイル名と同じで、ファイル拡張子は付きません (ファイル名が myear.ear
の場合は myear
となります)。
WebLogic Server にはアプリケーションとスタンドアロン モジュールのデプロイに使用するいくつかのツールがあります。
weblogic.Deployer
- コマンドライン ベースのインタフェースを使用して、デプロイメントの基本的なタスクおよび高度なタスクの両方を実行できます。 weblogic.Deployer
は、ブラウザまたはグラフィカル ユーザ インタフェース環境にアクセスできず、特例のデプロイメント タスクを実行する場合に使用します。また、シェル スクリプトまたはバッチ プロセスによって、Ant タスクではなくデプロイメント タスクを自動化する場合にも、weblogic.Deployer
を使用できます。
wldeploy
は、weblogic.Deployer
ユーティリティの Ant タスク バージョンです。デプロイメント タスクを自動化するには、Ant の build.xml
ファイルに wldeploy
コマンドを配置し、Ant を実行してそのコマンドを実行します。applications
ディレクトリにより、デプロイメント環境で評価またはテストを行うためのアプリケーションを素早くデプロイできます。
アプリケーションをデプロイするときには、以下のベスト プラクティスをお勧めします。
.ear
、.jar
、.war
など) にパッケージ化します。weblogic.Deployer
ツール、および wldeploy
Ant タスクはすべて、アプリケーションをデプロイするための同様の機能を提供します。weblogic.Deployer
は、デプロイメント コマンドを既存の管理シェル スクリプトまたは自動化されたバッチ プロセスと統合するために使用します。wldeploy
は、新しいアプリケーションを開発してデプロイするために分割開発ディレクトリと一緒に使用します。wldeploy
は、シェル スクリプトではなく Ant を使用する管理環境で weblogic.Deployer
の代わりとして使用することもできます。applications
ディレクトリではなく wldeploy
を使用します。applications
ディレクトリは、テストで、または一時的に新しいアプリケーションを迅速に実行する際には最適です。たとえばサンプル アプリケーションをダウンロードしてその機能を評価したい場合は、applications
ディレクトリを使用すると、アプリケーションを簡単に開発サーバにデプロイできます。
デプロイメント ツールは、次に示す一般的なデプロイメント操作の実行を支援します。
注意 : アプリケーションは、再デプロイメント中はクライアントから使用できません。WebLogic Server では、再デプロイメント時にクライアントからアクセスがあった場合、アプリケーション操作およびデプロイメント操作は保証されません。このため、プロダクション環境で使用する場合には再デプロイはお勧めしません。
注意 : アプリケーションは、アンデプロイメント中はクライアントから使用できません。WebLogic Server では、アンデプロイメント時にクライアントからアクセスがあった場合、アプリケーション操作およびデプロイメント操作は保証されません。
「Admin」および「Deployer」ユーザの組み込みセキュリティ ロールにより、WebLogic Server Administration Console を使用してデプロイメント タスクを実行できます。組み込みセキュリティ ロールの詳細については、Administration Console オンライン ヘルプの「Administration Console の起動」を参照してください。
![]() ![]() |
![]() |
![]() |