【轉(zhuǎn)帖】IBM WAS WPS的腳本語(yǔ)言jacl探索

          作者:keyboardsun 轉(zhuǎn)載請(qǐng)標(biāo)明出處,請(qǐng)尊重作者原創(chuàng)權(quán)利
          Site:http://www.chinacsharp.net http://blog.csdn.net/keyboardsun

          我們知道WAS,WPS的控制臺(tái)功能很強(qiáng)大,也同樣的很復(fù)雜,其實(shí)呢,這些控制太的操作我們都可以通過(guò)編寫jacl腳本實(shí)現(xiàn),為什么要用腳本呢?呵呵,簡(jiǎn)單的說(shuō)方便管理吧,我舉個(gè)例子,大家就知道為什么要使用jacl腳本了。
          我 們?cè)谧鲆粋€(gè)電信的投訴項(xiàng)目,里面涉及的流程,包括子流程一共有400多個(gè),按照IBM的建議,一個(gè)EAR流程應(yīng)用最多打20個(gè)流程,如果多的話,會(huì)影響性 能的,當(dāng)然我們?cè)侔凑瘴覀兊臉I(yè)務(wù)還要分類打包,那結(jié)果如何,我們打了40多個(gè)ear,這么多ear啊,呵呵,我們光是登陸某一臺(tái)機(jī)器的web控制臺(tái),我們 一個(gè)一個(gè)發(fā)布,這要多久?呵呵,這需要半天,整整半天,當(dāng)然我們的后臺(tái)的服務(wù)器是集群的,有7臺(tái)機(jī)器需要安裝呢。撇開這個(gè)不說(shuō),當(dāng)我們某個(gè)應(yīng)用需要更新的 時(shí)候,我們?cè)趺崔k?一個(gè)一個(gè)的控制臺(tái)登陸,然后一個(gè)一個(gè)的更新。這多麻煩啊,對(duì)于維護(hù)人員,壓力太大。
          如果我們用jacl來(lái)解決這問(wèn)題,那就簡(jiǎn)單 多了,因?yàn)閣sadmin支持遠(yuǎn)程命令,可以通過(guò)SOAP登陸執(zhí)行,也就是說(shuō),我們的ear在自己的windows里面,我們就可以通過(guò)遠(yuǎn)程命令把程序安 裝我各個(gè)AIX系統(tǒng)的WPS,WAS里面,節(jié)省時(shí)間,而且容易控制,避免出錯(cuò)。
           
          本文我不打算詳細(xì)介紹jacl,本文側(cè)重于應(yīng)用,根據(jù)一個(gè)需求,給出解決的辦法。
           
          簡(jiǎn)單的說(shuō),我們?cè)赪AS上安裝一個(gè)應(yīng)用,jacl代碼如下:
          puts "-------------------------------------------------------------------"
          puts "—開始執(zhí)行jacl代碼啦 --"
          puts "-------------------------------------------------------------------"
           
          #這是我們要發(fā)布的應(yīng)用的存放路徑
          set EARDIR /home/XXX.ear
          #這是我們要發(fā)布的應(yīng)用的名稱
          set APPNAME APPNAME
           
          set NODE [$AdminControl getNode]
          #簡(jiǎn)單的理解,取得當(dāng)前的上下文
          set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=$NODE,process=server1,*]
           
          puts ""
          puts "Stop Application $APPNAME"
          puts ""
          #停止應(yīng)用
          $AdminControl invoke $APPMANAGER stopApplication $APPNAME
           
          puts ""
          puts "Uninstall Application $APPNAME"
          puts ""
          #卸載應(yīng)用
          $AdminApp uninstall $APPNAME
           
          puts ""
          puts "Saving configuration"
          puts ""
          #保存修改
          $AdminConfig save
           
           
          puts "-----------------------------------------------------------------"
          puts "--              Install EAR                                    --"
          puts "-----------------------------------------------------------------"
           
          puts ""
          puts "Install Application $APPNAME"
          puts ""
          #安裝應(yīng)用
          $AdminApp install $EARDIR {-appname $APPNAME}
           
          puts ""
          puts "Saving configuration"
          puts ""
          #保存修改
          $AdminConfig save
           
          puts ""
          puts "Start Application $APPNAME"
          puts ""
          #啟動(dòng)應(yīng)用
          $AdminControl invoke $APPMANAGER startApplication $APPNAME
           
          以上的例子我們做的是更新一個(gè)應(yīng)用,麻雀不大,東西不少。包括了停止,卸載,安裝,啟動(dòng)應(yīng)用。
           
          有人會(huì)問(wèn),這個(gè)簡(jiǎn)單,下面我來(lái)說(shuō)不簡(jiǎn)單的。在集群環(huán)境下該如何辦呢?需求如下。
          現(xiàn)在我有一個(gè)cluster,名稱叫CLUSTER包括兩個(gè)節(jié)點(diǎn)NODE1,NODE2,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)SERVER,分別為server1,server2我要把應(yīng)用安裝在這樣的cluster上面改怎么辦呢?
           
          呵呵,其實(shí)很簡(jiǎn)單,安裝的口令是這樣的
          $AdminApp install $EARDIR {-cluster CLUSTER}
          這樣就可以了,安裝過(guò)后保存下就可以了,這里我們?cè)诤竺婕由弦粋€(gè)參數(shù) {-cluster CLUSTER} 這樣就會(huì)把這個(gè)安裝的應(yīng)用更新到整個(gè)cluster了
          $AdminConfig save
           
          但是這里有個(gè)問(wèn)題,什么問(wèn)題呢,我安裝的時(shí)候可以一下子安裝到cluster,那么我停止呢?卸載呢?啟動(dòng)呢?這里很遺憾,這里沒(méi)有這個(gè)功能。那我們?cè)撛趺崔k呢?我們只能到每個(gè)server下面來(lái)停止了。比如我要停止一個(gè)叫TESTAPP的應(yīng)用,代碼如下。
           
          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下面停止就可以了,這樣這個(gè)應(yīng)用就被停止了,卸載,啟動(dòng)同樣。
           
          下面還有一種情況,比如有好多臺(tái)服務(wù)器,不是集群,但是應(yīng)用都一樣,我們?nèi)绾卧谧约旱碾娔X上面來(lái)解決這個(gè)問(wèn)題呢?
           
          比如有下面3臺(tái)機(jī)器
          IP             HOSTNAME
          10.10.10.1      TEST1
          10.10.10.2      TEST2
          10.10.10.3      TEST3
           
          應(yīng)用在e:/test.ear
          我要把應(yīng)用安裝到這三臺(tái)機(jī)器上。呵呵,其實(shí)很簡(jiǎn)單。
          我們做一個(gè)bat文件,內(nèi)容如下
          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
           
          這樣這個(gè)bat文件跑一下,三臺(tái)機(jī)器的應(yīng)用就全部都安裝上了,當(dāng)然啟動(dòng),停止如上。同樣的簡(jiǎn)單。呵呵,如果每個(gè)服務(wù)器是集群的,那么加上{-cluster clustername}參數(shù)就可以了。

          posted on 2010-11-23 16:54 koradji 閱讀(699) 評(píng)論(0)  編輯  收藏 所屬分類: was


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          db2

          dos

          Groovy

          Hibernate

          java

          WAS

          web application

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 阿巴嘎旗| 吉隆县| 苏州市| 鹤峰县| 永清县| 大姚县| 花莲县| 高碑店市| 邹平县| 南丹县| 竹山县| 岳西县| 宜城市| 象州县| 瑞金市| 彰武县| 昭苏县| 恩施市| 阜宁县| 屏东市| 桂阳县| 木里| 斗六市| 文山县| 鲁山县| 肃北| 黎川县| 新竹市| 湘潭市| 兴海县| 阳高县| 上高县| 江油市| 兰坪| 壶关县| 仙居县| 全椒县| 金寨县| 永春县| 通化县| 曲阳县|