Liberty 集合からのメンバーの削除

集合ユーティリティーの remove コマンドを使用して、集合からメンバー・サーバーを削除できます。 remove コマンドは、集合からメンバー・サーバーを登録抹消し、その集合に関するメンバー・ファイルを削除します。 remove コマンドにより、メンバー・サーバーを削除したり、メンバー server.xml ファイルを変更することはできません。

このタスクについて

集合の管理者は、join コマンドを使用して集合にサーバーを追加したり、 メンバー・サーバーが不要となった後、remove コマンドを使用して集合からサーバーを削除したりできます。

remove コマンドでは、存在しないメンバー・サーバーを削除できます。 例えば、以下のような状況で、このコマンドを使用して、集合コントローラーからメンバーに関する情報を削除できます。

  • メンバーが誤ってまたは意図的に削除された場合
  • デプロイメントが失敗してメンバーが部分的に作成されたか、メンバー構成にエラーがあるにも関わらず join コマンドが完了した場合

また、remove コマンドの実行後、メンバーによって割り振られたポート値がリリースされ、再使用できるようになります。

メンバー・ホストの wlp/usr ユーザー・ディレクトリー全体が削除された場合、 JConsole などのクライアントを使用して、メンバー・サーバーへの参照を集合から削除する必要がある場合があります。

