使用 wsadmin 脚本工具进行节点同步

可以使用脚本编制和 wsadmin 工具来传播节点更改。

准备工作

可通过两种方法来完成本任务。 本主题使用 AdminControl 对象来同步节点。 或者,可以使用 AdminNodeManagement 脚本库中的节点管理脚本来同步特定节点,或同步所有活动的节点。

有关此任务

节点同步是必需的,这样才能将配置更改传播到受影响的一个或几个节点。 缺省情况下,只要节点可与 Deployment Manager 通信,此情况就会定期地发生。 可以通过运行用于同步配置的命令来显式地传播更改。

过程

  1. 为节点同步设置变量。
    • 使用 Jacl:

      set Sync1 [$AdminControl completeObjectName type=NodeSync,process=nodeagent,node=myNodeName,*]
      
    • 使用 Jython:

      Sync1 = AdminControl.completeObjectName('type=NodeSync,process=nodeagent,node=myNodeName,*')
    表 1. AdminControlcompleteObjectName命令描述 从 wsadmin 命令行运行命令。
    属性 定义
    set 是 Jacl 命令
    Sync1 是变量名
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminControl 是一个对象,它启用产品进程中运行的 MBean 的操作
    completeObjectName 是 AdminControl 命令
    type=NodeSync,process=nodeagent,node=myNodeName 是对象名的片段。 此命令会返回完整名称。 此片段用来查找匹配的对象名,该对象是节点 myNodeName 的 SyncNode 对象,其中 myNodeName 是用来使配置更改同步的节点名称。 例如:type=Server, name=serv1。 它可以是域和键属性的任何有效组合。 例如,类型、名称、单元、节点以及进程等。
    示例输出如下所示:
    WebSphere:platform=common,cell=myNetwork,version=5.0,name=node
    Sync,mbeanIdentifier=nodeSync,type=NodeSync,process=nodeagent,node=myBaseNode,
    process=nodeagent
    
  2. 通过发出以下命令来使节点同步:
    • 使用 Jacl:

      $AdminControl invoke $Sync1 sync
    • 使用 Jython:

      AdminControl.invoke(Sync1, 'sync')
    表 2. AdminControl调用命令描述 从 wsadmin 命令行运行命令。
    属性 定义
    $ 是使用其值替换变量名的 Jacl 运算符
    AdminControl 是一个对象,它启用运行在产品进程中的 MBean 的操作
    invoke 是 AdminControl 命令
    Sync1 对步骤 1 中指定的服务器标识所求的值
    sync modify 命令的属性
    示例输出如下所示:
    true
    如果同步完成,那么接收到的输出值为 true

结果

同步完成后,在 Deployment Manager 的 config 目录中创建的文件现在必须存在于 myNodeName 节点上的 app_server_root/config 目录中。