管理エージェントのノードの登録抹消

アプリケーション・サーバー・ノードを登録抹消して、管理エージェントに登録されていない状態にすることができます。 管理エージェント環境で不要になったノードがある場合、または、 アプリケーション・サーバー・ノード・プロファイルを削除 する場合は、ノードを登録抹消します。 管理エージェントからノードを登録抹消した後、 そのノードをスタンドアロンとして使用したり、そのノードを別の管理エージェントに登録したり、 アプリケーション・サーバー・ノード・プロファイルを削除したりすることができます。

事前処理

管理エージェント環境から削除するアプリケーション・サーバー・ノードは、管理エージェントに登録されている必要があります。 管理エージェントがまだ始動していない場合は、管理エージェントを始動します。

このタスクの概要

ノードを登録抹消するには、管理エージェントの bin ディレクトリーから deregisterNode コマンドを実行します。 ステップ 1 では、 deregisterNode コマンドの実行方法について説明します。

ノードを登録抹消すると、そのノード構成は保持されますが、管理エージェントに登録されていないとしてマークを付けられます。 登録抹消するノードに、ノードの登録前に管理コンソールまたは管理 Enterprise JavaBeans (EJB) アプリケーションがインストールされていた場合、それらのアプリケーションは再び使用可能になります。

アプリケーション・サーバー・ノード・プロファイルが壊れていたり使用不可の状態である場合に、deregisterNode コマンドを実行すると、NULL ポインター例外が戻されることがあります。 NULL ポインター例外が戻される場合、アプリケーション・サーバーの管理エージェントからの登録抹消処理は失敗しています。 エラー・ログに、ADMU0116I、ADMU0128I、ADMU0211I、ADMU0113E、ADMU1211I の各メッセージが書き込まれます。 ステップ 2 では、NULL ポインター例外がある場合に、ノードおよび関連するエンドポイントを除去する方法について説明します。

ノードが登録抹消される前にアプリケーション・サーバー・ノード・プロファイルが削除した場合は、 deregisterNode コマンドを実行しても効果はありません。 プロファイルがもう存在しないため、 管理エージェントはプロファイルを認識できません。 管理エージェント環境からノードおよび関連するエンドポイントを削除するには、 ステップ 2 を実行します。

手順

  1. deregisterNode コマンドを使用してノードを登録抹消します。

    登録抹消するノードが存在する場合は、以下のように登録抹消するノードのプロファイル・パスを指定して deregisterNode コマンドを実行します。

    deregisterNode -profilePath profile_root/profile_name

    例えば、管理エージェント環境から AppSrv02 プロファイルの登録を抹消するには、以下のコマンドを実行します。

    deregisterNode -profilePath profile_root/AppSrv02

    このコマンドのパラメーターについては、deregisterNode コマンドに関するトピック を参照してください。

  2. deregisterNode コマンドの実行によって NULL ポインター例外が発生した場合、またはノード・プロファイルが削除された場合は、登録済みノードおよび関連するエンドポイントを削除する wsadmin コマンドを実行します。
    1. コマンド行で、管理エージェントの bin ディレクトリーから wsadmin スクリプト・ツールを開始するコマンドを実行します。
      Jython スクリプト言語を使用する場合は、以下を入力します。
      wsadmin -lang jython
      Jacl スクリプト言語を使用する場合は、以下を入力します。
      wsadmin
    2. 除去するノードの名前が分からない場合は、 AdminConfig list コマンドを実行して、管理エージェントに登録されているノードをリストし、除去するノードをリストで見つけます。
      Jython の場合:
      print AdminConfig.list('ManagedNode')
      Jacl の場合:
      $AdminConfig list ManagedNode

      登録済みノードのリストが、次のように表示されます。

      nodeA(cells/myAACell01/managednodes/nodeA|managednode.xml#ManagedNode_1239121412703)
      nodeB(cells/myAACell01/managednodes/nodeB|managednode.xml#ManagedNode_1239121498500)
      

      このリストは、nodeAnodeBmyAACell01 管理 エージェントの登録済みノードであることを示しています。

    3. ノードを削除する wsadmin コマンドを実行します。

      nodeA を削除して変更を保存するには、以下のコマンドを続けて実行します。

      Jython の場合:
      mn = AdminConfig.getid('/ManagedNode:nodeA/')
      
      AdminConfig.remove(mn)
      
      AdminConfig.save()
      Jacl の場合:
      set mn [$AdminConfig getid /ManagedNode:nodeA/]
      
      $AdminConfig remove $mn
      
      $AdminConfig save
    4. ノード・プロファイルが登録された際にサブシステム用に生成されたエンドポイントを削除する wsadmin コマンドを実行します。

      nodeA のエンドポイントを削除するには、以下のコマンドを続けて実行します。 Jython の for コマンドおよび Jacl の foreach コマンドは、 編集の都合上複数行に示されていますが、1 行に入力してください。

      Jython の場合:
      import java.lang.System as System
      
      lineSeparator = System.getProperty("line.separator")
      
      neps = AdminConfig.list("NamedEndPoint").split(lineSeparator)
      
      for nep in neps:
        set name = AdminConfig.showAttribute(nep, "endPointName")
        if (name.endswith("nodeA") == 1):
           AdminConfig.remove(nep)
      
      AdminConfig.save()
      
      quit
      Jacl の場合:
      set neps [$AdminConfig list NamedEndPoint]
      
      foreach nep $neps {set name [$AdminConfig showAttribute $nep endPointName]; 
      if {[string last "nodeA" $name] != -1} {$AdminConfig remove $nep}}
      
      $AdminConfig save
      
      quit
    5. 管理エージェントを再始動します。

      adminagent という管理エージェントを再始動するには、 管理エージェント・プロファイルの bin ディレクトリーで、コマンド・プロンプトから 以下のコマンドを実行します。

      stopServer adminagent
      
      startServer adminagent
    6. ノードがもう管理エージェントに登録されていないことを確認します。

結果

アプリケーション・サーバー・ノードは管理エージェントにもう登録されていません。

次の作業

登録抹消したノードをスタンドアロンで使用したり、別の管理エージェントに登録したりすることができるようになります。 オプションで、manageprofiles コマンドを使用して、 アプリケーション・サーバー・プロファイルを削除します。