Oracle® Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ 11g リリース1 (10.3.3) B60988-01 |
|
前 |
次 |
次の項では、現在WebLogic Serverドメインにデプロイされているアプリケーションとモジュールの一般的な保守タスクを実行する方法について説明します。
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.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によるアプリケーションおよびモジュールのデプロイ」の指示にしたがって、デプロイメント・ファイル、対象、ステージング・モード、およびデプロイメント名を再び指定する必要があります。
共有J2EEライブラリまたはオプション・パッケージは、そのライブラリまたはパッケージを参照するすべてのアプリケーションがアンデプロイされるまでは、アンデプロイできません。アプリケーションまたはパッケージを参照するアプリケーションがない場合は、「アプリケーションまたはモジュールのアンデプロイ」の手順にしたがってアンデプロイしてください。
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
)を指定する必要があります。
デフォルトでは、WebLogic Serverは以下の順序でアプリケーションおよびリソースをデプロイします。
JDBCシステム・モジュール
JMSシステム・モジュール
J2EEライブラリおよびオプション・パッケージ
アプリケーションおよびスタンドアロン・モジュール
起動クラス
注意: WebLogic Serverセキュリティ・サービスは常に、サーバー・リソース、アプリケーション、および起動クラスがデプロイされる前に初期化されます。したがって、起動クラスを使用してカスタム・セキュリティ・プロバイダを構成することはできません。また、カスタム・セキュリティ・プロバイダの実装がJDBCなどのデプロイ済みサーバー・リソースに依存することもできません。 |
管理コンソールでAppDeploymentMBean DeploymentOrder
属性を設定して(または、AppDeploymentMBean
をプログラム的に使用して)、デプロイされたアプリケーションまたはスタンドアロンモジュールのデプロイメント順序を変更することができます。 DeploymentOrder
属性は、デプロイメントの(相対的な)ロード順序を制御します。DeploymentOrder
の値が小さいモジュールが、値の大きいモジュールよりも先にデプロイされます。デフォルトでは、各デプロイメント・ユニットはデプロイ順序の値が100に構成されます。デプロイ順序の値が同じデプロイメントは、デプロイメント名のアルファベット順にデプロイされます。すべての場合に、アプリケーションとスタンドアロン・モジュールは、WebLogic Serverインスタンスが依存するサブシステムを初期化した後でデプロイされます。
注意: weblogic.Deployerユーティリティを使用してアプリケーションおよびスタンドアロン・モジュールのロード順序を変更することはできません。 |
管理コンソールを使い、デプロイメントの順序を確認したり変更するには、Oracle WebLogic Server管理コンソール・ヘルプの「サーバー・デプロイメント順序の変更」の手順にしたがってください。
エンタープライズ・アプリケーションに含まれるモジュールは、application.xml
のデプロイメント記述子で宣言されている順序にデプロイされます。『Oracle WebLogic Serverアプリケーションの開発』のエンタープライズ・アプリケーション・デプロイメントの記述子要素に関する項を参照してください。
デフォルトでは、サーバーでJMSサービスとJDBCサービスが初期化され、アプリケーションおよびスタンドアロン・モジュールがデプロイされた後に、WebLogic Serverの起動クラスが実行されます。
JMSサービスとJDBCサービスが使用可能になった後、アプリケーションおよびモジュールがアクティブ化される前に起動タスクを実行する場合は、管理コンソールで[アプリケーション・アクティブ化の前に実行]オプションを選択します(またはStartupClassMBean
のLoadBeforeAppActivation
属性を「true」に設定します)。
JMSサービスとJDBCサービスが使用可能になる前に起動タスクを実行する場合は、管理コンソールで[アプリケーション・デプロイメントの前に実行]オプションを選択します(またはStartupClassMBean
のLoadBeforeAppDeployments
属性を「true」に設定します)。
管理コンソールでアプリケーション前実行|Run Before Applicationsかアプリケーション・アクティベーション前実行|Run Before Application Activationsを選択するには、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種類の異なるタイプの内部アプリケーションがあります。最初のタイプはユーザー・インタフェースを表示し、管理コンソール、UDDIエクスプローラおよびWebLogic Serverテスト・クライアントを含みます。第2のタイプはユーザー・インタフェースを表示せず、デプロイメントおよび管理ファイル配布用に、UDDIならびに内部サーブレットを含みます。
ユーザー・インタフェース付きのアプリケーションのために、WebLogic Serverはオンデマンドのデプロイメントが進行中であることを示すステータス・ページを表示します。このページは2秒ごとにリフレッシュされます。内部のアプリケーションがデプロイメントを完了するとき、内部のアプリケーションにリダイレクトされます。このステータス・ページは、各アプリケーションの最初のアクセスで表示されます。以後の呼び出しで、アプリケーションをデプロイせず、内部のアプリケーションに対して直接ユーザー・インタフェースへ進みます。
開発ドメインの場合、デフォルトでは内部アプリケーションがWebLogic Serverにより、オンデマンドでデプロイされます。本番モードドメインの場合、デフォルトでは内部アプリケーションがWebLogic Serverにより、サーバーのスタートアップとしてデプロイされます。デフォルトの動作は、Domain MBeanのInternalAppsDeployOnDemandEnabled
属性を構成を変更すれば制御できます。構成設定は、管理コンソールまたはWebLogic Scripting Tool (WLST)を使用すれば変更できます。
管理コンソールを使用してInternalAppsDeployOnDemandEnabled
属性を変更するには、次の手順を実行します。
「ロックして編集」ボタンで編集セッションを開始します。
ドメインを選択して、「構成」>「全般」ページを開きます。
「内部アプリケーションのオンデマンド・デプロイメントを有効化」チェック・ボックスの設定を変更します。
「Change<」をクリックし、さらに「変更のアクティブ化」をクリックして、次回のWebLogic Serverの起動で有効となるよう変更を保存します。