この章には次の項が含まれます:
WebLogic Serverでは、テストまたは保守目的でアプリケーションをオフラインにする方法が2つあります。
アプリケーションの停止によるクライアント・アクセスの制限 - アプリケーションでクライアント・リクエストを処理できないようにしますが、WebLogic Serverドメインからデプロイメントは削除されません。アプリケーションを停止するとデプロイメントは管理モードになり、構成済の管理チャネルを使用して内部的なテストを実行できるようになります。
アプリケーションまたはモジュールのアンデプロイ - アプリケーションでクライアント・リクエストを処理できないようにし、WebLogic Serverで生成したデプロイメント・ファイルをドメインから削除します。
「本番環境へのアプリケーションの配布」で説明するように、アプリケーションを配布して管理モードで起動すると、アプリケーションへのアクセスは構成済の管理チャネルに制限されます。実行中のアプリケーションでクライアント・リクエストの処理を停止して、そのアプリケーションを管理モードにすることもできます。本番環境では、報告された問題を確認するためにアプリケーションを停止したり、定期的な保守を行うためにアプリケーションを外部クライアントの処理から分離したりできます。
実行中のアプリケーションを管理モードにするには、-stop
コマンドを使用します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -stop -adminmode
デフォルトでは、WebLogic Serverは、保留中のHTTPセッションや進行中の作業を考慮せずに、アプリケーションをただちに停止します。アプリケーションでクライアント・リクエストの処理を停止して、そのアプリケーションを管理モードにする前に、保留中のHTTPセッションが作業を完了するのを待機する場合は、-graceful
オプションを追加します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -stop -adminmode -graceful
注意:
-appversion
オプションでアプリケーションのバージョンを明示的に指定しない場合、-stop
コマンドはアプリケーションのアクティブなバージョンのみを停止します。停止する他のアプリケーション・バージョン(または、アクティブなバージョンのかわりに停止するアプリケーション・バージョン)がある場合は、-appversion
オプションで指定する必要があります。
以前に停止したアプリケーションを再起動して外部クライアントから使用できるようにするには、-start
コマンドを使用してデプロイメント名を指定します。停止していたアプリケーションを使用可能にするために再デプロイする必要はありません。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -start
コマンドの詳細については、「起動」を参照してください
新しいアプリケーションまたはスタンドアロン・モジュールをドメイン内のサーバーにデプロイした後、デプロイメント名は選択したデプロイメント・ファイルに関連付けられたままになります。すべてのサーバー上でデプロイメントを停止した後でもファイルは、WebLogic Server管理コンソールまたはweblogic.Deployer
ユーティリティを使用した再デプロイメントが有効な状態になっています。
デプロイメント名および関連付けられたデプロイメント・ファイルをドメインから削除するには、アプリケーションまたはスタンドアロン・モジュールを明示的にアンデプロイする必要があります。weblogic.Deployer
を使用してデプロイメント・ユニットをドメインからアンデプロイするには、-undeploy
コマンドを指定します。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -undeploy
注意:
-targets
および-submoduletargets
フラグを指定なしで、-undeploy
コマンドを使用すると、すべてのWebLogic Serverインスタンスからアプリケーションまたはスタンドアロン・モジュールが完全に削除され、すべてのJMSサブモジュール・リソースのターゲット指定が解除されます。
デフォルトでは、WebLogic Serverは現在のクライアントや進行中の作業を中断して、アプリケーションをただちに停止してアンデプロイします。本番環境では、現在のHTTPクライアントが作業を完了できるように、「正常に(gracefully)」アンデプロイすることもできます。
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mymodule -undeploy -graceful
デプロイメント・ユニットをアンデプロイしても、デプロイメントに使用した元のソース・ファイルは削除されません。ドメインからデプロイメントの構成が削除されるだけです。また、WebLogic Serverがデプロイメント時に作成したデプロイメント・ファイルも削除されます(たとえば、stageデプロイメント・モードでコピーされたファイルや、管理サーバーにアップロードされたファイルなど)。
アンデプロイ後にデプロイメント・ユニットを再デプロイする必要がある場合は、「weblogic.Deployerによるアプリケーションおよびモジュールのデプロイ」の指示にしたがって、デプロイメント・ファイル、ターゲット、ステージング・モード、およびデプロイメント名を再び指定する必要があります。
共有Java EEライブラリまたはオプション・パッケージは、そのライブラリまたはパッケージを参照するすべてのアプリケーションがアンデプロイされるまでは、アンデプロイできません。アプリケーションまたはパッケージを参照するアプリケーションがない場合は、「アプリケーションまたはモジュールのアンデプロイ」の手順にしたがってアンデプロイしてください。
WebLogic Serverのモジュール・レベルのターゲット指定を利用すると、すでにデプロイされている他のモジュールを再デプロイしなくても、新しいエンタープライズ・アプリケーション・モジュールを追加およびデプロイできます。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
)を指定する必要があります。
複数のアプリケーションのデプロイメントまたは複数のモジュールを含む単一アプリケーションのデプロイメントが必要なユース・ケースの場合、パラレル・デプロイメントによって、サーバーの起動など、起動時間と実行後デプロイメント時間が改善されます。
マルチテナント環境の場合、パラレル・デプロイメントによって、複数のパーティション間での複数のアプリケーションのデプロイメントが改善されます。詳細は、『Oracle Fusion Middleware WebLogic Server MTの使用』のマルチテナント環境でのパラレル・デプロイメントの有効化に関する項を参照してください。
アプリケーションとリソースをデプロイする場合、それらは、まずデプロイメント全体のタイプに基づきセットにソートされます。次に、「サーバー起動時のデプロイメント順序の変更」で説明する順序に従い、各セットはデプロイメント・プロセスを開始します。
一連のアプリケーション内で、デプロイメント順序番号が同じアプリケーションを相互に並行してデプロイできるため、パフォーマンスが向上します。
注意:
デフォルトで、WebLogic Server 12.2.1以降で作成または更新されたWebLogicドメインでは、アプリケーションのパラレル・デプロイメントは有効化されています。(モジュールのパラレル・デプロイメントはデフォルトで無効化されています。)
アップグレードされていないが、WebLogic Server 12.2.1以降で稼働するように構成されたWebLogic Serverの以前のリリースを使用して作成されたWebLogicドメインでは、アプリケーションのパラレル・デプロイメントは無効化されています。詳細は、『Oracle WebLogic Serverのアップグレード』のパラレル・デプロイメントに関する項を参照してください。
次の項では、アプリケーション・アーカイブ内のアプリケーションおよびモジュールのパラレル・デプロイメントを有効にする方法について説明します。
アプリケーションのパラレル・デプロイメントを有効にするには、DomainMBean
のParallelDeployApplications
属性を構成します。この属性が有効な場合、デプロイメント順序が同じアプリケーションは相互に並行してデプロイされるため、パフォーマンスが向上します。ParallelDeployApplications
属性はデフォルトで有効化されています。
リソースとアプリケーションの全体のデプロイ順序は変更されないため、通常のデプロイ順序でアプリケーションよりも優先されるデプロイメント・タイプ(JDBCシステム・リソースやJava EEライブラリなど)が、アプリケーションがデプロイされる前に完全にデプロイされることが保証されます。
注意:
相互依存のないアプリケーションのみを並行してデプロイする必要があります。あるアプリケーションが他のアプリケーションに依存する場合、このアプリケーションの依存関係順序は、依存する対象のアプリケーションよりも高くなる必要があります。そうでない場合、その依存する対象のアプリケーションのデプロイメント前に依存アプリケーションでデプロイが試行されると、パラレルのアクティブ化で依存の失敗が発生する可能性があります。
セクションのタイトル
(オプション) 別のセクション見出しが必要な場合は、セクションを使用して関連コンテンツを追加、整理します。
例9-1 タイトルの例
(オプション)概念トピックに例を含める場合は、セクションを使用して関連する例を追加および構成します。
1つのアプリケーション・アーカイブ内のモジュールを相互に並行してデプロイするように構成できます。ドメイン内のすべてのアプリケーションのモジュールのパラレル・デプロイメントを有効にするには、DomainMBean
のParallelDeployApplicationModules
属性を構成します。ParallelDeployApplicationModules
属性はデフォルトで無効です。
アプリケーションごとにモジュールの並行デプロイを有効化するには、AppDeploymentMBean
のParallelDeployModules
属性を構成します。この属性を設定すると、個々のアプリケーションのドメイン値がオーバーライドされます。
注意:
交差依存のないモジュールが含まれるアプリケーションのモジュールのパラレル・デプロイメントのみ有効にすることができます。モジュールが他のモジュールに依存する場合、その依存する対象のモジュールのデプロイメント前に依存モジュールでデプロイが試行されると、パラレル・デプロイメントで依存の失敗が発生する可能性があります。
注意:
アプリケーションについてJava EEの<initialize-in-order>要素を指定してtrueに設定する場合、モジュールのパラレル・デプロイメントが有効か無効かに関係なく、アプリケーション内のモジュールは、application.xmlで定義されている順序に従いデプロイされます。
デフォルトでは、WebLogic Serverは以下の順序でアプリケーションおよびリソースをデプロイします。
キャッシュ
内部アプリケーション
JDBCシステム・リソース
デプロイメント・ハンドラ
JMSシステム・リソース
リソース依存デプロイメント・ハンドラ
起動クラス
WLDFシステム・リソース
Java EEライブラリおよびオプション・パッケージ
アプリケーションおよびスタンドアロン・モジュール
Coherenceクラスタ・システム・リソース
カスタム・システム・リソース
注意:
WebLogic Serverセキュリティ・サービスは常に、サーバー・リソース、アプリケーション、および起動クラスがデプロイされる前に初期化されます。したがって、起動クラスを使用してカスタム・セキュリティ・プロバイダを構成することはできません。また、カスタム・セキュリティ・プロバイダの実装がJDBCなどのデプロイ済みサーバー・リソースに依存することもできません。
WebLogic Server管理コンソールでAppDeploymentMBean DeploymentOrder
属性を設定して(または、AppDeploymentMBean
をプログラム的に使用して)、デプロイされたアプリケーションまたはスタンドアロン・モジュールのデプロイメント順序を変更することができます。DeploymentOrder
属性は、デプロイメントの(相対的な)ロード順序を制御します。DeploymentOrder
の値が小さいモジュールが、値の大きいモジュールよりも先にデプロイされます。デフォルトでは、各デプロイメント・ユニットのデプロイメント順序の値は100に構成されます。デプロイメント順序の値が同じデプロイメントは、デプロイメント名のアルファベット順にデプロイされます。すべての場合に、アプリケーションとスタンドアロン・モジュールは、WebLogic Serverインスタンスが依存するサブシステムを初期化した後でデプロイされます。
注意:
weblogic.Deployerユーティリティを使用してアプリケーションおよびスタンドアロン・モジュールのロード順序を変更することはできません。
WebLogic Server管理コンソールを使用してデプロイメントのデプロイ順を確認または変更するには、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのサーバーのデプロイ順の変更に関する項の手順に従ってください。
エンタープライズ・アプリケーションに含まれているモジュールは、application.xml
デプロイメント記述子で宣言されている順序でデプロイされます。『Oracle WebLogic Serverアプリケーションの開発』のエンタープライズ・アプリケーションのデプロイメント記述子の要素に関する項を参照してください。
デフォルトでは、サーバーでJMSサービスとJDBCサービスが初期化され、アプリケーションおよびスタンドアロン・モジュールがデプロイされた後に、WebLogic Serverの起動クラスが実行されます。
JMSサービスとJDBCサービスが使用可能になった後、アプリケーションおよびモジュールがアクティブ化される前に起動タスクを実行する場合は、WebLogic Server管理コンソールで「アプリケーション・デプロイメントの前に実行」オプションを選択します(またはStartupClassMBean
のLoadBeforeAppActivation
属性を「true」に設定します)。
JMSサービスとJDBCサービスが使用可能になる前に起動タスクを実行する場合は、WebLogic Server管理コンソールで「アプリケーション・アクティブ化の前に実行」オプションを選択します(またはStartupClassMBean
のLoadBeforeAppDeployments
属性を「true」に設定します)。
WebLogic Server管理コンソールで「アプリケーションの前に実行」または「アプリケーション・アクティブ化の前に実行」を選択するには、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの起動クラスの構成に関する項を参照してください。
次の図は、WebLogic Serverでいつ起動クラスが実行されるかを簡単に示しています。
詳細は、StartupClassMBean
のJavadocsの説明を参照してください。
WebLogic Serverドメインでアプリケーションまたはスタンドアロン・モジュールをデプロイした後、新しいWebLogic Serverインスタンスを追加したり、既存のサーバー・インスタンスを削除したりして、ターゲット・サーバー・リストを変更できます。ターゲット・サーバーを削除した場合、ターゲット・リストだけが更新されます。デプロイメント・ユニットは、明示的にアンデプロイするまで、削除したサーバーにデプロイされた状態のままです。同様に、新しいターゲット・サーバーを追加した場合は、デプロイメント・ユニットを新しいサーバーに明示的にデプロイする必要があります。
weblogic.Deployer
を使用して新しいサーバーをターゲット・リストに追加するには、-deploy
コマンドでターゲット・サーバーの新規リストを指定します。例:
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic
-password weblogic -name mydeploymentname -deploy
-targets server1, newserver
展開されたアーカイブ・ディレクトリを使用して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
という名前の展開されたアーカイブ・ディレクトリにあります。
注意:
-delete_files
オプションでは、指定されたすべてのファイル(ディレクトリを指定してディレクトリ内のファイルを指定していない場合は、指定されたディレクトリ内のすべてのファイル)が削除されるため、delete_filesオプションは慎重に使用し、本番環境ではdelete_files
オプションを使用しないことをお薦めします。
WebLogic Serverのデプロイメント・システムはデプロイメント・タスクに一意のIDを自動的に割り当てるので、デプロイメント・タスクの進捗状況を追跡して管理できます。weblogic.Deployer
では、デプロイメント・コマンドで使用するために独自のタスクIDを割り当てたり、長時間かかるデプロイメント・タスクのモニターや取消しを行えます。
たとえば、以下のコマンドでは、redeployPatch2
というタスク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
起動時に、多くの内部アプリケーションがデプロイされます。これらの内部アプリケーションは、メモリーを消費し、デプロイメント時にCPU時間を必要とします。その結果、WebLogic Serverの起動時間と基本メモリーの占有量が増えてしまいます。これらの多くの内部アプリケーションはすべてのユーザーが必要なわけではないため、WebLogic Serverは、これらのアプリケーションをサーバーの起動時に常にデプロイするのではなく、最初のアクセス時に(必要なときに)待機およびデプロイするように更新されました。これにより、起動時間が短縮され、メモリー占有量が少なくなります。
2種類の異なるタイプの内部アプリケーションがあります。最初のタイプはユーザー・インタフェースを表示し、WebLogic Server管理コンソール、UDDIエクスプローラおよびWebLogic Serverテスト・クライアントを含みます。第2のタイプはユーザー・インタフェースを表示せず、デプロイメントおよび管理ファイル配布用に、UDDIならびに内部サーブレットを含みます。
ユーザー・インタフェース付きのアプリケーションのために、WebLogic Serverはオンデマンドのデプロイメントが進行中であることを示すステータス・ページを表示します。このページは2秒ごとにリフレッシュされます。内部のアプリケーションがデプロイメントを完了するとき、内部のアプリケーションにリダイレクトされます。このステータス・ページは、各アプリケーションの最初のアクセスで表示されます。以後の呼び出しで、アプリケーションをデプロイせず、内部のアプリケーションに対して直接ユーザー・インタフェースへ進みます。
開発ドメインの場合、デフォルトでは内部アプリケーションがWebLogic Serverにより、オンデマンドでデプロイされます。本番モードドメインの場合、デフォルトでは内部アプリケーションがWebLogic Serverにより、サーバーのスタートアップとしてデプロイされます。デフォルトの動作は、Domain MBeanのInternalAppsDeployOnDemandEnabled
属性を構成を変更すれば制御できます。構成設定は、WebLogic Server管理コンソールまたはWebLogic Scripting Tool (WLST)を使用すれば変更できます。
WebLogic Server管理コンソールを使用してInternalAppsDeployOnDemandEnabled
属性を変更するには、次の手順を実行します。