[AIX Solaris HP-UX Linux Windows][IBM i]

wsadmin スクリプトによるデプロイされたターゲットへのアプリケーションのロードの使用不可化

AdminConfig オブジェクトとスクリプトを使用して、デプロイされた ターゲットへのアプリケーションのロードを使用不可にできます。

このタスクについて

以下の例では、AdminConfig オブジェクトを使用して、デプロイされた ターゲットへのアプリケーションのロードを使用不可にしています。

手順

  1. wsadmin スクリプト・ツールを開始します。
  2. アプリケーションのデプロイメント・オブジェクトを取得して、それを deployments 変数に割り当てます。例えば、次のようになります。
    • Jacl を使用:
      set deployments [$AdminConfig getid /Deployment:myApp/]
    • Jython を使用:
      deployments = AdminConfig.getid("/Deployment:myApp/")
    表 1. getid Deployment コマンド・エレメント. getid コマンドを実行して、デプロイメント・オブジェクトを取得します。
    エレメント 説明
    set Jacl コマンドです。
    deployments 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere® Application Server の構成を表すオブジェクトです。
    getid AdminConfig コマンドです。
    Deployment 属性です。
    myApp アプリケーション名の値です。
    トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): Jython スクリプト言語を使用している場合は、アプリケーション名内のスペース文字に関する注を必ずお読みください。gotcha
    出力例:
    myApp(cells/mycell/applications/myApp.ear/deployments/myApp|deployment.xml#Deployment_1)
  3. アプリケーション内でのターゲット・マッピングを取得して、targetMappings 変数に割り当てます。例えば、次のようになります。
    • Jacl を使用:
      set deploymentObj1 [$AdminConfig showAttribute $deployments deployedObject]
      
      set targetMap1 [lindex [$AdminConfig showAttribute $deploymentObj1 targetMappings] 0]
      出力例:
      (cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)
    • Jython を使用:
      deploymentObj1 = AdminConfig.showAttribute(deployments, 'deployedObject')
      
      targetMap1 = AdminConfig.showAttribute(deploymentObj1, 'targetMappings')
      
      targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")
      
      print targetMap1
      トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): スクリプトを使用してアプリケーション内のターゲット・マッピングを取 得し、次に、それらの値を targetMappings 変数に割り当てようとするときには、アプリケーションの名前にスペースが入る場合やブランクになる場合に注意する必要があります。 このような場合、Jython の例で示しているように、ブランクやスペース文字が現れる位置を補正する必要があります。この調整を行わないと、エラーが発生する場合があります。以下のシナリオを考えてみます。
      • deployment.xml ファイル内に DeploymentTargetMapping 値がただ 1 つだけ存在する場合は、targetMappings 値をスペースまたは line.separator エントリーで分割することができます。 line.separator エントリーの構文は、「IVT Application」のように、アプリケーション名がスペースを含むときに機能します。 以下に例を示します。
        targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ")   
        または
        targetMap1 = 
          targetMap1[1:len(targetMap1)-1].split(java.lang.System.getProperty("line.separator"))
      • deployment.xml ファイル内に DeploymentTargetMapping の値が複数存在する場合は、targetMappings の値をスペースで区切ります。 ただし、アプリケーション名またはデプロイメント・ターゲット・ストリングにスペース文字が入っているときには、必要に応じて "¥"" および " " も使用しなければなりません。 以下に例を示します。
        targetMap1 = targetMap1[1:len(targetMap1)-1].split(" ") 
      gotcha
      出力例:
      ['(cells/mycell/applications/ivtApp.ear/deployments/ivtApp|deployment.xml#DeploymentTargetMapping_1)']
    表 2. showAttribute コマンド・エレメント. showAttribute コマンドを実行して、ターゲット・マッピングを割り当てます。
    エレメント 説明
    set Jacl コマンドです。
    deploymentObj1 変数名です。
    $ 変数名を値で置換する Jacl 演算子です。
    AdminConfig WebSphere Application Server の構成を表すオブジェクトです。
    showAttribute AdminConfig コマンドです。
    deployments ステップ 1 で指定したデプロイメント・オブジェクトの ID を評価します。
    deployedObject 属性です。
    targetMap1 変数名です。
    targetMappings 属性です。
    lindex Jacl コマンドです。
    print Jython コマンドです。
  4. 以下のように、デプロイされた各ターゲットへのアプリケーショ ンのロードを使用不能にします。
    • Jacl を使用:
      foreach tm $targetMap1 {$AdminConfig modify $tm {{enable false}}}
    • Jython を使用:
      for targetMapping in targetMap1: AdminConfig.modify(targetMapping, [["enable", "false"]])
  5. 構成の変更を保存します。
    以下のコマンド例を使用して、構成変更を保存します。
    AdminConfig.save()
  6. ノードを同期します (Network Deployment 環境の場合のみ)。
    AdminNodeManagement スクリプト・ライブラリーの syncActiveNode または syncNode スクリプトを使用して、 構成変更をノード (複数可) に伝搬します。
    • syncActiveNodes スクリプトを使用して、以下の例に示すように、変更をセルの各ノードに 伝搬します。
      AdminNodeManagement.syncActiveNodes()
    • syncNode スクリプトを使用して、以下の例に示すように、変更を特定のノードに 伝搬します。
      AdminNodeManagement.syncNode("myNode")

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



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