从 Liberty 集合体移除成员
可使用集合体实用程序 remove 命令从集合体中移除成员服务器。remove 命令从集合体注销成员服务器并移除与该集合体相关的成员文件。remove 命令未删除成员服务器或更改成员 server.xml 文件。
关于此任务
集合体管理员可使用 join 命令向集合体添加服务器,不再需要成员服务器后,使用 remove 命令从集合体移除该服务器。
remove 命令可移除不存在的成员服务器。例如,在以下情况中,该命令可从集合体控制器移除有关该成员的信息:
- 如果无意或有意删除了该成员
- 如果部署失败并且未完整创建该成员或者成员配置包含错误,但 join 命令完成
另外,在 remove 命令运行之后,将会释放成员所分配的端口值以重复使用。
如果成员主机上的整个 wlp/usr 用户目录已删除,那么您可能需要使用 JConsole 之类的客户机从集合体删除对成员服务器的引用。
过程
- 停止成员服务器或从成员服务器配置移除与集合体相关的元素。 要停止成员服务器,请在命令行中运行 server stop 命令:
wlp/bin/server stop memberServerName
如果要让成员服务器保持运行,请从成员服务器的 server.xml 文件中移除下列任何元素:<featureManager> <feature>collectiveController-1.0</feature> <feature>collectiveMember-1.0</feature> </featureManager><collectiveMember ... /> <hostAuthInfo ... />
- 使用命令行移除成员服务器。
- 在命令行中运行集合体 remove 命令。
wlp/bin/collective remove memberServerName --host=collectiveControllerHost --port=collectiveControllerHTTPSPort --user=collectiveControllerAdminUserID --password=collectiveControllerAdminUserPassword
要减少所需的选项数目,请使用 --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
要减少所需的选项数目,请使用 --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 设置指定的管理用户的密码。
- 如果系统提示您接受证书链,请输入 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 ... />
- 如果要保留服务器,请遵循消息中的所有指示信息。例如,从已移除成员服务器的 server.xml 文件中移除这些消息中列示的元素。
如果不再需要服务器,请删除服务器目录。例如,删除 wlp/usr/servers/member1。
- 在命令行中运行集合体 remove 命令。
- 如果运行 remove 命令前在成员主机上删除了整个 wlp/usr 用户目录,请在 JConsole 之类的客户机上使用 delete
操作从集合体中删除对已移除成员服务器的任何引用。
- 将 JConsole 连接至集合体控制器进程。
- 确保集合体控制器正在运行。
wlp/bin/server status collective_controller_name
- 如果 JConsole 未在运行,请启动 JConsole。在 Windows 上,运行 Java_installation\bin\jconsole.exe。
- 对集合体控制器选择该进程。
要将 REST 连接器与 JConsole 配合使用以通过底层 HTTPS 连接远程访问 MBean,请参阅在 Liberty 中创建远程 JMX 连接。
- 确保集合体控制器正在运行。
- 在 JConsole 中运行 CollectiveRepository getDescendantData 操作以检查对已移除成员服务器的引用。
- 在 JConsole MBean 选项卡上,选择 CollectiveRepository getDescendantData 操作并指定集合体所在的节点的名称。该节点名类似 /sys.was.collectives/local/hosts/host_name;例如,/sys.was.collectives/local/hosts/machineA。
- 在数据列表中查找对已移除成员服务器的引用。如果已移除成员服务器的名称不在数据列表中,那么该服务器不再是集合体的成员。该成员已成功从集合体中移除。
但是,如果数据中存在对该成员的引用,请进至下一步。必须运行 delete 操作以移除该成员。
- 在 JConsole 中运行 CollectiveRepository delete 操作以从集合体中删除对已移除成员服务器的余下引用。
- 在 JConsole MBean 选项卡上,选择 CollectiveRepository delete 操作。
- 对于 nodeName,指定您要删除的成员服务器的标准节点名。此操作删除该成员服务器节点及其下的所有节点。
在 Windows 计算机上,本地进程上的节点名(集合体控制器在主机 machineA 上,成员路径为 C:\wlp\usr\servers\member1)类似如下所示:
/sys.was.collectives/local/hosts/machineA/userdirs/C%3A%2Fwlp%2Fusr/servers/member1
- 单击删除。
- 要确认服务器不再是集合体的成员,请重复步骤 2b。在 JConsole 中运行 CollectiveRepository getDescendantData 操作并检查对已移除成员服务器的引用。
- 将 JConsole 连接至集合体控制器进程。

文件名:tagt_wlp_remove_member.html