wsadmin スクリプト・ツールによるインストール済みアプリケーションの更新

wsadmin ツールとスクリプトを使用して、アプリケーション・サーバー上にインストールされたアプリケーションを更新します。

このタスクについて

update コマンドにも updateinteractive コマンドにも、 いくつかのオプションがあります。 エンタープライズ・アーカイブ (EAR) ファイルでサポートされているオプションのリストは、 例えば次のように、options コマンドを使用しても取得できます。

Jacl を使用:
$AdminApp options
Jython を使用:
print AdminApp.options()

オプションを使用して、バッチ・モードで構成値を設定または更新することができます。設定または更新対象の構成オブジェクトを特定するために、読み取り専用フィールドの 値が、対応する構成オブジェクトの検索に使用されます。 読み取り専用フィールドのすべての値が、既存の構成オブジェクトと一致する必要があります。一致しない場合、コマンドは失敗します。

重要: アプリケーションの実行中に アプリケーション設定を変更すると、アプリケーションは再始動されます。 スタンドアロン・サーバーでは、 変更内容を保存してからアプリケーションが再始動されます。複数サーバー製品では、 変更内容を保存してからアプリケーションが再始動され、 アプリケーションがインストールされているノード上のファイルが同期されます。マルチサーバー製品で同期が発生する時期を制御するには、「コンソール設定」ページの「変更をノードと同期する」を選択解除します。

以下のステップを実行して、アプリケーションを更新します。

