设为首页 收藏本站
查看: 1282|回复: 0

[经验分享] IBM WAS WPS的脚本语言jacl探索

[复制链接]

尚未签到

发表于 2017-5-26 10:52:05 | 显示全部楼层 |阅读模式
IBM WAS WPS的脚本语言jacl探索

作者:keyboardsun 转载请标明出处,请尊重作者原创权利
Site:http://www.chinacsharp.nethttp://blog.csdn.net/keyboardsun
我们知道WAS,WPS的控制台功能很强大,也同样的很复杂,其实呢,这些控制太的操作我们都可以通过编写jacl脚本实现,为什么要用脚本呢?呵呵,简单的说方便管理吧,我举个例子,大家就知道为什么要使用jacl脚本了。
我们在做一个电信的投诉项目,里面涉及的流程,包括子流程一共有400多个,按照IBM的建议,一个EAR流程应用最多打20个流程,如果多的话,会影响性能的,当然我们再按照我们的业务还要分类打包,那结果如何,我们打了40多个ear,这么多ear啊,呵呵,我们光是登陆某一台机器的web控制台,我们一个一个发布,这要多久?呵呵,这需要半天,整整半天,当然我们的后台的服务器是集群的,有7台机器需要安装呢。撇开这个不说,当我们某个应用需要更新的时候,我们怎么办?一个一个的控制台登陆,然后一个一个的更新。这多麻烦啊,对于维护人员,压力太大。
如果我们用jacl来解决这问题,那就简单多了,因为wsadmin支持远程命令,可以通过SOAP登陆执行,也就是说,我们的ear在自己的windows里面,我们就可以通过远程命令把程序安装我各个AIX系统的WPS,WAS里面,节省时间,而且容易控制,避免出错。

本文我不打算详细介绍jacl,本文侧重于应用,根据一个需求,给出解决的办法。

简单的说,我们在WAS上安装一个应用,jacl代码如下:
puts "-------------------------------------------------------------------"
puts "—开始执行jacl代码啦 --"
puts "-------------------------------------------------------------------"

#这是我们要发布的应用的存放路径
set EARDIR /home/XXX.ear
#这是我们要发布的应用的名称
set APPNAME APPNAME

set NODE [$AdminControl getNode]
#简单的理解,取得当前的上下文
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=$NODE,process=server1,*]

puts ""
puts "Stop Application $APPNAME"
puts ""
#停止应用
$AdminControl invoke $APPMANAGER stopApplication $APPNAME

puts ""
puts "Uninstall Application $APPNAME"
puts ""
#卸载应用
$AdminApp uninstall $APPNAME

puts ""
puts "Saving configuration"
puts ""
#保存修改
$AdminConfig save


puts "-----------------------------------------------------------------"
puts "-- Install EAR --"
puts "-----------------------------------------------------------------"

puts ""
puts "Install Application $APPNAME"
puts ""
#安装应用
$AdminApp install $EARDIR {-appname $APPNAME}

puts ""
puts "Saving configuration"
puts ""
#保存修改
$AdminConfig save

puts ""
puts "Start Application $APPNAME"
puts ""
#启动应用
$AdminControl invoke $APPMANAGER startApplication $APPNAME

以上的例子我们做的是更新一个应用,麻雀不大,东西不少。包括了停止,卸载,安装,启动应用。

有人会问,这个简单,下面我来说不简单的。在集群环境下该如何办呢?需求如下。
现在我有一个cluster,名称叫CLUSTER包括两个节点NODE1,NODE2,每个节点对应两个SERVER,分别为server1,server2我要把应用安装在这样的cluster上面改怎么办呢?

呵呵,其实很简单,安装的口令是这样的
$AdminApp install $EARDIR {-cluster CLUSTER}
这样就可以了,安装过后保存下就可以了,这里我们在后面加上一个参数{-cluster CLUSTER} 这样就会把这个安装的应用更新到整个cluster了
$AdminConfig save

但是这里有个问题,什么问题呢,我安装的时候可以一下子安装到cluster,那么我停止呢?卸载呢?启动呢?这里很遗憾,这里没有这个功能。那我们该怎么办呢?我们只能到每个server下面来停止了。比如我要停止一个叫TESTAPP的应用,代码如下。

set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=NODE1,process=server1,*]
$AdminControl invoke $APPMANAGER stopApplication TESTAPP
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=NODE1,process=server2,*]
$AdminControl invoke $APPMANAGER stopApplication TESTAPP

set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=NODE2,process=server1,*]
$AdminControl invoke $APPMANAGER stopApplication TESTAPP

set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=NODE2,process=server2,*]
$AdminControl invoke $APPMANAGER stopApplication TESTAPP

这样要到各自的server下面停止就可以了,这样这个应用就被停止了,卸载,启动同样。

下面还有一种情况,比如有好多台服务器,不是集群,但是应用都一样,我们如何在自己的电脑上面来解决这个问题呢?

比如有下面3台机器
IP HOSTNAME
10.10.10.1 TEST1
10.10.10.2 TEST2
10.10.10.3 TEST3

应用在e:/test.ear
我要把应用安装到这三台机器上。呵呵,其实很简单。
我们做一个bat文件,内容如下
F:
Cd F:\IBM\WebSphere\ID\602\runtimes\bi_v6\bin
wsadmin -conntype SOAP -host TEST1 -port 8879 -f test.jacl
wsadmin -conntype SOAP -host TEST2 -port 8879 -f test.jacl
wsadmin -conntype SOAP -host TEST2 -port 8879 -f test.jacl

test.jacl的代码为:
$AdminApp install e:/test.ear
$AdminConfig save

这样这个bat文件跑一下,三台机器的应用就全部都安装上了,当然启动,停止如上。同样的简单。呵呵,如果每个服务器是集群的,那么加上{-cluster clustername}参数就可以了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-381283-1-1.html 上篇帖子: IBM MQ vs TIBCO RV(Rendzvous) vs JMS Provider 下篇帖子: 让 IBM 的笔记本也支持 Win 键
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表