使用 wsadmin 脚本编制对消息传递资源配置进行自动化

脚本编制库提供 Jython 脚本编制过程来辅助对环境进行自动化。使用资源管理脚本来设置和管理 Java™ 消息服务 (JMS) 配置。

关于此任务

脚本库提供了一组过程,可自动执行最常见的应用程序服务器管理功能。 使用 Jython 脚本库的方式有三种。
  • 使用 wsadmin 工具从 Jython 脚本库以交互方式运行脚本。可以启动 wsadmin 工具,并使用以下语法来运行包括在脚本库中的各个脚本:
    wsadmin>AdminServerManagement.createApplicationServer("myNode", "myServer", "default")
  • 使用文本编辑器组合 Jython 脚本库中的若干个脚本,如下例所示:
    #
    # My Custom Jython Script - file.py
    #
    AdminServerManagement.createApplicationServer("myNode", "Server1", "default")
    AdminServerManagement.createApplicationServer("myNode", "Server2", "default")
    
    # Use one of them as the first member of a cluster
    AdminClusterManagement.createClusterWithFirstMember("myCluster", "APPLICATION_SERVER",
        "myNode", "Server1")
    
    # Add a second member to the cluster
    AdminClusterManagement.createClusterMember("myCluster", "myNode", "Server3")
    
    # Install an application
    AdminApplication.installAppWithClusterOption("DefaultApplication",
        "..\installableApps\DefaultApplication.ear", "myCluster") 
    
    # Start all servers and applications on the node
    AdminServerManagement.startAllServers("myNode")
    保存定制脚本并从命令行运行该脚本,如以下语法所示:
    bin>wsadmin -language jython -f path/to/your/jython/file.py
  • 将 Jython 脚本库代码用作样本语法来编写定制脚本。脚本库中的每个脚本示例都演示了编写 wsadmin 脚本的最佳实践。脚本库代码位于 app_server_root/scriptLibraries 目录中。在此目录中,脚本按照功能组织到各个子目录中。例如,app_server_root/scriptLibraries/application/V70 子目录包含执行应用程序管理任务的过程,这些过程可用于产品的 V7.0 和更高版本。脚本库路径中的子目录 V70 并不表示该子目录中的脚本是 V7.0 脚本。
脚本编制库中的消息传递资源管理过程位于 app_server_root/scriptLibraries/resources/JMS/V70 子目录中。 当您启动 wsadmin 工具时,会自动从该目录中装入每个脚本。要在启动 wsadmin 工具时自动装入定制 Jython 脚本 (*.py),请将自动化脚本保存到 app_server_root/scriptLibraries 目录中的新子目录。
最佳实践 最佳实践: 要使用脚本编制库过程来创建定制脚本编制,请将所修改的脚本编制保存到新的子目录以避免覆盖此库。请不要编辑脚本编制库中的脚本编制过程。bprac

您可以使用这些脚本来执行管理功能的多个组合。请使用以下过程组合样本来创建 JMS 提供程序,并配置该 JMS 提供程序的 JMS 资源。

过程

  1. 可选: 启动 wsadmin 工具。
    执行此步骤以启动 wsadmin 工具并连接至服务器,或者在本地方式下运行该工具。如果启动 wsadmin 工具,请使用本主题中的交互方式示例来运行脚本。
    • bin 目录输入以下命令,以启动 wsadmin 工具并连接至服务器:
      bin>wsadmin -lang jython
    • bin 目录输入以下命令,以在本地方式下使用 Jython 脚本编制语言来启动 wsadmin 工具:
      bin>wsadmin -conntype none -lang jython
    当启动 wsadmin 工具时,系统会从脚本编制库中装入所有脚本编制。
  2. 配置 JMS 提供程序。
    运行脚本库中的 createJMSProvider 过程,并指定必需自变量。要运行此脚本,请指定节点、服务器、JMS 提供程序名称、外部初始上下文工厂名称以及外部提供程序 URL。可选择性地以如下格式指定其他属性:[["attr1", "value1"], ["attr2", "value2"]]。下表提供有关要指定的自变量的其他信息:
    表 1. createJMSProvider 脚本自变量. 运行脚本来创建 JMS 提供程序。
    自变量 描述
    节点名 指定相关节点的名称。
    服务器名称 指定相关服务器的名称。
    JMS 提供程序名称 指定要分配给新 JMS 提供程序的名称。
    外部初始上下文工厂名称 为 JMS 提供程序指定初始上下文工厂的 Java 类名。
    外部提供程序 URL 指定用于外部 JNDI 查询的 JMS 提供程序 URL。
    以下示例会在配置中创建 JMS 提供程序:
    bin>wsadmin -lang jython -c "AdminJMS.createJMSProvider("myNode", "myServer", "myJMSProvider", "extInitCF",
     "extPURL", [["description", "testing"], ["supportsASF", "true"], ["providerType", "jmsProvType"]])"
    您也可以使用交互方式来运行脚本过程,如以下示例所示:
    wsadmin>AdminJMS.createJMSProvider("myNode", "myServer", "myJMSProvider", "extInitCF",
     "extPURL", [["description", "testing"], ["supportsASF", "true"], ["providerType", "jmsProvType"]])
    此脚本会返回新 JMS 提供程序的配置标识。
  3. 配置通用 JMS 连接工厂。
    运行脚本库中的 createGenericJMSConnectionFactory 过程,并指定必需自变量。要运行此脚本,请指定节点、服务器、JMS 提供程序名称、新连接工厂的名称、JNDI 名称以及外部 JNDI 名称。可选择性地以如下格式指定其他属性:[["attr1", "value1"], ["attr2", "value2"]]。下表提供有关要指定的自变量的其他信息:
    表 2. createGenericJMSConnectionFactory 脚本自变量. 运行脚本来创建常规 JMS 连接工厂。
    自变量 描述
    节点名 指定相关节点的名称。
    服务器名称 指定相关服务器的名称。
    JMS 提供程序名称 指定 JMS 提供程序的名称。
    连接工厂名称 指定要分配给新连接工厂的名称。
    JNDI 名称 指定系统用于将连接工厂绑定到名称空间的 JNDI 名称。
    外部 JNDI 名称 指定用于将队列绑定到应用程序服务器名称空间的 JNDI 名称。按约定,使用标准 JNDI 名称;例如,格式为 jms/Name,其中 Name 是资源的逻辑名称。该名称用于链接平台绑定信息。绑定使模块部署描述符定义的资源与由平台绑定到 JNDI 的实际(物理)资源相关联。
    以下示例会在配置中创建 JMS 连接工厂:
    bin>wsadmin -lang jython -c "AdminJMS.createGenericJMSConnectionFactory("myNode", "myServer", "myJMSProvider",
     "JMSCFTest", "jmsjndi", "extjmsjndi", [["XAEnabled", "true"], ["authDataAlias", "myalias"],
     ["description", "testing"]])"
    您也可以使用交互方式来运行脚本过程,如以下示例所示:
    wsadmin>AdminJMS.createGenericJMSConnectionFactory("myNode", "myServer", "myJMSProvider", 
      "JMSCFTest", "jmsjndi", "extjmsjndi", [["XAEnabled", "true"], ["authDataAlias", "myalias"],
     ["description", "testing"]])
    此脚本会返回新的通用 JMS 连接工厂的配置标识。
  4. 创建通用 JMS 目标。
    运行脚本库中的 createGenericJMSDestination 过程,并指定必需自变量。要运行此脚本,请指定节点、服务器、JMS 提供程序名称、通用 JMS 目标名称、JNDI 名称以及外部 JNDI 名称。可选择性地以如下格式指定其他属性:[["attr1", "value1"], ["attr2", "value2"]]。下表提供有关要指定的自变量的其他信息:
    表 3. createGenericJMSDestination 脚本自变量. 运行脚本来创建常规 JMS 目标。
    自变量 描述
    节点名 指定相关节点的名称。
    服务器名称 指定相关服务器的名称。
    JMS 提供程序名称 指定 JMS 提供程序的名称。
    通用 JMS 目标名称 指定要分配给新通用 JMS 目标的名称。
    JNDI 名称 指定系统用于将连接工厂绑定到名称空间的 JNDI 名称。
    外部 JNDI 名称 指定用于将队列绑定到应用程序服务器名称空间的 JNDI 名称。按约定,使用标准 JNDI 名称;例如,格式为 jms/Name,其中 Name 是资源的逻辑名称。该名称用于链接平台绑定信息。绑定使模块部署描述符定义的资源与由平台绑定到 JNDI 的实际(物理)资源相关联。
    以下示例使用模板在配置中创建通用 JMS 目标:
    bin>wsadmin -lang jython -c "AdminJMS.createGenericJMSDestination("myNode", "myServer", "myJMSProvider",
     "JMSDest", "destjndi", "extDestJndi", [["description", "testing"], ["category", "jmsDestCatagory"],
       ["type", "TOPIC"]]))"
    您也可以使用交互方式来运行脚本过程,如以下示例所示:
    wsadmin>AdminJMS.createGenericJMSDestination("myNode", "myServer", "myJMSProvider",
     "JMSDest", "destjndi", "extDestJndi", [["description", "testing"], ["category", "jmsDestCatagory"],
       ["type", "TOPIC"]]))
    此脚本会返回新的通用 JMS 目标的配置标识。

结果

wsadmin 脚本库返回的输出与关联 wsadmin 命令返回的输出相同。例如,AdminServerManagement.listServers() 脚本会返回可用服务器的列表。AdminClusterManagement.checkIfClusterExists() 脚本会返回值 true(如果集群存在)或 false(如果集群不存在)。如果此命令未返回期望的输出,那么当此脚本成功运行时,脚本库会返回值 1。如果此脚本失败,那么脚本库会返回值 -1 及一条包含该异常的错误消息。

缺省情况下,系统会禁用 failonerror 选项。要启用此选项,请指定 true 作为该脚本过程的最后一个自变量,如以下示例所示:
wsadmin>AdminApplication.startApplicationOnCluster("myApplication","myCluster","true")

下一步做什么

通过组合脚本编制库中的脚本编制过程来创建定制脚本编制,对环境进行自动化。将定制脚本保存到 app_server_root/scriptLibraries 目录的新子目录。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_7libresource2
文件名:txml_7libresource2.html