使用脚本编制设置 serverindex.xml 文件的端口号

可以使用 wsadmin 工具来修改在 serverindex.xml 文件中指定的端口号。 serverindex.xml 文件的端点是配置中的部分不同对象。

有关此任务

可通过多种方法来完成本任务。 完成本任务中的步骤来使用 AdminConfig 和 AdminTask 对象配置环境中的端口。 或者,可以使用 AdminServerManagement 脚本库中的脚本对配置中的各种端口进行配置。

使用脚本编制修改端口之前,必须先启动 wsadmin 工具。

过程

  • 修改 server1 进程的 BOOTSTRAP_ADDRESS 属性。

    BOOTSTRAP_ADDRESS 属性是服务器中的 NameServer 对象的一个属性。 命名客户机使用该属性来指定命名服务器以查找初始上下文。 以下示例说明了如何修改 BOOTSTRAP_ADDRESS 属性:

    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName mynode -endPointName BOOTSTRAP_ADDRESS 
        -host myhost -port 2810}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName mynode -endPointName 
        BOOTSTRAP_ADDRESS -host myhost -port 2810]')
    • 使用 AdminConfig 对象。 要修改它的端点,请获取 NameServer 对象的标识,并发出 modify 命令,如以下示例所示:
      • 使用 Jacl:
        set s [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
        set ns [$AdminConfig list NameServer $s]
        $AdminConfig modify $ns {{BOOTSTRAP_ADDRESS {{port 2810} {host myhost}}}}
      • 使用 Jython:
        s = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
        ns = AdminConfig.list('NameServer', s)
        AdminConfig.modify(ns, [['BOOTSTRAP_ADDRESS', [['host', 'myhost'],  ['port', 2810]]]])
  • 修改 server1 进程的 SOAP_CONNECTOR-ADDRESS 属性。

    SOAP_CONNECTOR-ADDRESS 属性是服务器中的 SOAPConnector 对象的一个属性。 HTTP 传输方法将 SOAP 连接器端口用于入局 SOAP 请求。 使用以下示例修改 SOAP_CONNECTOR-ADDRESS 属性:

    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName mynode -endPointName SOAP_CONNECTOR_ADDRESS 
        -host myhost -port 8881}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName mynode -endPointName SOAP_CONNECTOR_ADDRESS 
        -host myhost -port 8881]')
    • 要使用 AdminConfig 对象修改它的端点,请获取 SOAPConnector 对象的标识,并发出 modify 命令,如以下示例所示:
      • 使用 Jacl:
        set s [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
        set soap [$AdminConfig list SOAPConnector $s]
        $AdminConfig modify $soap {{SOAP_CONNECTOR_ADDRESS {{host myhost} {port 8881}}}}
      • 使用 Jython:
        s = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
        soap = AdminConfig.list('SOAPConnector', s)
        AdminConfig.modify(soap, [['SOAP_CONNECTOR_ADDRESS', [['host', 'myhost'],  ['port', 8881]]]])
  • 修改 server1 进程的 JMSSERVER_QUEUED_ADDRESS 和 JMSSERVER_DIRECT_ADDRESS 属性。

    JMSSERVER_QUEUED_ADDRESS 和 JMSSERVER_DIRECT_ADDRESS 属性是服务器中的 JMSServer 对象的属性。 系统使用这些端口来配置 JMS 提供程序主题连接工厂设置。 以下示例修改了 JMSSERVER_QUEUED_ADDRESS 和 JMSSERVER_DIRECT_ADDRESS 属性:

    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName mynode -endPointName JMSSERVER_QUEUED_ADDRESS 
        -host myhost -port 5560}
        
        $AdminTask modifyServerPort server1 {-nodeName mynode -endPointName JMSSERVER_DIRECT_ADDRESS 
        -host myhost -port 5561}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName mynode -endPointName JMSSERVER_QUEUED_ADDRESS 
        -host myhost -port 5560]')
        
        AdminTask.modifyServerPort ('server1', '[-nodeName mynode -endPointName JMSSERVER_DIRECT_ADDRESS 
        -host myhost -port 5561]')
    • 使用 AdminConfig 对象。 要修改它的端点,请获取 JMSServer 对象的标识,并发出 modify 命令,例如:
      • 使用 Jacl:
        set s [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
        set jmss [$AdminConfig list JMSServer $s]
        $AdminConfig modify $jmss {{JMSSERVER_QUEUED_ADDRESS {{host myhost} {port 5560}}}}
        $AdminConfig modify $jmss {{JMSSERVER_DIRECT_ADDRESS {{host myhost} {port 5561}}}}
      • 使用 Jython:
        s = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
        jmss = AdminConfig.list('JMSServer', s)
        AdminConfig.modify(jmss, [['JMSSERVER_QUEUED_ADDRESS', [['host', 'myhost'], ['port', 5560]]]])
        AdminConfig.modify(jmss, [['JMSSERVER_DIRECT_ADDRESS', [['host', 'myhost'], ['port', 5561]]]])
  • 修改节点代理程序进程的 NODE_DISCOVERY_ADDRESS 属性。
    NODE_DISCOVERY_ADDRESS 属性是服务器中的 NodeAgent 对象的一个属性。 系统使用此端口来接收节点代理程序进程中的入局进程发现消息。 以下示例将修改 NODE_DISCOVERY_ADDRESS 属性:
    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort nodeagent {-nodeName mynode -endPointName 
        NODE_DISCOVERY_ADDRESS -host myhost -port 7272}
      • 使用 Jython:
        AdminTask.modifyServerPort ('nodeagent', '[-nodeName mynode -endPointName 
        NODE_DISCOVERY_ADDRESS -host myhost -port 7272]')
    • 使用 AdminConfig 对象。 要修改它的端点,请获取 NodeAgent 对象的标识,并发出 modify 命令,例如:
      • 使用 Jacl:
        set nodeAgentServer [$AdminConfig getid /Cell:mycell/Node:mynode/Server:nodeagent/]
        set nodeAgent [$AdminConfig list NodeAgent $nodeAgentServer]
        $AdminConfig modify $nodeAgent {{NODE_DISCOVERY_ADDRESS {{host myhost} {port 7272}}}}
      • 使用 Jython:
        nodeAgentServer = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:nodeagent/')
        nodeAgent = AdminConfig.list('NodeAgent', nodeAgentServer)
        AdminConfig.modify(nodeAgent, [['NODE_DISCOVERY_ADDRESS', [['host', 'myhost'], ['port', 7272]]]])
  • 修改 Deployment Manager 进程的 CELL_DISCOVERY_ADDRESS 属性。
    CELL_DISCOVERY_ADDRESS 属性是服务器中的 deploymentManager 对象的一个属性。 系统使用此端口来接收 Deployment Manager 进程中的入局进程发现消息。 使用以下示例修改 CELL_DISCOVERY_ADDRESS 属性:
    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort dmgr {-nodeName managernode -endPointName 
        CELL_MULTICAST_DISCOVERY_ADDRESS -host myhost -port 7272}
        
        $AdminTask modifyServerPort dmgr {-nodeName managernode -endPointName 
        CELL_DISCOVERY_ADDRESS -host myhost -port 7278}
      • 使用 Jython:
        AdminTask.modifyServerPort ('dmgr', '[-nodeName managernode -endPointName 
        CELL_MULTICAST_DISCOVERY_ADDRESS -host myhost -port 7272]')
        
        AdminTask.modifyServerPort ('dmgr', '[-nodeName managernode -endPointName 
        CELL_DISCOVERY_ADDRESS -host myhost -port 7278]')
    • 要使用 AdminConfig 属性修改它的端点,请获取 deploymentManager 对象的标识,并发出 modify 命令,例如:
      • 使用 Jacl:
        set netmgr [$AdminConfig getid /Cell:mycell/Node:managernode/Server:dmgr/]
        set deploymentManager [$AdminConfig list CellManager $netmgr]
        $AdminConfig modify $deploymentManager {{CELL_MULTICAST_DISCOVERY_ADDRESS {{host myhost} {port 7272}}}} 
        $AdminConfig modify $deploymentManager {{CELL_DISCOVERY_ADDRESS {{host myhost} {port 7278}}}}
      • 使用 Jython:
        netmgr = AdminConfig.getid('/Cell:mycell/Node:managernode/Server:dmgr/')
        deploymentManager = AdminConfig.list('CellManager', netmgr)
        AdminConfig.modify(deploymentManager, [['CELL_MULTICAST_DISCOVERY_ADDRESS', [['host', 'myhost'],  
        ['port', 7272]]]]) 
        AdminConfig.modify(deploymentManager, [['CELL_DISCOVERY_ADDRESS', [['host', 'myhost'], ['port', 7278]]]])
  • 修改 server1 进程的 WC_defaulthost 属性。
    使用以下示例修改 WC_defaulthost 端点:
    • 使用 AdminConfig 对象:
      • 使用 Jacl:
        set serverName server1
        set node [$AdminConfig getid /Node:myNode/]
        set serverEntries [$AdminConfig list ServerEntry $node]
        
        foreach serverEntry $serverEntries {
          set sName [$AdminConfig showAttribute $serverEntry serverName]
          if {$sName == $serverName} {
             set specialEndPoints [lindex [$AdminConfig showAttribute $serverEntry specialEndpoints] 0]
             foreach specialEndPoint $specialEndPoints {
                set endPointNm [$AdminConfig showAttribute $specialEndPoint endPointName]
                if {$endPointNm == "WC_defaulthost"} {
                   set ePoint [$AdminConfig showAttribute $specialEndPoint endPoint]
                   $AdminConfig modify $ePoint [list [list host myhost] [list port 5555]]
                   break
                } 
             }
          }
        }
      • 使用 Jython:
        serverName = "server1"
        node = AdminConfig.getid('/Node:myNode/')
        serverEntries = AdminConfig.list('ServerEntry', node).split(java.lang.System.getProperty('line.separator'))
        
        for serverEntry in serverEntries:
          sName = AdminConfig.showAttribute(serverEntry, "serverName")
          if sName == serverName:
             sepString = AdminConfig.showAttribute(serverEntry, "specialEndpoints")
             sepList = sepString[1:len(sepString)-1].split(" ")
             for specialEndPoint in sepList:
                endPointNm = AdminConfig.showAttribute(specialEndPoint, "endPointName")
                if endPointNm == "WC_defaulthost":
                   ePoint = AdminConfig.showAttribute(specialEndPoint, "endPoint")
                   AdminConfig.modify(ePoint, [["host", "myhost"], ["port", 5555]])
                   break
        
  • 修改 server1 进程的 WC_defaulthost_secure 属性。
    使用以下示例修改 WC_defaulthost_secure 端点:
    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName myNode -endPointName WC_defaulthost_secure 
        -host myhost -port 5544}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName myNode -endPointName WC_defaulthost_secure 
        -host myhost -port 5544]')
    • 使用 AdminConfig 对象:
      • 使用 Jacl:
        set serverName server1
        set node [$AdminConfig getid /Node:myNode/]
        set serverEntries [$AdminConfig list ServerEntry $node]
        
        foreach serverEntry $serverEntries {
          set sName [$AdminConfig showAttribute $serverEntry serverName]
          if {$sName == $serverName} {
             set specialEndPoints [lindex [$AdminConfig showAttribute $serverEntry specialEndpoints] 0]
             foreach specialEndPoint $specialEndPoints {
                set endPointNm [$AdminConfig showAttribute $specialEndPoint endPointName]
                if {$endPointNm == "WC_defaulthost_secure"} {
                   set ePoint [$AdminConfig showAttribute $specialEndPoint endPoint]
                   $AdminConfig modify $ePoint [list [list host myhost] [list port 5544]]
                   break
                } 
             }
          }
        }
      • 使用 Jython:
        serverName = "server1"
        node = AdminConfig.getid('/Node:myNode/')
        serverEntries = AdminConfig.list('ServerEntry', node).split(java.lang.System.getProperty('line.separator'))
        
        for serverEntry in serverEntries:
          sName = AdminConfig.showAttribute(serverEntry, "serverName")
          if sName == serverName:
             sepString = AdminConfig.showAttribute(serverEntry, "specialEndpoints")
             sepList = sepString[1:len(sepString)-1].split(" ")
             for specialEndPoint in sepList:
                endPointNm = AdminConfig.showAttribute(specialEndPoint, "endPointName")
                if endPointNm == "WC_defaulthost_secure":
                   ePoint = AdminConfig.showAttribute(specialEndPoint, "endPoint")
                   AdminConfig.modify(ePoint, [["host", "myhost"], ["port", 5544]])
                   break
        
  • 修改 server1 进程的 WC_adminhost 属性。

    要修改 WC_adminhost 端点,请使用下列其中一个示例:

    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName myNode -endPointName WC_adminhost -host myhost -port 6666}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName myNode -endPointName WC_adminhost -host myhost
         -port 6666]')
    • 使用 AdminConfig 对象:
      • 使用 Jacl:
        set serverName server1
        set node [$AdminConfig getid /Node:myNode/]
        set serverEntries [$AdminConfig list ServerEntry $node]
        
        foreach serverEntry $serverEntries {
          set sName [$AdminConfig showAttribute $serverEntry serverName]
          if {$sName == $serverName} {
             set specialEndPoints [lindex [$AdminConfig showAttribute $serverEntry specialEndpoints] 0]
             foreach specialEndPoint $specialEndPoints {
                set endPointNm [$AdminConfig showAttribute $specialEndPoint endPointName]
                if {$endPointNm == "WC_adminhost"} {
                   set ePoint [$AdminConfig showAttribute $specialEndPoint endPoint]
                   $AdminConfig modify $ePoint [list [list host myhost] [list port 6666]]
                   break
                } 
             }
          }
        }
      • 使用 Jython:
        serverName = "server1"
        node = AdminConfig.getid('/Node:myNode/')
        serverEntries =
         AdminConfig.list('ServerEntry', node).split(java.lang.System.getProperty('line.separator'))
        
        for serverEntry in serverEntries:
          sName = AdminConfig.showAttribute(serverEntry, "serverName")
          if sName == serverName:
             sepString = AdminConfig.showAttribute(serverEntry, "specialEndpoints")
             sepList = sepString[1:len(sepString)-1].split(" ")
             for specialEndPoint in sepList:
                endPointNm = AdminConfig.showAttribute(specialEndPoint, "endPointName")
                if endPointNm == "WC_adminhost":
                   ePoint = AdminConfig.showAttribute(specialEndPoint, "endPoint")
                   AdminConfig.modify(ePoint, [["host", "myhost"], ["port", 6666]])
                   break
        
  • 修改 server1 进程的 WC_adminhost_secure 属性。

    要修改 WC_adminhost_secure 端点,请使用下列其中一个示例:

    • 使用 AdminTask 对象:
      • 使用 Jacl:
        $AdminTask modifyServerPort server1 {-nodeName myNode -endPointName WC_adminhost_secure -host
         myhost -port 5566}
      • 使用 Jython:
        AdminTask.modifyServerPort ('server1', '[-nodeName myNode -endPointName WC_adminhost_secure 
        -host myhost -port 5566]')
    • 使用 AdminConfig 对象:
      • 使用 Jacl:
        set serverName server1
        set node [$AdminConfig getid /Node:myNode/]
        set serverEntries [$AdminConfig list ServerEntry $node]
        
        foreach serverEntry $serverEntries {
          set sName [$AdminConfig showAttribute $serverEntry serverName]
          if {$sName == $serverName} {
             set specialEndPoints [lindex [$AdminConfig showAttribute $serverEntry specialEndpoints] 0]
             foreach specialEndPoint $specialEndPoints {
                set endPointNm [$AdminConfig showAttribute $specialEndPoint endPointName]
                if {$endPointNm == "WC_adminhost_secure"} {
                   set ePoint [$AdminConfig showAttribute $specialEndPoint endPoint]
                   $AdminConfig modify $ePoint [list [list host myhost] [list port 5566]]
                   break
                } 
             }
          }
        }
      • 使用 Jython:
        serverName = "server1"
        node = AdminConfig.getid('/Node:myNode/')
        serverEntries = AdminConfig.list('ServerEntry', node).split(java.lang.System.getProperty('line.separator'))
        
        for serverEntry in serverEntries:
          sName = AdminConfig.showAttribute(serverEntry, "serverName")
          if sName == serverName:
             sepString = AdminConfig.showAttribute(serverEntry, "specialEndpoints")
             sepList = sepString[1:len(sepString)-1].split(" ")
             for specialEndPoint in sepList:
                endPointNm = AdminConfig.showAttribute(specialEndPoint, "endPointName")
                if endPointNm == "WC_adminhost_secure":
                   ePoint = AdminConfig.showAttribute(specialEndPoint, "endPoint")
                   AdminConfig.modify(ePoint, [["host", "myhost"], ["port", 5566]])
                   break
        

下一步做什么?

保存配置更改。

请使用以下命令示例来保存配置更改:
AdminConfig.save()
使用 AdminNodeManagement 脚本库中的 syncActiveNode 或 syncNode 脚本将配置更改传播至一个或多个节点。
  • 使用 syncActiveNodes 脚本将更改传播至单元中的每个节点,如以下示例所示:
    AdminNodeManagement.syncActiveNodes()
  • 使用 syncNode 脚本将更改传播至特定节点,如以下示例所示:
    AdminNodeManagement.syncNode("myNode")