可注销应用程序服务器节点,以使他们不再注册至管理代理程序。如果管理代理程序环境中不再需要该节点或计划删除应用程序服务器节点概要文件,请注销节点。从管理代理程序注销节点后,可独立使用该节点,向另一管理代理程序注册该节点或删除应用程序服务器节点概要文件。
开始之前
必须向管理代理程序注册要从管理代理程序环境中移除的应用程序服务器节点。如果管理代理程序未在运行,请启动管理代理程序。
如果已向作业管理器注册该应用程序服务器节点,请从作业管理器注销该节点。可使用管理代理程序控制台或 wsadmin 命令来注销该节点:
- 使用管理代理程序控制台从作业管理器注销独立应用程序服务器节点。
- 登录管理代理程序控制台。管理代理程序名称类似
host_nameAANode01。
- 单击。
- 在“管理代理程序”页面的“配置”选项卡中,单击节点。
- 在“节点”页面上,选择要从作业管理器注销的节点,然后单击从作业管理器注销。
- 在“从作业管理器注销”页面上,指定节点名,指定作业管理器管理控制台端口号,(可选)指定其他参数(例如,作业管理器用户名和密码),然后单击确定。
对于端口,如果未启用安全性,请指定
9960 作为非安全作业管理器管理控制台端口。如果未指定端口号,那么将使用缺省安全端口号 9943。
- 运行
ManagedNodeAgent 命令组中的 wsadmin unregisterWithJobManager 命令以从作业管理器注销独立应用程序服务器节点。
运行 unregisterWithJobManager
命令时,请对必需 -managedNodeName 参数指定作业管理器管理的独立应用程序服务器节点的名称。其他参数是可选的。
AdminTask.unregisterWithJobManager('[-host myJobMgrHostname -port 8989
-managedNodeName myAppServerNodeName]')
-host
参数的缺省值为 localhost。
-port
参数的缺省值为 9943,即作业管理器管理控制台安全端口号。如果禁用了安全性,请指定缺省非安全端口号 9960。
有关 unregisterWithJobManager
命令及参数的更多信息,请参阅有关 AdminTask 对象的 ManagedNodeAgent 命令组的主题。
如果从作业管理器注销独立应用程序服务器时系统操作失败,请运行 JobManagerNode
组中的 cleanupTarget 命令以清除作业管理器注册信息。请参阅“AdminTask 对象的 JobManagerNode 命令组”主题。
关于此任务
要注销节点,请从管理代理程序的
bin 目录中运行 deregisterNode 命令。步骤 1
描述如何运行 deregisterNode 命令。
取消注册节点时,节点配置保留下来,但标记为未注册到管理代理程序。如果注销的节点包含注册节点前安装的管理控制台或管理 Enterprise JavaBeans (EJB) 应用程序,那么会重新启用这些程序。
运行
deregisterNode 命令可能会导致空指针异常(如果应用程序服务器节点概要文件已损坏或不可用)。如果接收到空指针异常,那么用于从管理代理程序注销应用程序服务器的进程已失败。您会在错误日志中接收到
ADMU0116I、ADMU0128I、ADMU0211I、ADMU0113E 和 ADMU1211I 消息。步骤 2
描述存在空指针异常时如何移除节点和相关端点。
如果在注销节点前删除了应用程序服务器节点概要文件,那么运行 deregisterNode 命令不起作用。因为概要文件不再存在,所以管理代理程序不识别该概要文件。请完成步骤 2
以从管理代理程序环境中移除节点和相关端点。
过程
- 使用 deregisterNode 命令来注销节点。
如果要注销的节点已存在,请运行 deregisterNode 命令(指定要注销的节点的概要文件路径):
deregisterNode -profilePath profile_root/profile_name
例如,要从管理代理程序环境注销 AppSrv02 概要文件,请运行以下命令:
deregisterNode -profilePath profile_root/AppSrv02
有关命令参数的信息,请参阅有关 deregisterNode 命令的主题。
- 如果因为运行 deregisterNode
命令而产生空指针异常或删除了节点概要文件,请运行用于移除已注册节点和相关端点的 wsadmin 命令。
- 在命令行上,从管理代理程序
bin 目录中运行命令以启动 wsadmin 脚本编制工具。
要使用 Jython 脚本语言,请输入:
wsadmin -lang jython
要使用 Jacl 脚本语言,请输入:
wsadmin
- 如果不知道要移除的节点的名称,请运行 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)
此列表显示 nodeA 和 nodeB 是 myAACell01 管理代理程序的已注册节点。
- 发出用于移除该节点的 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
- 运行用于移除端点的 wsadmin 命令,这些端点是注册节点概要文件时针对子系统生成的。
按顺序运行以下命令以移除 nodeA 的端点。for 命令(在 Jython 中)和
foreach 命令(在 Jacl 中)是单行命令,显示为多行是为了便于排版。
对于 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
- 重新启动管理代理程序。
要重新启动管理代理程序 adminagent,请在管理代理程序概要文件的
bin 目录中从命令提示符下运行以下命令:
stopServer adminagent
startServer adminagent
- 验证节点是否已不再注册至管理代理程序。
下一步做什么
可独立使用已注销的节点,或向另一管理代理程序注册该节点。(可选)使用 manageprofiles
命令删除应用程序服务器概要文件。