ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ
11g リリース1 (10.3.6)
B60988-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

9 デプロイされたアプリケーションの管理

次の項では、現在WebLogic Serverドメインにデプロイされているアプリケーションとモジュールの一般的な保守タスクを実行する方法について説明します。

本番アプリケーションのオフライン

WebLogic Serverでは、テストまたは保守目的でアプリケーションをオフラインにする方法が2つあります。

アプリケーションの停止によるクライアント・アクセスの制限

「本番環境へのアプリケーションの配布」で説明するように、アプリケーションを配布して管理モードで起動すると、アプリケーションへのアクセスは構成済みの管理チャネルに制限されます。実行中のアプリケーションでクライアント・リクエストの処理を停止して、そのアプリケーションを管理モードにすることもできます。本番環境では、報告された問題を確認するためにアプリケーションを停止したり、定期的な保守を行うためにアプリケーションを外部クライアントの処理から分離したりできます。

実行中のアプリケーションを管理モードにするには、-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によるアプリケーションおよびモジュールのデプロイ」の指示にしたがって、デプロイメント・ファイル、ターゲット、ステージング・モード、およびデプロイメント名を再び指定する必要があります。

共有ライブラリおよびパッケージのアンデプロイ

共有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)を指定する必要があります。

サーバー起動時のデプロイメント順の変更

デフォルトでは、WebLogic Serverは以下の順序でアプリケーションおよびリソースをデプロイします。

  1. JDBCシステム・モジュール

  2. JMSシステム・モジュール

  3. Java EEライブラリおよびオプション・パッケージ

  4. アプリケーションおよびスタンドアロン・モジュール

  5. 起動クラス


    注意:

    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サービスが使用可能になった後、アプリケーションおよびモジュールがアクティブ化される前に起動タスクを実行する場合は、管理コンソールで[アプリケーション・デプロイメントの前に実行]オプションを選択します(またはStartupClassMBeanLoadBeforeAppActivation属性を「true」に設定します)。

JMSサービスとJDBCサービスが使用可能になる前に起動タスクを実行する場合は、管理コンソールで[アプリケーション・デプロイメントの前に実行]オプションを選択します(またはStartupClassMBeanLoadBeforeAppDeployments属性を「true」に設定します)。

管理コンソールで「アプリケーションの前に実行」または「アプリケーション・アクティブ化の前に実行」を選択するには、Oracle WebLogic Server管理コンソール・ヘルプ「スタートアップ・クラスの構成」を参照してください。

次の図は、WebLogic Serverでいつ起動クラスが実行されるかを簡単に示しています。

図9-1 起動クラスの実行

この図は、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アプリケーションをデプロイする場合、ファイルをリフレッシュするか(「デプロイされたアプリケーションにおける静的ファイルの更新」を参照)、デプロイメントからファイルを削除することによって、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属性を変更するには、次の手順を実行します。

  1. 「ロックして編集」ボタンで編集セッションを開始します。

  2. ドメインを選択して、「構成」>「全般」ページを開きます。

  3. 「内部アプリケーションのオンデマンド・デプロイメントを有効化」チェック・ボックスの設定を変更します。

  4. 「変更」をクリックし、さらに「変更のアクティブ化」をクリックして、次回のWebLogic Serverの再起動で有効となるよう変更を保存します。

WLSTを使用したオンデマンド・デプロイメントの構成

WLSTを使用してInternalAppsDeployOnDemandEnabled属性を変更するには、次の手順を実行します。

  connect()
  edit()
  startEdit()
  cmo.setInternalAppsDeployOnDemandEnabled(false)
  activate()