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. 在命令行中运行集合体 remove 命令。
      wlp/bin/collective remove memberServerName --host=collectiveControllerHost --port=collectiveControllerHTTPSPort --user=collectiveControllerAdminUserID --password=collectiveControllerAdminUserPassword

      [18.0.0.1 and later]要减少所需的选项数目,请使用 --controller 选项,而不是 --user--password--host--port

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

      例如,对于主机 machineA 上使用端口 1090 且具有集合体控制器管理用户 Admin1 和密码 Admin1pwd 及成员服务器 member1 的集合体控制器,运行以下命令以移除成员服务器:

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

      [18.0.0.1 and later]要减少所需的选项数目,请使用 --controller 选项,而不是 --user--password--host--port

      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(是)。

      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 未在运行,请启动 JConsole。在 Windows 上,运行 Java_installation\bin\jconsole.exe
      3. 对集合体控制器选择该进程。

      要将 REST 连接器与 JConsole 配合使用以通过底层 HTTPS 连接远程访问 MBean,请参阅在 Liberty 中创建远程 JMX 连接

    2. 在 JConsole 中运行 CollectiveRepository getDescendantData 操作以检查对已移除成员服务器的引用。
      1. 在 JConsole MBean 选项卡上,选择 CollectiveRepository getDescendantData 操作并指定集合体所在的节点的名称。该节点名类似 /sys.was.collectives/local/hosts/host_name;例如,/sys.was.collectives/local/hosts/machineA
      2. 在数据列表中查找对已移除成员服务器的引用。如果已移除成员服务器的名称不在数据列表中,那么该服务器不再是集合体的成员。该成员已成功从集合体中移除。

        但是,如果数据中存在对该成员的引用,请进至下一步。必须运行 delete 操作以移除该成员。

    3. 在 JConsole 中运行 CollectiveRepository delete 操作以从集合体中删除对已移除成员服务器的余下引用。
      1. 在 JConsole MBean 选项卡上,选择 CollectiveRepository delete 操作。
      2. 对于 nodeName,指定您要删除的成员服务器的标准节点名。此操作删除该成员服务器节点及其下的所有节点。

        在 Windows 计算机上,本地进程上的节点名(集合体控制器在主机 machineA 上,成员路径为 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