WebLogic Platform アプリケーションのデプロイメント
対象環境を設定し、アプリケーションをデプロイする準備が整ったら、最後の手順として、アプリケーションを対象環境にデプロイします。
デプロイメント ユニットとは、J2EE 仕様に従って構成されており、WebLogic Server にデプロイ可能な J2EE アプリケーション (エンタープライズ アプリケーションまたは Web アプリケーション) あるいはスタンドアロン J2EE モジュール (EJB またはリソース アダプタ) のことです。
デプロイメント ユニットのタイプごとに、必要なファイル、およびアプリケーションまたはモジュールのディレクトリ構造内での各ファイルの位置が J2EE 仕様で定義されています。デプロイメント モジュールは、EJB とサーブレットの Java クラス、リソース アダプタ、Web ページとサポート ファイル、XML 形式のデプロイメント記述子、およびその他のモジュールで構成されています。
J2EE では、どのようにデプロイメント ユニットを対象サーバにデプロイするかは指定されておらず、標準のアプリケーションとモジュールの構造だけが指定されています。WebLogic Server は、jar ユーティリティを使用してアーカイブ ファイルとしてパッケージ化されたデプロイメント、または展開されたアーカイブ ディレクトリとしてパッケージ化されたデプロイメントをサポートしています。
状況によっては、アプリケーション内の個々のモジュールを異なる対象にデプロイする必要がある場合があります。たとえば、WebLogic Platform の複数のコンポーネントを組み合わせている WebLogic Platform をデプロイする場合です。これらのモジュールやアプリケーションを割り当てる場合に重要な考慮事項について、この節で説明します。
次の表に、WebLogic Platform で利用できるデプロイメント ツールの一覧を示します。これらのツールを使用して、アプリケーションをデプロイ、再デプロイ、アンデプロイ、配布することができます。
|
|
|
|
|
ここでは、プロダクション環境にデプロイする場合の考慮事項について説明します。具体的な項目は次のとおりです。
注意 : カスタマ サポートの Web サイトには、アプリケーションのデプロイメントに関する一般的な考慮事項とトラブルシューティングに関するヒントが用意されています。詳細については、http://support.bea.com/support_news/product_troubleshooting/Deployment_Pattern.html
にある『Troubleshooting Deployment Issues』を参照してください。
アプリケーションは、単一のアーカイブ EAR ファイルまたは展開されたアーカイブ ディレクトリとして格納できます。考慮事項を確認する場合は、『WebLogic Server アプリケーションのデプロイメント』の「デプロイメント ファイル」を参照してください。
アプリケーションの割り当て方法は、アプリケーションのタイプによって異なります。
WebLogic Portal アプリケーションや WebLogic Platform アプリケーションの Portal モジュールは、管理サーバとクラスタに割り当てます。これにより、Administration Portal、Datasync Web アプリケーション、LDAP サーバのデータが同期されて、正しくプロモートされます。
WebLogic Portal アプリケーションや WebLogic Platform アプリケーションの Portal モジュールは、2 段階のデプロイメント プロセスでデプロイします。詳細については、「手順 3: アプリケーションをデプロイする」を参照してください。
注意 : WebLogic Portal は、EJB と JSP が 1 つのクラスタ内で異なるサーバに分割される分割コンフィグレーション アーキテクチャをサポートしていません。
WebLogic Integration アプリケーションは、ドメイン内の単一のクラスタに割り当てます。対象クラスタが指定されない場合は、最初の WebLogic Integration クラスタがデフォルトで割り当てられます。クラスタがない場合は、最初の管理対象サーバが割り当てられます。この値は、wli-config.properties
ファイルを編集し、割り当てるクラスタの名前を weblogic.wli.WliClusterName
プロパティ値として設定することで変更できます。wli-config.properties
ファイルの詳細については、『WebLogic Integration ソリューションのデプロイメント』の「wli-config.properties コンフィグレーション ファイル」を参照してください。
プロセス制御を使用する場合は、対象プロセスをクライアント プロセスと同じ管理対象サーバに割り当てる必要があります。そうしないと、ディスパッチ テーブルが更新されないので、クライアント プロセスが、対象プロセスを呼び出すために必要な情報にアクセスできなくなります。同様に、サブスクライバ プロセスは、パブリッシャ プロセスと同じ管理対象サーバに割り当てる必要があります。
Trading Partner Integration コンポーネントは、クラスタに均一にデプロイして、シングル ポイント障害が発生しないようにする必要があります。
アダプタおよびイベント ジェネレータをデプロイする場合の考慮事項については、『WebLogic Integration ソリューションのデプロイメント』の「WebLogic Integration クラスタについて」に記載されている次の節を参照してください。
詳細については、『WebLogic Server アプリケーションのデプロイメント』に記載されている次の節を参照してください。
デフォルトの認証プロバイダには、ユーザが WebLogic Server Administration Console を使用してデプロイメント タスクを実行できるように、Admin
と Deployer
という 2 つの組み込みセキュリティ ロールが用意されています。
さらに、カスタム認証プロバイダを作成し、追加のセキュリティ ロールを定義することで環境のセキュリティを強化する必要がある場合もあります。アプリケーションで必要なロールをすべて作成してから、アプリケーションをデプロイすることをお勧めします。詳細については、「セキュリティのコンフィグレーション」を参照してください。
次の表に、デプロイメント ユニットを対象サーバでどのように利用できるようにするかを定義するステージング モードの一覧を示します。ステージング モード、およびどういう場合に使用するかに関する推奨事項の詳細については、『WebLogic Server アプリケーションのデプロイメント』の「ステージング モード」を参照してください。
ロード順は、[ロード順] 属性で決まります。デフォルトでは、各デプロイメント ユニットのロード順は 100 にコンフィグレーションされます。[ロード順] の値が同じデプロイメントは、デプロイメント名のアルファベット順にデプロイされます。
ロード順は、WebLogic Server Administration Console または ApplicationMBean
を使用して変更できます。変更方法の詳細、およびアプリケーション モジュールや起動クラスの順序のコンフィグレーションについては、『WebLogic Server アプリケーションのデプロイメント』の「デプロイ順」を参照してください。
アプリケーション アーカイブの内容を変更することなく、実行時デプロイメント コンフィグレーションを調整する場合に、アプリケーションの外部にステージングされる代替デプロイメント記述子を使用できます。標準 J2EE (application.xml
) や WebLogic Server (weblogic-application.xml
) デプロイメント記述子の代わりに代替デプロイメント記述子を指定できます。
詳細については、『WebLogic Server アプリケーションのデプロイメント』の「代替デプロイメント記述子によるエンタープライズ アプリケーションのデプロイ」を参照してください。
ここでは、アプリケーションを対象環境にデプロイするのに必要な手順を説明します。具体的には次のとおりです。
注意 : 対象環境にデプロイする前に、次の節の説明に従って、対象環境とアプリケーションの準備を必ず完了させてください。
管理サーバと管理対象サーバがまだ稼働していない場合は、「サーバの起動」の説明に従って起動します。
アプリケーションをドメイン内のサーバにデプロイするには、ドメイン内の管理サーバからファイルにアクセスできる必要があります。特に、これらのファイルは管理サーバ マシンに存在するか、ネットワークにマウントされたディレクトリを経由してアクセスできる必要があります。詳細については、『WebLogic Server アプリケーションのデプロイメント』の「一般的なデプロイメント タスクの実行」の「管理サーバへのデプロイメント ファイルのアップロード」を参照してください。
アプリケーションをデプロイする手順は、アプリケーション タイプによって異なります。WebLogic Platform および WebLogic Portal アプリケーションでは、特別なデプロイメント シーケンスが必要になります。
次の節では、アプリケーション タイプに基づいてアプリケーションをデプロイする手順を説明します。
「デプロイメント ツールの概要」で説明されているデプロイメント ツールのいずれかを使用して、WebLogic Integration、WebLogic Server、または WebLogic Workshop アプリケーションをデプロイします。割り当てなど、デプロイメントに関する考慮事項については、「デプロイメントに関する考慮事項」を参照してください。
WebLogic Portal アプリケーションや WebLogic Platform アプリケーションの Portal モジュールは、2 段階のデプロイメント プロセスでデプロイします。WebLogic Portal アプリケーションや Portal モジュールは、まず単一のサーバにデプロイしてから、クラスタにデプロイする必要があります。
WebLogic Platform や WebLogic Portal アプリケーションをデプロイするには
割り当てなど、デプロイメントに関する考慮事項については、「デプロイメントに関する考慮事項」を参照してください。
注意 : まだクラスタが稼働していない場合には、遅延デプロイメントを利用できます。遅延デプロイメントを開始するには、WebLogic Portal アプリケーションや WebLogic Platform アプリケーションの Portal モジュールを管理サーバとクラスタにデプロイし、その他のアプリケーションやモジュールはすべてクラスタのみにデプロイします。次に、「管理対象サーバの起動」の説明に従って、管理対象サーバを起動します。この時点で、クラスタにデプロイされたアプリケーションは自動的にデプロイされます。遅延デプロイメントの利点は、WebLogic Portal アプリケーションやモジュールを一回だけデプロイすればよいということです。
アプリケーションでイベント ジェネレータを使用する場合は、WebLogic Integration Administration Console を使ってデプロイする必要があります。イベント ジェネレータのデプロイメントの詳細については、『WebLogic Integration ソリューションの管理』の「イベント ジェネレータ」の「イベント ジェネレータの作成およびデプロイメント」を参照してください。
管理サーバと管理対象サーバは、次の節の説明に従って起動できます。
ノード マネージャのサンプル起動スクリプトは、WL_HOME
\server\bin
ディレクトリにインストールされます。WL_HOME
は、WebLogic Server の最上位インストール ディレクトリです。Windows システムでは startNodeManager.cmd
、UNIX システムでは startNodeManager.sh
を使用します。
ノード マネージャ ログ ファイルの詳細については、『WebLogic Server のコンフィグレーションと管理』の「ノード マネージャのコンフィグレーション、起動、および停止」を参照してください。
setDomainEnv
スクリプト内の MEM_ARGS
変数への参照を次のようにすべて更新します。ノード マネージャを使用して管理対象サーバを管理している場合は、「管理対象サーバの起動属性をコンフィグレーションする」の説明に従って、Arguments
ServerStart
属性を使用します。
管理サーバの詳細については、Administration Console オンライン ヘルプの「管理サーバの起動」を参照してください。
startManagedWebLogic
スクリプトを実行します。
次の例は、Ant ビルド ファイルから抜粋したコードであり、weblogic.Deployer
を使用して、「単一クラスタ Platform ドメインの例」に示されているような単一クラスタ ドメインに WebLogic Integration アプリケーションを自動的にデプロイする方法を示しています。
次の節では、アプリケーションを対象ドメインにデプロイするプロセスの手順を示します。
さまざまな対象環境における自動化やスクリプトの再利用を容易にするには、コードで ${cluster.name}
などのプロパティを参照するようにします。これらの参照は Ant スクリプトにインポートされるプロパティ ファイルで解決されます。たとえば、次のプロパティは別個のプロパティ ファイル myprops.properties
で定義されます。
deploy.dir=deploy
cluster.name=platformcluster
admin.addr=myhost
admin.port=9301
admin.username=username
admin.password=password
このファイルは、Ant ビルド ファイルで次のように参照されます。
<property file="myprops.properties"/>
次の構文は、WebLogic Integration アプリケーションのメイン Ant ターゲットを定義します。対象の値は、太字で示しています。deploy-app
対象は以下で記述します。
<target name="deploy-IntApp">
<antcall target="deploy-app">
<param name="app.name" value="IntApp
" />
<param name="app.src" location="${deploy.dir}/IntApp
.ear" />
<param name="app.target" value="${cluster.name}" />
<param name="admin.url" value="http://${admin.addr}:${admin.port}" />
</antcall>
</target>
上記の Ant ターゲットで参照している deploy-app
対象は、次のように weblogic.Deployer
コマンドを使用してアプリケーションをデプロイします。
<target name="deploy-app">
<java classname="weblogic.Deployer"
fork="true" failonerror="true">
<arg value="-adminurl"/><arg value="${admin.url}"/>
<arg value="-username"/><arg value="${admin.username}"/>
<arg value="-password"/><arg value="${admin.password}"/>
<arg value="-name"/><arg value="${app.name}"/>
<arg value="-source"/><arg value="${app.src}"/>
<arg value="-targets"/><arg value="${app.target}"/>
<arg value="-deploy"/>
</java>
WebLogic Integration アプリケーションを「単一クラスタ Platform ドメインの例」で示されているような単一のドメインにデプロイするには
ant deploy-IntApp
次の例は、Ant ビルド ファイルから抜粋したコードであり、weblogic.Deployer
を使用して、「単一クラスタ Platform ドメインの例」に示されているような単一クラスタ ドメインにアプリケーションを自動的にデプロイする方法を示しています。
特に、この例では次の 3 つのアプリケーションをプロダクション環境にデプロイします。
PlatApp
- WebLogic Platform アプリケーション。定義については、「WebLogic Platform アプリケーションについて」を参照してください。PortApp
- WebLogic Portal アプリケーションIntApp
- WebLogic Integration アプリケーション次の節では、アプリケーションを対象ドメインにデプロイするプロセスの手順を示します。
さまざまな対象環境における自動化やスクリプトの再利用を容易にするには、コードで ${cluster.name}
などのプロパティを参照するようにします。これらの参照は Ant スクリプトにインポートされるプロパティ ファイルで解決されます。たとえば、次のプロパティは別個のプロパティ ファイル myprops.properties
で定義されます。
cluster.name=platformcluster
admin.name=cgServer
このファイルは、Ant ビルド ファイルで次のように参照されます。
<property file="myprops.properties"/>
「手順 3: アプリケーションをデプロイする」の説明に従って、WebLogic Platform や WebLogic Portal アプリケーションを 2 段階のデプロイメント プロセスでデプロイします (遅延デプロイメントを使用していない場合)。
たとえば、次のコードは、上記の手順 1 を実行するための「最初の」Ant ターゲットを定義します。対象の値は、太字で示しています。deploy-PlatApp-first
では、モジュールレベルの割り当てを使用して、WebLogic Platform アプリケーションの WebLogic Portal モジュールを管理サーバにのみ割り当て、WebLogic Integration モジュールはクラスタに割り当てていることに注目してください。
注意 : 次の Ant ターゲットで参照されている deploy-app
対象は、「デプロイメント Ant ターゲットを定義する」で定義しています。
WebLogic Integration アプリケーションの「最初」の Ant ターゲットは定義する必要がありません。2 段階のデプロイメント プロセスを必要としないからです。
<target name="deploy-PlatApp-first">
<antcall target="deploy-PlatApp">
<param name="app.target" value="p13n_ejb.jar@${admin.name},PortIntAppDatasync@${admin.name},\
.workshop/PortIntAppWeb/EJB/GenericStateless@${cluster.name},\
.workshop/PortIntAppWeb/EJB/Allocate_1trtqtoxcz4uv@${cluster.name},\
.workshop/PortIntAppWeb/EJB/ProjectBeans@${cluster.name},PortIntAppWeb@${cluster.name}"
/>
</antcall>
</target>
<target name="deploy-PortApp-first">
<antcall target="deploy-PortApp">
<param name="app.target" value="${admin.name}" />
</antcall>
</target>
次のコードは、上記の手順 2 を実行するためのメイン Ant ターゲットを定義します。対象の値は、太字で示しています。WebLogic Portal および WebLogic Platform アプリケーションがクラスタに割り当てられることに注目してください。上記で説明した「最初の」Ant ターゲットによって、管理サーバにはすでに割り当てられるからです。
注意 : WebLogic Integration アプリケーションのメイン Ant ターゲットは、「メイン Ant ターゲットを定義する」で定義しています。
<target name="deploy-PlatApp">
<antcall target="deploy-app">
<param name="app.name" value="PlatApp
" />
<param name="app.src" location="${deploy.dir}/PortIntApp
.ear" />
<param name="app.target" value="${cluster.name}" />
<param name="admin.url" value="http://${admin.addr}:${admin.port}" />
</antcall>
</target>
<target name="deploy-PortApp">
<antcall target="deploy-app">
<param name="app.name" value="PortApp
" />
<param name="app.src" location="${deploy.dir}/PortApp
.ear" />
<param name="app.target" value="${cluster.name}" />
<param name="admin.url" value="http://${admin.addr}:${admin.port}" />
</antcall>
</target>
2 つのデプロイメント Ant ターゲットを以下で定義します。1) 「最初」の Ant ターゲットを実行して WebLogic Portal アプリケーションと WebLogic Platform の Portal モジュールを管理サーバだけにデプロイする定義と、2) WebLogic Portal、WebLogic Platform、および WebLogic Integration アプリケーションをクラスタにデプロイする 2 番目の定義です。
<target name="deploy-apps-first"
depends="
deploy-PlatApp-first,
deploy-PortApp-first
/>
<target name="deploy-apps"
depends="
deploy-PlatApp
deploy-PortApp
deploy-IntApp
/>
アプリケーションを「単一クラスタ Platform ドメインの例」で示されているような単一のドメインにデプロイするには
ant deploy-apps-first
ant deploy-apps