手順

  1. メンバー・サーバーを停止するか、または、集合に関連するエレメントをメンバー・サーバー構成から削除します。
    メンバー・サーバーを停止するには、コマンド行で server stop コマンドを実行します。
    wlp/bin/server stop memberServerName
    メンバー・サーバーを実行したままにする場合、メンバー・サーバーの server.xml ファイルから以下のエレメントのうち任意のエレメントを削除します。
    <featureManager>
       <feature>collectiveController-1.0</feature>
       <feature>collectiveMember-1.0</feature>
    </featureManager><collectiveMember ... />
    <hostAuthInfo ... />
  2. コマンド行を使用して、メンバー・サーバーを削除します。
    1. コマンド行で collective remove コマンドを実行します。
      wlp/bin/collective remove memberServerName --host=collectiveControllerHost --port=collectiveControllerHTTPSPort --user=collectiveControllerAdminUserID --password=collectiveControllerAdminUserPassword

      [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

      wlp/bin/collective remove memberServerName --controller=collectiveControllerAdminUserID:collectiveControllerAdminUserPassword@collectiveControllerHost:collectiveControllerHTTPSPort

      例えば、ポート 1090 を使用し、 集合コントローラー管理ユーザー Admin1、パスワード Admin1pwd、メンバー・サーバー member1 が設定された、ホスト machineA 上の集合コントローラーの場合、以下のコマンドを実行して、メンバー・サーバーを削除します。

      wlp/bin/collective remove member1 --host=machineA --port=1090 --user=Admin1 --password=Admin1pwd

      [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

      wlp/bin/collective remove member1 --controller=Admin1:Admin1pwd@machineA:1090

      この例には、remove コマンドに必要な以下の設定が含まれます。

      --host=collectiveControllerHost
      host 設定では、集合コントローラー・サーバーが存在するホストの名前を指定します。 集合コントローラー・サーバーの server.xml ファイル内の defaultHostName 変数で、ホスト名は設定されます。
      --port=collectiveControllerHTTPSPort
      port 設定では、ターゲット集合コントローラーの HTTPS ポート番号を指定します。 集合コントローラー・サーバーの server.xml ファイル内の httpsPort 変数で、ポート番号は設定されます。
      --user=collectiveControllerAdminUserID
      user 設定では、ターゲット集合コントローラーの管理ユーザーを指定します。 集合コントローラー・サーバーの server.xml ファイル内の userName 変数で、ユーザー名は設定されます。
      --password=collectiveControllerAdminUserPassword
      password 設定では、ターゲット集合コントローラーの管理ユーザーのパスワードを指定します。 集合コントローラー・サーバーの server.xml ファイル内の userPassword 変数で、ユーザー・パスワードは設定されます。 パスワードが定義されていない場合、--user 設定で指定した管理ユーザーのパスワードが求められます。
    2. 証明書チェーンの受け入れを要求するプロンプトが出されたら、y (yes) を入力します。

      remove コマンドで wlp/usr/servers/member1/resources/collective ディレクトリーを削除します。 以下のようなメッセージが出力されます。

      サーバー member1 を正常に登録抹消しました。
      
      サーバーから、集合のリソースの削除を試行しています...
      集合メンバーシップのリソースが正常に削除されました。
      
      server.xml を更新して、次のエレメントを削除してください。
      
          <featureManager>
              <feature>collectiveController-1.0</feature>
              <feature>collectiveMember-1.0</feature>
          </featureManager>    <collectiveMember ... />
          <hostAuthInfo ... />
    3. サーバーを維持する場合は、メッセージ内のすべての手順を完了してください。 例えば、削除されたメンバー・サーバーの server.xml ファイルから、メッセージにリストされたエレメントを削除します。

      サーバーが不要となった場合は、サーバー・ディレクトリーを削除します。 例えば、wlp/usr/servers/member1 を削除します。

  3. remove コマンドを実行する前にメンバー・ホストで wlp/usr ユーザー・ディレクトリー全体が削除された場合は、 JConsole などのクライアントで delete 操作を使用して、削除されたメンバー・サーバーへの参照を集合から削除します。
    1. JConsole を集合コントローラー・プロセスに接続します。
      1. 集合コントローラーが稼働していることを確認します。
        wlp/bin/server status collective_controller_name
      2. JConsole が稼働していなければ開始します。 Windows では、Java_installation¥bin¥jconsole.exe を実行します。
      3. 集合コントローラーのプロセスを選択します。

      JConsole で REST Connector を使用して、基本の HTTPS 接続を通して MBean にリモート・アクセスするには、 『Creating remote JMX connections in Liberty』を参照してください。

    2. JConsole で CollectiveRepository の getDescendantData 操作を実行し、削除したメンバー・サーバーへの参照があるか確認します。
      1. JConsole の「MBeans」タブで、 CollectiveRepository の getDescendantData 操作を選択し、集合が存在するノードの名前を指定します。 ノード名は、/sys.was.collectives/local/hosts/host_name などになります (例えば、/sys.was.collectives/local/hosts/machineA など)。
      2. データのリストで、削除したメンバー・サーバーへの参照を探します。 削除したメンバー・サーバーの名前がデータのリスト内にない場合、サーバーは、集合のメンバーではなくなっています。 メンバーは、集合から正常に削除されています。

        一方、メンバーへの参照がデータに存在する場合は、次のステップに進んでください。 delete 操作を実行して、メンバーを削除する必要があります。

    3. JConsole で CollectiveRepository の delete 操作を実行し、残りの削除済みメンバー・サーバーの参照を集合から削除します。
      1. JConsole の 「MBeans」タブで、 CollectiveRepository の delete 操作を選択します。
      2. nodeName には、削除するメンバー・サーバーの完全修飾ノード名を指定します。 この操作により、メンバー・サーバー・ノードとその下の全ノードが削除されます。

        集合コントローラーがホスト machineA にあり、メンバー・パスが Windows コンピューター上の C:¥wlp¥usr¥servers¥member1 である場合、ローカル・プロセス上のノード名は次のようなものになります。

        /sys.was.collectives/local/hosts/machineA/userdirs/C%3A%2Fwlp%2Fusr/servers/member1
      3. 「削除」をクリックします。
    4. サーバーが集合のメンバーではないことを確認するために、 ステップ 2b を繰り返します。 JConsole で CollectiveRepository の getDescendantData 操作を実行し、削除したメンバー・サーバーへの参照があるか確認します。

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

ファイル名: tagt_wlp_remove_member.html