![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Intelligent Management:应用程序版本管理的管理任务
可以使用 Jacl 或 Jython 脚本语言来管理应用程序版本。还可以使用 AdminApp 对象来管理具有特定版本的应用程序。
activateEdition
使用 activateEdition 命令可激活某个版本。
目标对象
无。
参数
返回值
- true: success
- false: failure
批处理方式示例用法
- 使用 Jacl:
$AdminTask activateEdition {-appName BeenThere -edition 1.0}
- 使用 Jython 字符串:
AdminTask.activateEdition ('[-appName BeenThere -edition 1.0]')
- 使用 Jython 列表:
AdminTask.activateEdition (['-appName', 'BeenThere', '-edition', '1.0'])
交互方式示例用法
- 使用 Jacl:
$AdminTask activateEdition {-interactive}
- 使用 Jython 字符串:
AdminTask.activateEdition ('[-interactive]')
- 使用 Jython 列表:
AdminTask.activateEdition (['-interactive'])
deactivateEdition
使用 deactivateEdition 命令可停用某个版本。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定应用程序版本的名称。(字符串)
返回值
- true: success
- false: failure
批处理方式示例用法
- 使用 Jacl:使用 Jython 字符串:
$AdminTask deactivateEdition {-appName BeenThere -edition 1.0}
AdminTask.deactivateEdition ('[-appName BeenThere -edition 1.0]')
- 使用 Jython 列表:
AdminTask.deactivateEdition (['-appName', 'BeenThere', '-edition', '1.0'])
交互方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask deactivateEdition {-interactive}
AdminTask.deactivateEdition ('[-interactive]')
- 使用 Jython 列表:
AdminTask.deactivateEdition (['-interactive'])
rolloutEdition
使用 rolloutEdition 命令可转出某个版本并指定组大小。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定定制属性的值。(字符串)
- -params
- 指定转出的配置值。(字符串)
- 转出策略
- 分组:在部署应用程序集群所在的集群上激活指定的应用程序,而不是激活同一应用程序的当前版本,按 groupSize 关键字指定一次转出 N 台服务器。缺省组大小为 1。在转出期间,应用程序的两个版本都可以处理请求。所设置的组数应比集群大小至少小 1,以便在启动新版本的转出时,至少有 1 个集群成员可以处理旧版本。
- 原子转出:在部署应用程序集群所在的集群上激活指定的应用程序,而不是激活同一应用程序的当前版本,一次转出集群的一半,以便任何时候只有应用程序的一个版本可以处理请求。
- 复位策略
- 指定在执行转出操作期间如何启动应用程序版本实例。
- 硬复位:停止或重新启动应用程序服务器。
- 软复位:停止或重新启动应用程序实例,同时使应用程序服务器处于运行状态。
- 组转出的组大小
- 指定在对 rolloutStrategy 进行分组后要更新的服务器数。
- 整型
- 消耗时间间隔
- 指定在转出期间停止应用程序版本实例前,以便可以完成会话所需等待的时间(以秒计)。缺省值为 30 秒。
- 整型
- 停顿策略
- 指定是否在完成所有活动对话和会话后停顿集群成员和服务器,或者是否在指定的时间间隔后停顿集群成员和服务器。
DEFAULT:在完成所有活动对话和会话后停顿集群成员和服务器。
INTERVAL:在指定的时间间隔后停顿集群成员和服务器。另外,还必须将 quiesceInterval 指定为整数值(以秒计)。
返回值
- true: success
- false: failure
批处理方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask rolloutEdition {-appName BeenThere -edition 1.0 -params “{quiesceStrategy INTERVAL}{quiesceInterval 30}”}
AdminTask.rolloutEdition ('[-appName BeenThere -edition 1.0 -params “{quiesceStrategy INTERVAL}{quiesceInterval 30}”]')
避免故障: 以下示例仅适用于与 WebSphere® Application Server Network Deployment V7.0.0.x 一起运行的 V6.1.0.5。gotcha
AdminTask.rolloutEdition ('[-appName BeenThere -edition 1.0 -params [[rolloutStrategy grouped][resetStrategy soft] [groupSize 1][drainageInterval 30]]]')
- 使用 Jython 列表:
AdminTask.rolloutEdition (['-appName', 'BeenThere', '-edition', '1.0', '-params', '{quiesceStrategy INTERVAL}{quiesceInterval 30}'])
避免故障: 以下示例仅适用于与 WebSphere Application Server Network Deployment V7.0.0.x 一起运行的 V6.1.0.5。gotcha
AdminTask.rolloutEdition (['-appName', 'BeenThere', '-edition', '1.0', '-params', '[[rolloutStrategy grouped][resetStrategy soft] [groupSize 1][drainageInterval 30]]'])
交互方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask rolloutEdition {-interactive}
AdminTask.rolloutEdition ('[-interactive]')
- 使用 Jython 列表:
AdminTask.rolloutEdition (['-interactive'])
validateEdition
使用 validateEdition 命令可验证某个版本。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定应用程序版本的名称。(字符串)
- -params
- 指定验证期间创建的克隆集群的设置。注: 对于动态集群,可将原始集群的大小用于克隆集群。
- 动态集群:
- dynClusterMaxSize
- 指定要启动的最大动态集群实例数。
- dynClusterMinSize
- 指定要启动的最小动态集群实例数。
- 静态集群:
- staticClusterSize
- 指定静态集群的大小。staticClusterSize 的值无法超过要克隆的静态集群的大小。
- 动态集群:
返回值
- true: success
- false: failure
批处理方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask validateEdition {-appName BeenThere -edition 1.0 -params “{dynClusterMaxSize 2}{dynClusterMinSize 1}”}
AdminTask.validateEdition ('[-appName BeenThere -edition 1.0 -params “{dynClusterMaxSize 2}{dynClusterMinSize 1}”]')
避免故障: 以下示例仅适用于与 WebSphere Application Server Network Deployment V7.0.0.x 一起运行的 V6.1.0.5。gotcha
AdminTask.validateEdition ('[-appName BeenThere -edition 1.0 -params [[dynClusterMaxSize 2][dynClusterMinSize 1]]]')
- 使用 Jython 列表:
AdminTask.validateEdition (['-appName', 'BeenThere', '-edition', '1.0', '-params', '{dynClusterMaxSize 2}{dynClusterMinSize 1}'])
避免故障: 以下示例仅适用于与 WebSphere Application Server Network Deployment V7.0.0.x 一起运行的 V6.1.0.5。gotcha
AdminTask.validateEdition (['-appName', 'BeenThere', '-edition', '1.0', '-params', '[[dynClusterMaxSize 2][dynClusterMinSize 1]]'])
交互方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask validateEdition {-interactive}
AdminTask.validateEdition ('[-interactive]')
- 使用 Jython 列表:
AdminTask.validateEdition (['-interactive'])
listEditions
listEditions 命令提供应用程序所有已安装版本的列表。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
返回值
批处理方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask listEditions {-appName HelloWorld}
AdminTask.listEditions ('[-appName HelloWorld]')
- 使用 Jython 列表:
AdminTask.listEditions (['-appName', 'HelloWorld'])
交互方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask listEditions {-interactive}
AdminTask.listEditions ('[-interactive]')
- 使用 Jython 列表:
AdminTask.listEditions (['-interactive'])
isEditionExists
使用 isEditionExists 命令可验证特定应用程序是否存在指定版本。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定应用程序版本的名称。(字符串)
返回值
- true: success
- false: failure
批处理方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask isEditionExists {-appName HelloWorld -edition 2.0}
AdminTask.isEditionExists ('[-appName HelloWorld -edition 2.0]')
- 使用 Jython 列表:
AdminTask.isEditionExists (['-appName', 'HelloWorld', '-edition', '2.0'])
交互方式示例用法
- 使用 Jacl:
使用 Jython 字符串:$AdminTask isEditionExists {-interactive}
AdminTask.isEditionExists ('[-interactive]')
- 使用 Jython 列表:
AdminTask.isEditionExists (['-interactive'])
cloneDynamicCluster
使用 cloneDynamicCluster 命令可克隆动态集群以使用另一个节点组。
目标对象
无。
参数
- -clusterName
- 指定原始动态集群的名称。(字符串)
- -newClusterName
- 指定克隆动态集群的名称。(字符串)
- -nodeGroupName
- 指定克隆动态集群所在的节点组的名称。缺省情况下,如果未指定此参数,那么会将该名称设置成当前节点组。(字符串)
- -opMode
- 指定克隆动态集群的运作方式。缺省情况下,如果未指定此参数,那么会使用原始动态集群的方式。将值设置为 automatic、manual 或 supervised。(字符串)
有关运作方式的更多信息,请阅读“动态集群”。
- -templateName
- 指定现有模板的名称,格式为:cell_name/node_name/server_name。使用该模板可创建克隆集群的服务器实例。
批处理方式示例用法
- 使用 Jacl:
$AdminTask cloneDynamicCluster {-clusterName SourceCluster -newClusterName newCluster -nodeGroupName CloneNodeGroup -opMode supervised}
使用 Jython 字符串:$AdminTask cloneDynamicCluster {-clusterName SourceCluster -newClusterName newCluster -nodeGroupName CloneNodeGroup -opMode supervised –templateName xdCell/xdNode/SourceCluster_member1}
AdminTask.cloneDynamicCluster ('[-clusterName SourceCluster -newClusterName newCluster -nodeGroupName CloneNodeGroup -opMode supervised]')
AdminTask.cloneDynamicCluster ('[-clusterName SourceCluster -newClusterName newCluster -nodeGroupName CloneNodeGroup -opMode supervised –templateName xdCell/xdNode/SourceCluster_member1]')
- 使用 Jython 列表:
AdminTask.cloneDynamicCluster (['-clusterName', 'SourceCluster', '-newClusterName', 'newCluster', '-nodeGroupName', 'CloneNodeGroup', '-opMode', 'supervised'])
AdminTask.cloneDynamicCluster (['-clusterName', 'SourceCluster', '-newClusterName', 'newCluster', '-nodeGroupName', 'CloneNodeGroup', '-opMode', 'supervised','–templateName', 'xdCell/xdNode/SourceCluster_member1'])
交互方式示例用法
- 使用 Jacl:
$AdminTask cloneDynamicCluster {-interactive}
- 使用 Jython 字符串:
AdminTask.cloneDynamicCluster ('[-interactive]')
- 使用 Jython 列表:
AdminTask.cloneDynamicCluster (['-interactive'])
cancelValidation
使用 cancelValidation 命令可取消应用程序版本上的验证方式。
使用 getEditionState 命令可返回应用程序版本的状态。现有版本的状态可以是“活动”、“不活动”或“验证”。对于不存在的应用程序或版本,该方法将返回 null。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定应用程序版本的名称。(字符串)
返回值
- true:验证取消成功。
- false:验证取消失败。
批处理方式示例用法
- 使用 Jacl:
$AdminTask cancelValidation {-appName BeenThere -edition 1.0}
- 使用 Jython 字符串:
AdminTask.cancelValidation ('[-appName BeenThere -edition 1.0]')
- 使用 Jython 列表:
AdminTask.cancelValidation (['-appName', 'BeenThere', '-edition', '1.0'])
交互方式示例用法
- 使用 Jacl:
$AdminTask cancelValidation {-interactive}
- 使用 Jython 字符串:
AdminTask.cancelValidation ('[-interactive]')
- 使用 Jython 列表:
AdminTask.cancelValidation (['-interactive'])
getEditionState
使用 getEditionState 命令可返回应用程序版本的状态。现有版本的状态可以是“活动”、“不活动”或“验证”。对于不存在的应用程序或版本,该方法将返回 null。
目标对象
无。
参数
- -appName
- 指定应用程序名称。(字符串)
- -edition
- 指定应用程序版本的名称。(字符串)
返回值
- ACTIVE
- INACTIVE
- VALIDATE
批处理方式示例用法
- 使用 Jacl:
$AdminTask getEditionState {-appName BeenThere -edition 1.0}
- 使用 Jython 字符串:
AdminTask.getEditionState ('[-appName BeenThere -edition 1.0]')
- 使用 Jython 列表:
AdminTask.getEditionState (['-appName', 'BeenThere', '-edition', '1.0'])
交互方式示例用法
- 使用 Jacl:
$AdminTask getEditionState {-interactive}
- 使用 Jython 字符串:
AdminTask.getEditionState ('[-interactive]')
- 使用 Jython 列表:
AdminTask.getEditionState (['-interactive'])
安装应用程序版本
使用 AdminApp install 命令可安装某个应用程序版本。必须传递 -edition 参数指定版本标识。
- 使用 Jacl:
$AdminApp install /tmp/BeenThere1.0.ear {-appname BeenThere -edition 1.0 -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -MapModulesToServers {{"BeenThere WAR" BeenThere.war,WEB-INF/web.xml WebSphere: cell=TestCell,cluster=TestClusterB} {"BeenThere EJB" BeenThere.jar,META-INF/ejb-jar.xml WebSphere: cell=TestCell,cluster=TestClusterB}}}
- 使用 Jython:
AdminApp.install("/tmp/BeenThere1.0.ear", '[-appname BeenThere -edition 1.0 -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall off -processEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -buildVersion Unknown -noallowDispatchRemoteInclude -noallowServiceRemoteInclude -MapModulesToServers [["BeenThere WAR" BeenThere.war,WEB-INF/web.xml WebSphere:cell=TestCell,cluster=TestClusterB] ["BeenThere EJB" BeenThere.jar,META-INF/ejb-jar.xml WebSphere: cell=TestCell,cluster=TestClusterB]]]')
更新应用程序版本
使用 AdminApp update 命令可更新某个应用程序版本。传递完整的应用程序名称,它是应用程序和版本的名称,可用于指定该版本。
- 使用 Jacl:
$AdminApp update BeenThere-edition1.0 app {-operation update -contents /tmp/BeenThereE1-update.ear -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude}
- 使用 Jython:
AdminApp.update('BeenThere-edition1.0', 'app', '[-operation update -contents /tmp/BeenThereE1-update.ear -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary -nodeployejb -createMBeansForResources -noreloadEnabled -nodeployws -validateinstall warn -noprocessEmbeddedConfig -filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -noallowServiceRemoteInclude]')
编辑应用程序版本
使用 AdminApp edit 命令可编辑某个应用程序版本。传递完整的应用程序名称,它是应用程序和版本的名称,可用于指定该版本。
- 使用 Jacl:
$AdminApp edit BeenThere-edition1.0 {-CtxRootForWebMod {{"BeenThere WAR" BeenThere.war,WEB-INF/web.xml /beenthere}}}
- 使用 Jython:
AdminApp.edit('BeenThere-edition1.0', '[-CtxRootForWebMod [["BeenThere WAR" BeenThere.war,WEB-INF/web.xml /beenthere]]]')
卸载应用程序版本
使用 AdminApp uninstall 命令卸载某个应用程序版本。传递完整的应用程序名称,它是应用程序和版本的名称,可用于指定该版本。
- 使用 Jacl:
$AdminApp uninstall BeenThere-edition1.0
- 使用 Jython:
AdminApp.uninstall('BeenThere-edition1.0')