2009年3月3日星期二

WLS_008:WebLogic Server基本管理之五:不间断应用部署

本文最后一次修改时间:2011-12-03,WebLogic Server版本:10.3.5。

在生产环境中,一些重要的应用要求7x24小时运行,如何升级这些正在运行的应用是一个让人头疼的问题。
Weblogic Server能够在不停止现有应用的情况下部署新版本。
这时,如果还有用户访问旧版本应用,那么可以继续访问;新来的用户将访问新版本的应用。
所有旧版本的用户访问完毕后,旧版本应用将自动“退休”。


1. 使用java weblogic.Deployer 实现不间断应用部署
注意:使用此种方式实现不间断应用部署,要求应用第1次部署时也使用此种方式。
否则,如果第1次使用Console部署,第2次使用此种方式,将会报告如下错误:
You cannot deploy application, 'benefits', with version 'v2'. The application was previously deployed without version.

(1)第1次发布 benefits应用,版本号:v1
运行如下命令之前,先运行[domain_name]\bin\setDomainEnv.cmd设置运行环境。
java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password welcome1 -deploy -name benefits -source benefits.war -targets dizzy1 -appversion v1

访问效果如下图(列表是黄颜色的背景):


(2)第2次发布 benefits应用,版本号:v2
与第1个版本的benefits应用相比,只是把welcome.html中的table的background从yellow改成了green。
java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password welcome1 -redeploy -name benefits -source benefits.war -targets dizzy1 -appversion v2
注意,版本v2发布成功后,版本v1就自动“退休”了。

访问效果如下图(列表是绿颜色的背景):

(3)如果发现新发布的应用有问题,可以“切换”回旧应用
java weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password welcome1 -redeploy -name benefits -source benefits.war -targets dizzy1 -appversion v1

2. 在META-INF\MANIFEST.MF文件中指定版本
除了使用java weblogic.Deployer在-appversion中指定版本外,你还可以在META-INF\MANIFEST.MF文件中指定版本。
设置Weblogic-Application-Version的值,举例如下:
Manifest-Version: 1.0
Created-By: 1.5.0_03 (Sun Microsystems Inc.)
Weblogic-Application-Version: v1
你可以通过Console发布应用的第1个版本,然后使用java weblogic.Deployer发布更新版本。

参考文献:
1. http://bbs.rsky.com.cn/TopicOther.asp?t=5&BoardID=22&id=4785
2. http://docs.oracle.com/cd/E13222_01/wls/docs90/programming/versioning.html

没有评论: