在控制台生成命令之后,它们将显示在 Rational Application Developer 的 WebSphere Administration Command Assist 视图中(图 4)。在此视图中显示的命令可以插入任何 Jython 文件的任何部分,只需将光标置于文件中所需的位置,右键单击该命令,并选择 Insert 即可(图 4)。
图 4. Rational Application Developer 中的命令帮助窗口
|
使用带变量的命令帮助
在整个管理控制台中生成的命令可提供在环境中创建和操作项目的正确 wsadmin 对象类型、函数、语法、属性和示例值。如果您是编写 wsadmin 脚本的新手,或者需要为新功能编写脚本,则上述功能对您开始工作提供有力帮助。
图 4 中用于列出和修改端口的示例命令源自需要与每台服务器关联的项目集清单(例如端口、应用程序、资源等等)的客户。包含 70 多台服务器的环境绝对需要脚本。为了向您介绍如何创建列出每台服务器的所有资源(如 JDBC 驱动程序)的脚本,下面的步骤描述了为脚本文件生成命令的过程。尽管这是一个十分简单的练习,但通过该练习可以了解如何将命令帮助创建的命令与 Jython 的基本功能合并在一起,以创建满足特定需要的解决方案。
对于本例而言,您的需求是获得列出所有 WebSphere Application Server 以及每台服务器的所有 JDBC 驱动程序的命令。本例的计算单元由一台部署管理器和三台服务器构成。
在部署管理器的管理控制台中:
- 导航到 Servers => Server Types => WebSphere application servers。面板的中央部分显示了计算单元中此类服务器的列表。
- 如果既未启用命令帮助日志记录又未启用通知,则请单击 View administrative scripting command for last action 链接检索、复制和保存该命令。
- 将显示以下命令:
AdminTask.listServers('[-serverType APPLICATION_SERVER ]')
- 导航到 Resources => JDBC => JDBC providers。面板的中央部分显示了计算单元中此类提供程序的列表。
- 将范围更改为其中的一台服务器:
Node=T60P-2007-CQ8Node03, Server=server1
- 如果既未记录命令帮助又未启用通知,则请单击 View administrative scripting command for last action 链接检索、复制和保存该命令。
- 这时将显示与以下内容类似的命令:
AdminConfig.list('JDBCProvider', AdminConfig.getid( '/Cell:T60P- 2007-CQ8Cell01/Node:T60P-2007-CQ8Node03/Server:server1/'))
现在可以将这两个命令与其他 Jython 代码合并在一起,以便为每台服务器生成所需 JDBC 提供程序的列表。要运行该脚本,请使用以下指定的文件选项和文件名启动 wsadmin:
wsadmin -f c:\IBM\AppServer_list_jdbc.py.
清单 2 中显示了示例脚本。(注意:Jython 不使用行号,但本例中严格显示行号是为了便于说明。)
清单 2. 合并命令和 Jython 脚本语言的脚本文件内容
1 appServers = AdminTask.listServers('[-serverType APPLICATION_SERVER ]').splitlines()2 3 for appServ in appServers: 4 print appServ5 jdbc = AdminConfig.list('JDBCProvider', appServ) 6 print jdbc |
第 1 行使用一个字符串函数 splitlines() 分隔服务器列表,然后将这些值作为一个变量 appServers 进行存储。在此列表中为每台服务器存储的值是唯一标识。第 3-6 行迭代该列表,并输出每台服务器的 ID(第 4 行),检索该服务器范围内所有 JDBC 提供程序的列表(第 5 行),然后输出每个提供程序的属性和值(第 6 行)。请参见清单 3 了解示例输出。注意,在第 5 行中,为了更加通用,对命令帮助生成的命令稍微进行了修改;无需检索特定服务器的 ID,现在可以为其提供 appServ 变量拥有的任何值。
清单 3. 脚本文件的部分输出
server3(cells/T60P-2007-CQ8Cell01/nodes/T60P-2007-CQ8Node03/servers/server3|server.xml)"Derby JDBC Provider (XA)(cells/T60P-2007-CQ8Cell01/nodes/T60P-2007-CQ8Node03/servers/ server3|resources.xml#builtin_jdbcprovider)"[classpath ${DERBY_JDBC_DRIVER_PATH}/derby.jar][description "Built-in Derby JDBC Provider (XA)"][implementationClassName org.apache.derby.jdbc.EmbeddedXADataSource][isolatedClassLoader false][name "Derby JDBC Provider (XA)"][nativepath []][providerType "Derby JDBC Provider (XA)"][xa true]server1(cells/T60P-2007-CQ8Cell01/nodes/T60P-2007-CQ8Node03/servers/server1|server.xml) ... |
可以根据需要使用其他 wsadmin 命令(如 AdminConfig.showall())或 Jython 的其他各种功能和函数(如字符串操作函数)来检索、修改或格式化命令帮助的输出。
总结
本文的目的是为了提高对命令帮助功能的认识,命令帮助是 WebSphere Application Server 中的一种 Jython 脚本帮助工具,本文还提供了一些演示内置和外部解决方案的示例,以帮助您满足管理需要。
管理大型环境和经常执行重复任务的人员会大量使用脚本。四种 wsadmin 命令对象的语法、函数和命名约定之间没有大量的一致性。准确地确定命令来完成所需的操作以及为 wsadmin 构建脚本有时是一种极具挑战性和非常耗时的任务,特别是对进行中级脚本开发的新手而言更是如此。命令帮助显著地简化了此过程同时提高了开发效率。
文章来源于领测软件测试网 https://www.ltesting.net/