使用 wsadmin 脚本编制工具更新已安装的应用程序
使用 wsadmin 工具和脚本来更新应用程序服务器上安装的应用程序。
关于此任务
update 命令和 updateinteractive 命令都支持一组选项。还可以使用 options 命令获取企业归档 (EAR) 文件支持的选项列表,例如:
使用 Jacl:
$AdminApp options
使用 Jython:
print AdminApp.options()
您可以在批处理方式下使用选项来设置或更新配置值。为了确定要设置或更新哪个配置对象,将使用只读字段的值来查找相应的配置对象。只读字段的所有值都必须与现有配置对象匹配,否则命令将失败。
注意: 如果应用程序正在运行,那么更改应用程序设置将导致应用程序重新启动。在独立服务器上,应用程序在您保存更改后将重新启动。在多服务器产品上,应用程序将在您保存更改后重新启动,并且在安装应用程序的节点上,文件将同步。要控制对多服务器产品进行同步的时间,请取消选择控制台首选项页面上的将更改与节点同步。
执行以下步骤更新应用程序:
过程
下一步做什么
如果系统成功更新应用程序,那么此任务中的步骤将返回成功消息。但是,这些步骤可能会在系统解压缩二进制文件之前成功完成。例如,在网络部署环境中,在完成节点同步后解压缩二进制文件。在系统解压缩所有二进制文件后,您才能启动应用程序。在启动应用程序前使用 AdminApp 对象的 isAppReady 和 getDeployStatus 命令来验证系统是否已解压缩二进制文件。
如果系统已准备就绪,可以启动应用程序,那么 isAppReady 命令将返回值 true,如果系统未准备就绪,无法启动应用程序,那么该命令将返回值 false。如果系统未准备好,无法启动应用程序,那么系统可能正在展开应用程序二进制文件。用于通常在更新应用程序后将其启动的脚本将循环对 isAppReady 的调用,直到其返回值 true,再尝试启动应用程序:
使用 Jython:
import time
result = AdminApp.isAppReady('application1')
while (result == "false"):
### Wait 5 seconds before checking again
time.sleep(5)
result = AdminApp.isAppReady('application1')
print("Starting application...")
使用 Jacl:
set result [$AdminApp isAppReady application1]
while {$result == "false"} {
### Wait 5 seconds before checking again
after 5000
set result [$AdminApp isAppReady application1]
}
puts "Starting application..."
使用 getDeployStatus 命令来显示有关二进制文件展开状态的更多信息,如下例所示:
AdminApp.getDeployStatus('app1')
运行 getDeployStatus 命令(其中 app1 是 DefaultApplication)将产生类似于以下内容的关于 DefaultApplication 的状态信息:
ADMA5071I: Distribution status check started for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown
ADMA5011I: The cleanup of the temp directory for application DefaultApplication is complete.
ADMA5072I: Distribution status check completed for application DefaultApplication.
WebSphere:cell=myCell01,node=myNode01,distribution=unknown,expansion=unknown