WebLogic Server アプリケーションのデプロイメント
以下の節では、Administration Console と weblogic.Deployer
ユーティリティを使用して一般的なデプロイメント タスクを実行する方法について説明します。
以下の節では、高度なデプロイメント タスクについて説明します。
ドメインのサーバにアプリケーションまたはスタンドアロン モジュールをデプロイするには、デプロイメント ファイルがドメインの管理サーバからアクセス可能でなければなりません。デプロイメント ファイルが管理サーバ マシン上にない場合、またはネットワークにマウントされたディレクトリを通して管理サーバ マシンから使用できない場合は、以下の手順に従ってファイルをアップロードします。
管理サーバ マシンにファイルをアップロードすると、アーカイブ ファイルはサーバのアップロード ディレクトリに自動的に配置されます。このディレクトリのパスは、「サーバのステージング モードまたはステージング ディレクトリの変更」にある手順に従ってコンフィグレーションできます。
注意 : Administration Console のアップロード機能を使用すると、デプロイメント用に単一のアーカイブ ファイルを管理サーバ マシンにアップロードできます。展開されたアーカイブ ディレクトリをアップロードする必要がある場合は、Weblogic.Deployer のタスクを使用します。
Administration Console を使用して管理サーバ マシンにアーカイブ ファイルをアップロードするには、次の手順に従います。
.ear
ファイルまたはディレクトリとしてパッケージ化されたエンタープライズ アプリケーションまたは Web サービス.war
ファイルまたはディレクトリとしてパッケージ化された Web アプリケーションまたは Web サービスweblogic.Deployer
を使用して新しいアプリケーションまたはスタンドアロン モジュールをデプロイする場合は、-upload
オプションを追加して、デプロイメント ファイルをアップロードします。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name myapp -targets myserver -upload
-deploy c:\localfiles\myapp.ear
weblogic.Deployer
は、デプロイメント ファイルを ディレクトリ名のアップロード 属性で指定された管理サーバのアップロード ディレクトリにコピーします。 対象サーバは次にデプロイメント ファイルのローカル コピーを使用してデプロイします。展開されたアーカイブ ディレクトリをアップロードするには、アーカイブ ファイル名の代わりにディレクトリ名を指定します (たとえば、c:\localfiles\myappEar
)。
同じマシン上にあるサーバにデプロイメント ユニットをデプロイする場合は、nostage デプロイメント モードを使用できます。nostage モードでは、管理サーバとすべての対象サーバで、同じデプロイメント ファイルを使用してデプロイします (デプロイメント ファイルはサーバのステージング ディレクトリにコピーされません)。
注意 : アプリケーションまたはスタンドアロン モジュールを管理サーバにデプロイする場合は、nostage モードがデフォルトです。この場合、nostage モードを指定する必要はありません。
管理サーバまたはスタンドアロン サーバにデプロイする場合、Administration Console は自動的にデフォルトの nostage モードを使用します。複数のサーバをデプロイ先とする場合、それらのサーバが同じマシン上にあるときは、手動で nostage モードを指定する必要があります。
1 台のマシン上のサーバにデプロイするには、次の手順に従います。
.ear
ファイルまたはディレクトリとしてパッケージ化されたエンタープライズ アプリケーションまたは Web サービス.jar
ファイルまたはディレクトリとしてパッケージ化されたエンタープライズ JavaBean.war
ファイルまたはディレクトリとしてパッケージ化された Web アプリケーションまたは Web サービス.rar
ファイルまたはディレクトリとしてパッケージ化されたリソース アダプタweblogic.Deployertool
ユーティリティを使用して同じマシン上のサーバにデプロイする場合は、明示的に nostage モードを指定します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname
-targets myserver1,myserver2,myserver3 -nostage
-deploy c:\localfiles\myapp.ear
別のマシン上にあるサーバにデプロイメント ユニットをデプロイする場合は、通常、stage デプロイメント モードを使用します。このモードでは、デプロイメント ファイルはデプロイの前に管理サーバから各対象サーバにコピーされます。すべてのサーバが共有ディレクトリのデプロイメント ファイルにアクセスできる場合は、nostage モードも使用できます。nostage モードではファイルを対象サーバにコピーしません。まれな状況で、external_stage モードを使用することもあります。このモードでは、デプロイメント前に、デプロイメント ファイルが各サーバのステージング ディレクトリにコピーされていることを確認する必要があります。「ステージング モード」を参照してください。
注意 : アプリケーションまたはスタンドアロン モジュールを管理対象サーバにデプロイする場合は、stage モードがデフォルトです。この場合、stage モードを指定する必要はありません。
Administration Console では、ファイルをデプロイするときに nostage モードか stage モードを選択できます。external_stage モードでデプロイする必要がある場合は、次の節または「external_stage モードを使用したエンタープライズ アプリケーションのデプロイ」に示す weblogic.Deployer
の説明に従ってください。
別のマシン上の複数のサーバにデプロイメント ユニットをデプロイするには、次の手順に従います。
.ear
ファイルまたはディレクトリとしてパッケージ化されたエンタープライズ アプリケーションまたは Web サービス.jar
ファイルまたはディレクトリとしてパッケージ化されたエンタープライズ JavaBean.war
ファイルまたはディレクトリとしてパッケージ化された Web アプリケーションまたは Web サービス.rar
ファイルまたはディレクトリとしてパッケージ化されたリソース アダプタweblogic.Deployer
ユーティリティを使用して複数のマシンにデプロイする場合は、コマンドラインで nostage または external_stage モードを明示的に指定します。モードを指定しない場合、デプロイメントではデフォルトの stage モードが使用されます。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname
-targets myserver1,myserver2,myserver3 -stage
-deploy c:\localfiles\myapp.ear
WebLogic Server ドメインにアプリケーションまたはスタンドアロン モジュールをデプロイした後、新しい WebLogic Server インスタンスを追加したり、既存のサーバ インスタンスを削除したりして、対象サーバ リストを変更できます。対象サーバを削除した場合、対象リストだけが更新されます。デプロイメント ユニットは、明示的にアンデプロイするまで、削除したサーバにデプロイされた状態のままです。同様に、新しい対象サーバを追加した場合は、デプロイメント ユニットを新しいサーバに明示的にデプロイする必要があります。そうしないと、モジュールはそのサーバ上でアクティブになりません。
注意 : Administration Console を使用して新しい対象リストを追加した後、新しく追加した対象サーバにデプロイするためには、すべての既存サーバにデプロイメント ユニットを再デプロイする必要があります。
注意 : アプリケーションまたはモジュールがすでにデプロイされている場合は、weblogic.Deployer
を使用して、デプロイメント ユニットの対象リストからサーバを削除することはできません。
weblogic.Deployer
を使用して新しいサーバを対象リストに追加するには、deploy
コマンドで対象サーバの新しいリストを指定します。 次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname -deploy
-targets server1, newserver
ドメインにすでにデプロイされているデプロイメント ユニットを再デプロイまたは停止するには、実際のアーカイブ ファイルまたは展開ディレクトリではなく、デプロイメント名を参照します。デプロイメント ユニットを再デプロイする場合、対象サーバは使用可能なデプロイメント ファイル (ユニットが stage モードでデプロイされた場合はファイルのローカル コピー、または nostage モードの場合は元のデプロイメント ファイル) を使用します。再デプロイメント時、クラスが再ロードされる短い間、アプリケーションがクライアントから使用できなくなるときがあります。WebLogic Server では、再デプロイメント時にクライアントからアクセスがあった場合、アプリケーション操作およびデプロイメント操作は保証されません。このため、プロダクション環境における再デプロイはお勧めしません。
デプロイメント ユニットを停止すると、クライアントから使用できなくなることに注意してください。ただし、後から使用可能なソース ファイルとデプロイメント名を使用して、停止したデプロイメント ユニットを再デプロイできます。デプロイメント ファイルはドメインのデプロイメント名と関連付けられたままなので、デプロイメント ファイルを再び選択する必要はありません。
Administration Console を使用してデプロイメント ユニットを再デプロイまたは停止するには、次の手順に従います。
weblogic.Deployer
ユーティリティを使用してデプロイメント ユニットを再デプロイするには、redeploy コマンドを使用してデプロイメント名を指定します。次のようにデプロイメント名だけを指定すると、既存のすべての対象サーバ インスタンスでアプリケーションが再デプロイされます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name myenterpriseapp -redeploy
注意 : クラスタにデプロイされたアプリケーションについては、再デプロイメントはクラスタ内のすべての対象サーバ インスタンスで行われます。アプリケーションがクラスタ内のすべてのサーバにデプロイされている場合は、そのアプリケーションをクラスタ内の一部のサーバに再デプロイすることはできません。
アプリケーションがクラスタ化されていない複数のサーバ インスタンスにデプロイされている場合は、次のように対象リストを指定して一部の対象サーバにアプリケーションを再デプロイできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname -redeploy
-targets myserver1,myserver2
デプロイ済みのエンタープライズ アプリケーションの個別のモジュールを再デプロイする場合、weblogic.Deployer
ユーティリティでは別のコマンド形式を使用します。エンタープライズ アプリケーションのモジュールのサブセットを再デプロイする場合は、対象サーバ リストに modulename@servername を指定します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name myenterpriseapp -redeploy
-targets mymodule1@myserver1,mymodule2@myserver2
注意 : アプリケーションがクラスタにデプロイされている場合は、一部のサーバではなくクラスタ全体にモジュールを再デプロイする必要があります。クラスタ内の一部のサーバを指定すると、weblogic.Deployer
は次のエラーで応答します。
An attempt to add server target target_name to module module_name has been rejected .This is because its parent cluster, cluster_name, is aso targeted by the module.
新しいアプリケーションまたはスタンドアロン モジュールをドメイン内のサーバにデプロイした後も、選択したデプロイメント ファイルにはデプロイメント名が関連付けられたままです。すべてのサーバ上でデプロイメントを停止した後であっても、ファイルは、Administration Console または weblogic.Deployer
ユーティリティのいずれかを使用した再デプロイメント用に使用可能な状態です。
デプロイメント名および関連付けられたデプロイメント ファイルをドメインから削除するには、アプリケーションまたはスタンドアロン モジュールを明示的にアンデプロイする必要があります。削除後のデプロイメント ユニットを再デプロイする必要がある場合は、デプロイメント ファイル、ステージング モード、およびデプロイメント名を指定する必要があります (「同じマシン上にあるサーバへのアプリケーションまたはスタンドアロン モジュールのデプロイ」または「複数のマシン上にあるサーバへのアプリケーションまたはスタンドアロン モジュールのデプロイ」を参照)。デプロイメント ユニットをアンデプロイしても、デプロイメントに使用した元のソース ファイルは削除されません。ドメインからデプロイメントのコンフィグレーションが削除されるだけです。また、システムが作成したデプロイメント ファイルも削除されます (たとえば、stage デプロイメント モードでコピーされたファイル)。
注意 : アプリケーションは、アンデプロイメント中はクライアントから使用できません。WebLogic Server では、アンデプロイメント時にクライアントからアクセスがあった場合、アプリケーション操作およびデプロイメント操作は保証されません。
デプロイメント ユニットをドメインからアンデプロイするには、次の手順に従います。
weblogic.Deployer
を使用してデプロイメント ユニットをドメインからアンデプロイするには、undeploy
オプションを指定します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -undeploy
エンタープライズ アプリケーション モジュール (.ear
ファイル) は、他のモジュール タイプ (.WAR および .JAR アーカイブ) を含むことができるので、他のデプロイメント ユニットとは異なります。Administration Console を使用してエンタープライズ アプリケーションをデプロイする場合は、アーカイブのすべてのモジュールを一緒に割り当てることも、または、個々のモジュールをドメイン内のサーバに個別に割り当ててアプリケーションを分散させることもできます。
デプロイメント ファイルを選択した後、[各モジュールの割り当て] ボタンをクリックすると、エンタープライズ アプリケーションに含まれている個別の JAR および WAR モジュールの割り当てが開始します。
weblogic.Deployer
ユーティリティを使用してさまざまな WebLogic Server インスタンスにモジュールをデプロイする場合は、module_name@
target_name という構文を使用して個別のモジュールを指定します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name myenterpriseapp
-targets module1@myserver1,module2@myserver2,module3@myserver3
-stage -deploy c:\localfiles\myapp.ear
.ear
ファイルの一部である Web アプリケーション モジュールを指定する場合は、Web アプリケーションのコンテキスト ルート名をモジュール名として使用する必要があります。たとえば、myapp.ear
ファイル用の application.xml
ファイルの場合、次のように定義します。
<module>
<web>
<web-uri>myweb.war</web-uri>
<context-root>/welcome</context-root>
</web>
</module>
次のようなコマンドを実行すると、Web アプリケーションのみをデプロイできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mywebapplication -targets welcome@myserver1
-stage -deploy c:\localfiles\myapp.ear
external_stage モードを使用すると、非常に大きいファイルをデプロイメント前に手動で対象サーバにコピーし、アプリケーションをデプロイするための所要時間を削減できます。external_stage モードは、サードパーティのアプリケーションや自動化されたスクリプトによってファイルを自動的にコピーする場合にも使用できます。external_stage モードでデプロイするときには、Administration Console は使用できません。
external_stage モードを使用してアプリケーションをデプロイするには、次の手順に従います。
myEARExternal
を指定する場合は、各対象サーバのステージング ディレクトリに myEARExternal
というサブディレクトリを作成します。注意 : デプロイメント時にデプロイメント名を指定しない場合、WebLogic Server によってデフォルトの名前が選択されます。 詳細については、「デプロイメント名」を参照してください。
java weblogic.Deployer -adminurl http://localhost:7001 -name weblogic
-password weblogic -external_stage -name myEARExternal
-deploy c:\myapps\myear
代替デプロイメント記述子ファイルは、アプリケーションの内容を変更せずに、アプリケーションの実行時コンフィグレーションを変更するファイルです。詳細については、「代替デプロイメント記述子によるエンタープライズ アプリケーションのデプロイ」を参照してください。
エンタープライズ アプリケーションをデプロイするときに代替デプロイメント記述子 (デプロイ済み EAR ファイルの外部にある) を指定するには、weblogic.Deployer
コマンドにファイル名を指定します。Administration Console を使用してデプロイする場合は、代替記述子ファイルは指定できません。
エンタープライズ アプリケーションをデプロイするときに外部の application.xml
ファイルと weblogic-application.xml
ファイルを指定するには、次のコマンドを実行します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name myapplication
-targets myserver1,myserver2,myserver3 -stage -deploy
-altappdd c:\myfiles\myextapplication.xml
-altwlsappdd c:\myfiles\myextwlsapplication.xml c:\localfiles\myapp.ear
myapp.ear
という名前のデプロイ済みのアプリケーションにモジュール newmodule.war
を追加し、application.xml
ファイルでそのモジュールを更新した場合は、次のように weblogic.Deployer
コマンドを使用して newmodule.war
をデプロイできます。
java weblogic.Deployer -username myname -password mypassword
-name myapp.ear -deploy -targets newmodule.war@myserver
-source /myapp/myapp.ear
注意 : このコマンドは、アプリケーション内のその他のモジュールは再デプロイせずに、新しいモジュールをデプロイします。 EAR ファイル内のアーカイブされたモジュールについては、正しいファイル拡張子 (上の例では .war
) を指定する必要があります。
Administration Console で ApplicationMBean LoadOrder 属性を設定することにより、デプロイ済みアプリケーションまたはスタンドアロン モジュールのデプロイメント順序を変更できます。LoadOrder
属性は、デプロイメントのロード順序を制御します。モジュールは LoadOrder
の値が小さい方から順にデプロイされます。すべての場合において、アプリケーションとスタンドアロン モジュールは、WebLogic Server インスタンスによる依存サブシステムの初期化後にデプロイされます。
注意 : デプロイ済みエンタープライズ アプリケーション内のモジュールは、application.xml
ファイルに指定した順序でロードされます。この順序は Administration Console を使用して変更できません。
weblogic.Deployer
ユーティリティを使用してアプリケーションとスタンドアロン モジュールのロード順を変更することはできません。
WebLogic Server 7.0 より前のバージョンでデプロイしたモジュールでは、デプロイメント記述子ファイルにロード順の値を指定しています。このロード順は Administration Console を使用して変更できません。
WebLogic Server ドメイン内のデプロイメントのデプロイメント順を表示または変更するには、次の手順に従います。
サーバのステージング モードは、デプロイメント時にデプロイメント モードを指定しない場合に使用される、サーバ用のデフォルトのデプロイメント モードを指定します。たとえば、weblogic.Deployer
を使用してアプリケーションまたはスタンドアロン モジュールをデプロイするときにステージング モードを指定しなかった場合、サーバのステージング モードが使用されます。ステージング モードをいつ使用するかについては、「デプロイメントのステージング モードとステージング ディレクトリ」を参照してください。
注意 : サーバのステージング モードは、Administration Console を使用するか、JMX を通じて ServerMBean
を直接変更することによってのみ、変更できます。
サーバのステージング モードを変更しても、既存のアプリケーションには影響しません。既存のアプリケーションのステージング モードを変更するには、アプリケーション デプロイメントをアンデプロイしてから、新しいステージング モードで再デプロイする必要があります。
サーバのステージング モードを設定するには、次の手順に従います。
展開されたアーカイブ ディレクトリを使用してアプリケーションまたはスタンドアロン モジュールをデプロイする場合は、Administration Console で、プロダクション環境のデプロイメント記述子を選択して直接編集できます。行った変更はモジュールのデプロイメント記述子ファイルに自動的に保持され、モジュールのホストであるすべての対象サーバに動的に適用されます。
注意 : アーカイブ ファイルからデプロイされたアプリケーションとモジュールのデプロイメント記述子は、Administration Console を使用して編集できません。
デプロイ済みのエンタープライズ アプリケーションのデプロイメント記述子を編集するには、次の手順に従います。
プロダクション環境では、アプリケーション全体を再デプロイせずに、Web アプリケーションの静的なコンテンツ、たとえば HTML ファイルや画像ファイルを更新することが必要になる場合があります。Web アプリケーションを展開されたアーカイブ ディレクトリとしてデプロイした場合は、静的ファイルが変更されたことを、weblogic.Deployer
ユーティリティを使用してサーバに通知できます。BEA dev2dev の「Avoiding Unnecessary JSP Recompilation」を参照してください。
デプロイメント ユニット内に関連付けられた単一のファイルを再デプロイするには、redeploy コマンドの最後にファイル名を指定します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mywebapp -redeploy mywebapp/copyright.html
更新したファイルのパス名は、展開されたアーカイブ ディレクトリのルート ディレクトリを基準とする相対パスで常に指定します。上記の例では、Web アプリケーションはエンタープライズ アプリケーションの一部としてデプロイされるため、モジュール ディレクトリを mywebapp/copyright.html
と指定しています。Web アプリケーションがエンタープライズ アプリケーションの一部としてではなくスタンドアロンでデプロイされる場合は、ファイルを単独で指定します (copyright.html
)。
単一のファイルではなくディレクトリ名を指定して、ファイルのディレクトリ全体を再デプロイすることもできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mywebapp -redeploy mywebapp/myjsps
この例では、エンタープライズ アプリケーションの myjsps
サブディレクトリにあるすべてのファイルとサブディレクトリが再デプロイされます。
注意 : refresh
ツールは非推奨となりました。WebLogic Server の将来のリリースでは削除されます。代わりに weblogic.Deployer
を使用してください。
展開されたアーカイブ ディレクトリを使用して Web アプリケーションをデプロイする場合、ファイルを更新するか (「Web アプリケーション内の静的ファイルの再デプロイ」を参照)、デプロイメントからファイルを削除することによって、Web アプリケーションの静的なコンテンツを更新できます。ファイルを削除するには、weblogic.Deployer
ユーティリティに delete_files
オプションを指定して使用します。次に例を示します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mywebapp -delete_files mywebapp/copyright.html
更新したファイルのパス名は、展開されたアーカイブ ディレクトリの最上位ディレクトリを基準にした相対パスで常に指定します。上記の例では、Web アプリケーションは mywebapp
という名前の展開されたアーカイブ ディレクトリにあります。
WebLogic Server のデプロイメント システムは、デプロイメント タスクにユニークな ID を自動的に割り当てます。そのため、デプロイメント タスクの進捗状況を追跡して管理できます。
Administration Console では、実行中のタスクおよび完了したタスクをモニタしたり、実行中のタスクを取り消したりできます。
デプロイメント ユニットをデプロイ、再デプロイ、または停止すると、右ペインの [デプロイ] タブで、デプロイメント アクションの状態がデプロイメント ステータス テーブルに表示されます。個別のタスクについての詳細を表示するには、テーブルの [最後のアクションのステータス] カラムにあるリンクをクリックします。
進行中および完了済みデプロイメント タスク (およびその他のドメイン コンフィグレーション タスク) の完全なリストを表示するには、左ペインの [タスク] ノードを選択します。
weblogic.Deployer
ユーティリティを使用すると、実行中のデプロイメント タスクをモニタしたり、取り消したりできます。また、以降のコマンドで使用する独自のタスク ID 番号を weblogic.Deployer
で割り当てることもできます。
次のコマンドでは、新しいデプロイメント アクションに 73 というタスク ID を割り当てています。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -targets myserver -id redeployPatch2
-nowait -deploy c:\localfiles\myapp.ear
後から次のコマンドを使用してタスクのステータスをチェックすることもできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -id redeployPatch2 -list
後から次のコマンドを使用して実行中タスクのステータスをチェックすることもできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -listtask
タスクの完了に時間がかかりすぎる場合は、次のコマンドを実行してタスクを取り消すことができます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -id redeployPatch2 -cancel