使用脚本编制来配置进程
可以使用 wsadmin 工具来配置应用程序服务器配置中的进程。通过定义用于启动或初始化应用程序服务器进程的命令行信息,来增强应用程序服务器的操作。进程定义设置定义运行时属性,例如要运行的程序、用于运行程序的参数以及工作目录。
关于此任务
有三种方式可用来执行本任务。完成本任务中的步骤来使用 AdminTask 对象的 setProcessDefinition 命令或 AdminConfig 对象修改进程定义配置。或者,可以使用 AdminServerManagement 脚本库中的 configureProcessDefinition Jython 脚本来配置进程定义属性。wsadmin 工具启动时将自动装入该脚本。通过以下语法使用 configureProcessDefinition 脚本来配置进程定义设置:
AdminServerManagement.configureProcessDefintion(nodeName, serverName, otherParamList)
有关其他信息和参数定义,请参阅 AdminServerMananagment 脚本库的文档。过程
- 启动 wsadmin 脚本编制工具。
- 使用 AdminTask 对象的 setProcessDefinition 命令或 AdminConfig 对象来修改进程定义配置。
- 通过以下示例使用 AdminTask 对象的 setProcessDefinition 命令来配置进程定义:
- 使用 Jacl:
$AdminTask setProcessDefinition {-interactive}
- 使用 Jython:
AdminTask.setProcessDefinition (['-interactive'])
- 使用 Jacl:
- 通过以下步骤使用 AdminConfig 选项来配置进程定义:
- 标识服务器并将其指定给 s1 变量,如下例所示:
- 使用 Jacl:
set s1 [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- 使用 Jython:
s1 = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') print s1
表 1. AdminConfig getid 命令描述. 以上命令由下列元素组成: 元素 描述 set Jacl 命令 s1 变量名 $ 使用其值替换变量名的 Jacl 运算符 AdminConfig 表示 WebSphere® Application Server 配置的对象 getid AdminConfig 命令 Cell 对象类型 mycell 将要修改的对象的名称 Node 对象类型 mynode 将要修改的对象的名称 Server 对象类型 server1 将要修改的对象的名称 print Jython 命令 示例输出:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- 使用 Jacl:
- 标识相关服务器的进程定义,并将其指定给 processDef 变量,如下例所示:
- 使用 Jacl:
set processDef [$AdminConfig list JavaProcessDef $s1] set processDef [$AdminConfig showAttribute $s1 processDefinitions]
set processDefs [$AdminConfig list JavaProcessDef $s1] set controllerProcessDef [lindex $processDefs 1] set servantProcessDef [lindex $processDefs 1]
- 使用 Jython:
processDef = AdminConfig.list('JavaProcessDef', s1) print processDef processDef = AdminConfig.showAttribute(s1, 'processDefinitions')
processDefs = AdminConfig.list('JavaProcessDef', s1) # get line separator import java lineSeparator = java.lang.System.getProperty('line.separator') arrayPDs = processDefs.split(lineSeparator) controllerProcessDef = arrayPDs[0] servantProcessDef = arrayPDs[1] print controllerProcessDef print servantProcessDef
示例输出:(cells/mycell/nodes/mynode/servers/server1|server.xml#JavaProcessDef_1)
(cells/mycell/nodes/mynode/servers/server1:server.xml#JavaProcessDef_1) (cells/mycell/nodes/mynode/servers/server1:server.xml#JavaProcessDef_2)
- 使用 Jacl:
- 修改进程定义的配置属性。
以下示例将更改工作目录:
在 z/OS® 系统上,以下示例说明如何更改服务方区域的进程定义。通过用 controllerProcessDef 替换 servantProcessDef,可以更改控制器区域的进程定义。
- 使用 Jacl:
$AdminConfig modify $processDef {{workingDirectory c:/temp/user1}}
$AdminConfig modify $servantProcessDef {{workingDirectory /temp/user1}}
$AdminConfig modify $processDef {{workingDirectory /home/myProfile/temp/user1}}
- 使用 Jython:
AdminConfig.modify(processDef, [['workingDirectory', 'c:/temp/user1']])
AdminConfig.modify(servantProcessDef, [['workingDirectory', '/temp/user1']])
AdminConfig.modify(processDef, [['workingDirectory', '/home/myProfile/temp/user1']])
以下示例将修改 stderr 文件的名称:- 使用 Jacl:
set errFile [list stderrFilename \${LOG_ROOT}/server1/new_stderr.log] set attr [list $errFile] $AdminConfig modify $processDef [subst {{ioRedirect {$attr}}}]
set errFile [list stderrFilename \${LOG_ROOT}/server1/new_stderr.log] set attr [list $errFile] $AdminConfig modify $servantProcessDef [subst {{ioRedirect {$attr}}}]
- 使用 Jython:
errFile = ['stderrFilename', '\${LOG_ROOT}/server1/new_stderr.log'] attr = [errFile] AdminConfig.modify(processDef, [['ioRedirect', [attr]]])
errFile = ['stderrFilename', '${LOG_ROOT}/server1/new_stderr.log'] attr = [errFile] AdminConfig.modify(servantProcessDef, [['ioRedirect', attr]])
以下示例将修改进程优先级:- 使用 Jacl:
$AdminConfig modify $processDef {{execution {{processPriority 15}}}}
- 使用 Jython:
AdminConfig.modify(processDef, [['execution', [['processPriority', 15]]]])
以下示例更改了产品尝试启动应用程序服务器作为对启动请求响应的最多次数。如果无法在指定的尝试次数内启动服务器,那么会发出一则错误消息,指出无法启动应用程序服务器。- 使用 Jacl:
$AdminConfig modify $processDef {{monitoringPolicy {{maximumStartupAttempts 1}}}}
- 使用 Jython:
AdminConfig.modify(processDef, [['monitoringPolicy', [['maximumStartupAttempts', 1]]]])
- 使用 Jacl:
- 标识服务器并将其指定给 s1 变量,如下例所示:
- 通过以下示例使用 AdminTask 对象的 setProcessDefinition 命令来配置进程定义:
- 保存配置更改。 请使用以下命令示例来保存配置更改:
AdminConfig.save()
- (仅限于 Network Deployment 环境)使节点同步。 使用 AdminNodeManagement 脚本库中的 syncActiveNode 或 syncNode 脚本将配置更改传播至一个或多个节点。
- 使用 syncActiveNodes 脚本将更改传播至单元中的每个节点,如以下示例所示:
AdminNodeManagement.syncActiveNodes()
- 使用 syncNode 脚本将更改传播至特定节点,如以下示例所示:
AdminNodeManagement.syncNode("myNode")
- 使用 syncActiveNodes 脚本将更改传播至单元中的每个节点,如以下示例所示:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_processes
文件名:txml_processes.html