手順

  1. wsadmin スクリプト・ツールを開始します。
  2. 以下のオプションのいずれかを使用して、 インストール済みアプリケーションを更新します。
    • 次のコマンドは、デプロイ済みアプリケーション内にある単一ファイルを更新します。
      • Jacl を使用:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 file {-operation update -contents c:/apps/app1/my.xml
         -contenturi app1.jar/my.xml}
        [z/OS]
        $AdminApp update app1 file {-operation update -contents /apps/app1/my.xml
         -contenturi app1.jar/my.xml}
        [IBM i]
        $AdminApp update app1 file {-operation update -contents 
         /home/myProfile/apps/app1/my.xml -contenturi app1.jar/my.xml}
      • Jython ストリングを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'file', '[-operation update -contents c:/apps/app1/my.xml 
         -contenturi app1.jar/my.xml]')
        [z/OS]
        AdminApp.update('app1', 'file', '[-operation update -contents /apps/app1/my.xml 
         -contenturi app1.jar/my.xml]')
        [IBM i]
        AdminApp.update('app1', 'file', '[-operation update -contents /home/myProfile/ 
         apps/app1/my.xml -contenturi app1.jar/my.xml]')
      • Jython リストを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents',
         'c:/apps/app1/my.xml', '-contenturi', 'app1.jar/my.xml'])
        [z/OS]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents',
         '/apps/app1/my.xml',  '-contenturi', 'app1.jar/my.xml'])
        [IBM i]
        AdminApp.update('app1', 'file', ['-operation', 'update', '-contents',
         '/home/myProfile/apps/app1/my.xml', '-contenturi', 'app1.jar/my.xml'])
      表 1. update file コマンド・エレメント. update コマンドを実行し、インストール済みアプリケーション・ファイルを変更します。
      エレメント 定義
      $ 変数名を値で置換する Jacl 演算子です。
      AdminApp アプリケーション・オブジェクト管理をサポートするオブジェクトです。
      update AdminApp コマンドです。
      app1 更新するアプリケーションの名前です。
      file コンテンツ・タイプの値です。
      operation update コマンドのオプションです。
      update 操作オプションの値です。
      contents update コマンドのオプションです。
      /apps/app1/my.xml コンテンツ・オプションの値です。
      contenturi update コマンドのオプションです。
      app1.jar/my.xml contenturi オプションの値です。
    • モジュールが存在しない場合、次のコマンドは、 デプロイ済みアプリケーションにモジュールを追加します。 それ以外の場合は、既存のモジュールが更新されます。
      • Jacl を使用:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         c:/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [z/OS]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         /apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [IBM i]
        $AdminApp update app1 modulefile {-operation addupdate -contents 
         /home/myProfile/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
          -BindJndiForEJBNonMessageBinding {{"Increment EJB module"  Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
      • Jython ストリングを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents
         c:/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [z/OS]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents
         /apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [IBM i]
        AdminApp.update('app1', 'modulefile', '[-operation addupdate -contents
         /home/myProfile/apps/app1/Increment.jar -contenturi Increment.jar -nodeployejb
         -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
      • Jython リストを使用:

        [AIX Solaris HP-UX Linux Windows]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         'c:/apps/app1/Increment.jar', '-contenturi','Increment.jar' '-nodeployejb',
         `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
        [z/OS]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         '/apps/app1/Increment.jar', '-contenturi','Increment.jar' '-nodeployejb', `-BindJndiForEJBNonMessageBinding',
         bindJndiForEJBValue])
        [IBM i]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'modulefile', ['-operation', 'addupdate', '-contents', 
         '/home/myProfile/apps/app1/Increment.jar', '-contenturi','Increment.jar'
         '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
      表 2. update modulefile コマンド・エレメント. update コマンドを実行し、インストール済みモジュール・ファイルを変更します。
      エレメント 定義
      $ 変数名を値で置換する Jacl 演算子です。
      AdminApp アプリケーション・オブジェクト管理をサポートするオブジェクトです。
      update AdminApp コマンドです。
      app1 更新するアプリケーションの名前です。
      modulefile コンテンツ・タイプの値です。
      operation update コマンドのオプションです。
      addupdate 操作オプションの値です。
      contents update コマンドのオプションです。
      /apps/app1/Increment.jar コンテンツ・オプションの値です。
      contenturi update コマンドのオプションです。
      Increment.jar contenturi オプションの値です。
      nodeployejb update コマンドのオプションです。
      BindJndiForEJBNonMessageBinding update コマンドのオプションです。
      "Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc BindJndiForEJBNonMessageBinding オプションの値です。 このオプションの値は、ご使用のアプリケーション構成に定義されています。 このオプションの値を決定するには、次の Jython または Jacl コマンドを使用します。
      Jython を使用:
      AdminApp.view('myAppName')
      Jacl を使用:
      $AdminApp view myAppName
      bindJndiForEJBValue BindJndiForEJBNonMessageBinding オプションの値を含んでいる Jython 変数です。
    • 次のコマンドは、部分的アプリケーションを使用して、 デプロイ済みアプリケーションを更新します。
      • Jacl を使用:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 partialapp {-contents c:/apps/app1/app1Partial.zip}
        [z/OS]
        $AdminApp update app1 partialapp {-contents /apps/app1/app1Partial.zip}
        [IBM i]
        $AdminApp update app1 partialapp {-contents /home/myProfile/apps/app1/app1Partial.zip}
      • Jython ストリングを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'partialapp', '[-contents 
         c:/apps/app1/app1Partial.zip]')
        [z/OS]
        AdminApp.update('app1', 'partialapp', '[-contents /apps/app1/app1Partial.zip]')
        [IBM i]
        AdminApp.update('app1', 'partialapp', '[-contents 
         /home/myProfile/apps/app1/app1Partial.zip]')
      • Jython リストを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         'c:/apps/app1/app1Partial.zip'])
        [z/OS]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         '/apps/app1/app1Partial.zip'])
        [IBM i]
        AdminApp.update('app1', 'partialapp', ['-contents', 
         '/home/myProfile/apps/app1/app1Partial.zip'])
      表 3. update partialapp コマンド・エレメント. update コマンドを実行し、インストール済みアプリケーションの一部を変更します。
      エレメント 定義
      $ 変数名を値で置換する Jacl 演算子です。
      AdminApp アプリケーション・オブジェクト管理をサポートするオブジェクトです。
      update AdminApp コマンドです。
      app1 更新するアプリケーションの名前です。
      partialapp コンテンツ・タイプの値です。
      contents update コマンドのオプションです。
      /apps/app1/app1Partial.zip コンテンツ・オプションの値です。
    • デプロイされたアプリケーション全体を更新します。

      新規アクティベーション・スペックを使用または作成する代わりに、既存のリスナー・ポートを使用する場合は、EJB JAR バージョンが 2.1 より古いかどうかを確認します。 アプリケーションのデプロイに -usedefaultbindings オプションを指定すると、 アクティベーション・スペックがシステムによって自動的に作成および使用されます。アクティベーション・スペックが存在する場合は、 リスナー・ポートが無視され、代わりにアクティベーション・スペックが使用されます。 新規アクティベーション・スペックの代わりに定義済みのリスナー・ポートを使用して、2.1 以降のバージョンの EJB JAR でアプリケーションをデプロイするには、対象のプロファイルの properties ディレクトリーの wsadmin.properties ファイルで、 com.ibm.websphere.management.application.dfltbndng.mdb.preferexisting システム・プロパティーを true に設定します。

      • Jacl を使用:

        [AIX Solaris HP-UX Linux Windows]
        $AdminApp update app1 app {-operation update -contents c:/apps/app1/newApp1.jar 
         -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment
         Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [z/OS]
        $AdminApp update app1 app {-operation update -contents /apps/app1/newApp1.jar 
         -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module" Increment
         Increment.jar,META-INF/ejb-jar.xml Inc}}}
        [IBM i]
        $AdminApp update app1 app {-operation update -contents 
         /home/myProfile/apps/app1/newApp1.jar -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding {{"Increment EJB module"
         Increment Increment.jar,META-INF/ejb-jar.xml Inc}}}
      • Jython ストリングを使用:

        [AIX Solaris HP-UX Linux Windows]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         c:/apps/app1/newApp1.ear  -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment
         Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [z/OS]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         /apps/app1/newApp1.ear -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module" Increment
         Increment.jar,META-INF/ejb-jar.xml Inc]]]')
        [IBM i]
        AdminApp.update('app1', 'app', '[-operation update -contents 
         /home/myProfile/apps/app1/ newApp1.ear -usedefaultbindings -nodeployejb -BindJndiForEJBNonMessageBinding [["Increment EJB module"
         Increment Increment.jar,META-INF/ejb-jar.xml Inc]]]')
      • Jython リストを使用:

        [AIX Solaris HP-UX Linux Windows]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         'c:/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
         
        [z/OS]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         '/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue]) 
        [IBM i]
        bindJndiForEJBValue = [["Increment EJB module", "Increment", "Increment.jar,META-INF/ejb-jar.xml", 
        "Inc"]]  AdminApp.update('app1', 'app', ['-operation', 'update', '-contents', 
         '/apps/app1/NewApp1.ear', '-usedefaultbindings', '-nodeployejb', `-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue]) 
      表 4. update app コマンド・エレメント. update コマンドを実行し、インストール済みアプリケーションを変更します。
      エレメント 定義
      $ 変数名を値で置換する Jacl 演算子です。
      AdminApp アプリケーション・オブジェクト管理をサポートするオブジェクトです。
      update AdminApp コマンドです。
      app1 更新するアプリケーションの名前です。
      app コンテンツ・タイプの値です。
      operation update コマンドのオプションです。
      update 操作オプションの値です。
      contents update コマンドのオプションです。
      /apps/app1/newApp1.ear コンテンツ・オプションの値です。
      usedefaultbindings update コマンドのオプションです。
      nodeployejb update コマンドのオプションです。
      BindJndiForEJBNonMessageBinding update コマンドのオプションです。
      "Increment EJB module" Increment Increment.jar,META-INF/ejb-jar.xml Inc BindJndiForEJBNonMessageBinding オプションの値です。 このオプションの値は、ご使用のアプリケーション構成に定義されています。 このオプションの値を決定するには、次の Jython または Jacl コマンドを使用します。
      Jython を使用:
      AdminApp.view('myAppName')
      Jacl を使用:
      $AdminApp view myAppName
      bindJndiForEJBValue BindJndiForEJBNonMessageBinding オプションの値を含んでいる Jython 変数です。
  3. 構成の変更を保存します。
    以下のコマンド例を使用して、構成変更を保存します。
    AdminConfig.save()
  4. ノードを同期します (Network Deployment 環境の場合のみ)。
    AdminNodeManagement スクリプト・ライブラリーの syncActiveNode または syncNode スクリプトを使用して、 構成変更をノード (複数可) に伝搬します。
    • syncActiveNodes スクリプトを使用して、以下の例に示すように、変更をセルの各ノードに 伝搬します。
      AdminNodeManagement.syncActiveNodes()
    • syncNode スクリプトを使用して、以下の例に示すように、変更を特定のノードに 伝搬します。
      AdminNodeManagement.syncNode("myNode")

次のタスク

システムでアプリケーションが正常にアップデートされた場合、このタスクのステップは、正常終了メッセージを戻します。 しかし、システムが各バイナリー・ファイルを解凍する前に、ステップが正常に完了する場合があります。 例えば、Network Deployment 環境では、バイナリー・ファイルは、ノードの同期が完了した後で解凍されます。システムがすべてのバイナリー・ファイルを解凍するまで、アプリケーションを開始することはできません。 AdminApp オブジェクト用の isAppReady コマンドおよび getDeployStatus コマンドを使用して、アプリケーションを開始する前に、システムがバイナリー・ファイルを解凍したことを確認してください。

システムがアプリケーションを開始する準備ができている場合には、isAppReady コマンドは true の値を戻し、開始の準備ができていない場合は false の値を戻します。システムでアプリケーションを開始する準備ができていない場合、システムがアプリケーションのバイナリー・ファイルを展開している可能性があります。 アプリケーションを更新し、その後でそれを開始するスクリプトでは、以下の例に示すように、通常、isAppReady を true 値が戻るまで繰り返し呼び出してからそのアプリケーションの開始を試みます。

Jython を使用:
import time
result = AdminApp.isAppReady('application1')
while (result == "false"):
   ### Wait 5 seconds before checking again
   time.sleep(5)
   result = AdminApp.isAppReady('application1')
print("Starting application...")
Jacl を使用:
set result [$AdminApp isAppReady application1]
while {$result == "false"} {
   ### Wait 5 seconds before checking again
   after 5000
   set result [$AdminApp isAppReady application1]
}
puts "Starting application..."
以下の例に示すように、getDeployStatus コマンドを使用して、バイナリー・ファイルの展開状況についての追加情報を表示します。
AdminApp.getDeployStatus('app1')

app1DefaultApplication である場合に getDeployStatus コマンドを実行すると、以下のような DefaultApplication に関する状況情報が表示されます。

ADMA5071I: Distribution status check started for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown
ADMA5011I: The cleanup of the temp directory for application DefaultApplication is complete.
ADMA5072I: Distribution status check completed for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_updatingapp
ファイル名:txml_updatingapp.html