wsadmin スクリプトによる WAR クラス・ローダー・モードの変更

スクリプトと wsadmin ツールを使用して、アプリケーションの WAR クラス・ローダー・モードを変更できます。

始める前に

このタスクを開始する前に、wsadmin ツールが稼働している必要があります。 詳しくは、wsadmin スクリプト・クライアントの開始のトピックを参照してください。

このタスクについて

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

アプリケーションの WAR クラス・ローダー・モードを変更するには、 以下のステップを実行します。

手順

  1. deployment.xml 文書の参照を設定します。 以下に例を示します。
    • Jacl を使用:
      set deployments [$AdminConfig getid /Deployment:my_application/]

      出力例:

      application_name(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Deployment_1276887608391)
    • Jython を使用:
      deployments = AdminConfig.getid('/Deployment:my_application/')
    表 1. デプロイメント構成の値です。. 以下の表で、getid コマンドのエレメントについて説明します。
    エレメント 定義
    set Jacl コマンドです。
    deployments 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    getid AdminConfig コマンドです。
    Deployment 属性です。
    my_application profile_root/config/cells/cell_name/applications/ ディレクトリーにあるアプリケーションです。
  2. deployment.xml 文書内の deployedObject 属性への参照を設定し、それを deployedObject 変数に割り当てます。 以下に例を示します。
    • Jacl を使用:
      set deploymentObject [$AdminConfig showAttribute $deployments deployedObject]

      出力例:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)
    • Jython を使用:
      deploymentObject = AdminConfig.showAttribute(deployments, 'deployedObject')
    表 2. デプロイメント構成の値です。. 以下の表で、このコマンドのエレメントについて説明します。
    エレメント 定義
    set Jacl コマンドです。
    deploymentObject 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    showAttribute AdminConfig コマンドです。
    deployments deployment.xml 文書が割り当てられる変数です。
    deployedObject deployment.xml 文書内の属性です。
  3. deployedObject 属性のモジュールをリストし、そのリストを myModules 変数に設定します。 以下に例を示します。
    • Jacl を使用:
      set myModules [lindex [$AdminConfig showAttribute $deploymentObject modules] 0]

      出力例:

      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391) 
      (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)
    • Jython を使用:
      myModules = AdminConfig.showAttribute(deploymentObject, 'modules')
      myModules = myModules[1:len(myModules)-1].split(" ")
      print myModules

      出力例:

      ['(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#WebModuleDeployment_1276887608391)', 
      '(cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#EJBModuleDeployment_1276887608391)']
    表 3. デプロイメント構成の値です。. 以下の表で、このコマンドのエレメントについて説明します。
    エレメント 定義
    set Jacl コマンドです。
    myModules 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    showAttribute AdminConfig コマンドです。
    deployedObject deployment.xml 文書内の属性です。
    modules deployment.xml 文書内の属性です。
  4. Web モジュールを見つけ、クラス・ローダーのモードを設定します。 以下に例を示します。
    • Jacl を使用:
      foreach module $myModules {
           if {[regexp WebModuleDeployment $module] == 1} {
              $AdminConfig modify $module {{classloaderMode mode}}}}
    • Jython の使用
      for module in myModules:
           if (module.find('WebModuleDeployment')!= -1):
              AdminConfig.modify(module, [['classloaderMode', 'mode']])
    表 4. デプロイメント構成の値です。. 以下の表で、このコマンドのエレメントについて説明します。
    エレメント 定義
    foreach Jacl コマンドです。
    for Jython コマンドです。
    モジュール (module) 変更されるオブジェクトです。
    $ 変数名を値で置換する Jacl 演算子です。
    myModules 変数名です。
    regexp 正規表現を使用する関数で、以前のコマンド内での検索のために使用されます。
    module.find 正規表現を使用する関数で、以前のコマンド内での検索のために使用されます。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    modify AdminConfig コマンドです。
    classloaderMode deployment.xml 文書内の属性です。
    mode WAR モジュールに対して設定したいクラス・ローダー・モード値です。 モード値は PARENT_FIRST または PARENT_LAST のいずれかです。 詳しくは、クラス・ローダーに関する資料を参照してください。
  5. 構成を保存します。例を以下に示します。
    • Jacl を使用:
      $AdminConfig save
    • Jython を使用:
      AdminConfig.save()
  6. 属性値に対して行った変更を、showall コマンドを使用して確認します。 以下に例を示します。
    • Jacl を使用:
      $AdminConfig showall $module
    • Jython を使用:
      AdminConfig.showall(module)

      出力例:

      {applicationDeployment (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#ApplicationDeployment_1276887608391)}
      
      {classloader (cells/cell_name/applications/application_name.ear/deployments/
      application_name|deployment.xml#Classloader_1276887608392)}
      {classloaderMode mode}
      {configs {}}
      {deploymentId 1}
      {startingWeight 10000}
      {targetMappings {(cells/cell_name/applications/application_nameear/deployments/
      application_name|deployment.xml#DeploymentTargetMapping_1276887608392)}}
      {uri WAR_file_name.war}

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



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