隨筆-193  評論-715  文章-1  trackbacks-0

          本Blog所有內容不得隨意轉載,版權屬于作者所有。如需轉載請與作者聯系( fastzch@163.com )。
          未經許可的轉載,本人保留一切法律權益。
          一直以來,發現有某些人完全不尊重我的勞動成果,隨意轉載,提醒一下那些人小心哪天惹上官司。


          there are two types of tasks: the operational task and the configurational task.


          wsadmin
          支持兩種腳本語言: jacl(Java Command Language deprecated) & Jython WAS6.1 提供了工具轉換 Jacl 腳本為 Jython ,工具名為: Jacl2Jython 。這個工具能轉換 95-98% 的內容,但是開發人員必須手動的檢查所有的轉換。

          ?

          wsadmin.bat(or wsadmin.sh) 在每個應用服務器的 profile DM ,被管理的節點實例的 bin 目錄下,所以當你啟動 wsadmin 的時候,必須注意選擇正確的位置。

          要想得到 wsadmin 語法相關的幫助,可以輸入 wsadmin.bat -? ,以下是幫助的詳細內容:

          ----------------------------------------------------------------------

          WASX7001I: wsadmin 是用于 WebSphere 腳本編制的可執行文件。

          語法:

          ? wsadmin

          ??????? [ -h(elp)? ]

          ??????? [ -?]

          ??????? [ -c <command> ]

          ??????? [ -p <properties_file_name>]

          ??????? [ -profile <profile_script_name>]

          ??????? [ -f <script_file_name>]

          ??????? [ -javaoption java_option]

          ??????? [ -lang? language]

          ??????? [ -wsadmin_classpath? classpath]

          ??????? [ -profileName profile]

          ??????? [ -conntype

          ??????????????? SOAP

          ??????????????????????? [-host host_name]

          ??????????????????????? [-port port_number]

          ??????????????????????? [-user userid]

          ??????????????????????? [-password password] |

          ???? ???????????RMI

          ??????????????????????? [-host host_name]

          ??????????????????????? [-port port_number]

          ??????????????????????? [-user userid]

          ??????????????????????? [-password password] |

          ??????????????? NONE

          ??????? ]

          ??????? [ -jobid <jobid_string>]

          ???? ???[ -tracefile <trace_file>]

          ??????? [ -appendtrace <true/false>]

          ??????? [ script parameters ]

          ?

          其中 ??? command ”是要傳遞給腳本處理程序的命令;

          ??????? properties_file_name ”是要使用的 java 屬性文件;

          ??????? profile_script_name ”是在主命令或文件前要執行的腳本文件;

          ??????? script_file_name ”是要傳遞給腳本處理程序的命令;

          ??????? java_option ”是要傳遞給 Java 程序的 java 標準或非標準選項;

          ??????? language ”是要用于解釋腳本的語言;受支持的值為“ jacl ”和“ jython ”。

          ??????? classpath ”是附加到內置路徑中的類路徑;

          ??????? -conntype ”指定要使用的連接類型;

          ??????????????? 缺省參數是“ SOAP

          ??????????????? conntype 為“ NONE ”意味著沒有建立服務器連接

          ??????????????? 且某些操作會以本地方式執行;

          ??????? host_name ”是用于 SOAP RMI 連接的端口;

          ??????????????? 缺省值是本地主機;

          ??? ???? port_number ”是用于 SOAP RMI 連接的端口;

          ??????? userid ”是服務器以安全方式運行時

          ??????????????? 所需的用戶標識;

          ??????? password ”是服務器以安全方式運行時

          ??????????????? 所需的密碼;

          ??????? script parameters ”是命令行上的任何其他內容。它們

          ??????????????? argv 變量中傳遞給腳本;參數的數目

          ??????????????? 可在 argc 變量中獲得。

          ??????? jobid_string ”是要用來審計 wsadmin 的每個調用的

          ??????????????? 作業標識字符串;

          ??????? trace_file ”是 wsadmin 跟蹤輸出定向至的

          ??????????????? 日志文件名和位置;

          ?

          如果未指定命令或腳本,將創建一個解釋器 shell

          以供交互使用。要離開交互式腳本編制會話,

          使用“ quit ”或“ exit ”命令。

          ?

          可以在單個命令行上指定幾個命令、屬性文件和

          概要文件。它們是按照其指定的順序處理和執行的。

          ----------------------------------------------------------------------

          ?

          ?

          配置 wsadmin 有三種方式:

          1 ,使用 Profile 或系統默認的屬性文件:

          ?????? <profile_home>/properties/wsadmin.properties

          ?????? or

          ?????? <was_home>/properties/wsadmin.properties

          2 ,使用自定義的環境變量去替換原來的配置文件的位置,環境變量為: WSADMIN_PROPERTIES, 可以 Copy 默認的屬性文件到你指定的位置,然后修改它。

          3 ,在執行 wsadmin 命令時使用 -p 參數來設置屬性文件的位置

          ?

          Wsadmin 屬性列表

          Property

          Value

          com. ibm.ws.scr ipting.con nectionTyp e

          SOAP, RMI or NONE

          com. ibm.script ing.port

          TCPport of targetsystem

          com. ibm.script ing.host

          Host name oftarget system

          com. ibm.ws.scr ipting.def aultLang

          Jython or Jacl

          com. ibm.ws.scr ipting.ech oparams

          Determineswhether parametersor argumentsare outputto STDOUTorto the wsadmintrace file

          com. ibm.ws.scr ipting.tra ceFile

          File for trace information

          com. ibm.ws.scr ipting.val i dationOutput

          Location ofvalidation reports

          com. ibm.ws.scr ipting.tra ceString

          = com.ibm.*=all=enabled

          com. ibm.ws.scr ipting.app endTrace

          Appends tothe end ofthe existing log file

          com. ibm.ws.scr ipting.pro files

          List ofprofiles to be run before running user commands, scripts,oran interactive shell

          com. ibm.ws.scr ipting.emi tWarningFo rC

          usto mSecurityP olicy

          ControlswhethermessageWASX7207W is emitted when custom permissions are found

          com. ibm.ws.scr ipting.tem pdir

          Store temporary fileswhen installing applications

          com. ibm.ws.scr ipting.val idationLev el

          Levelof validation to use when configurationchangesaremadefromthe scripting interface

          com. ibm.ws.scr ipting.cro ssDocument Va lida tionEnable d

          Determineswhether thevalidation mechanismexamines other documents whenchangesaremadetoonedocument

          com. ibm.ws.scr ipting.cla sspath

          List ofpathsto search for classes and resources

          ?

          Wsadmin 的調用有三種不同的方式:

          使用單行命令方式 (-c)

          ?????? wsadmin –c AdminControl.getNode()

          使用交互方式

          ?????? wsadmin

          運行腳本文件,使用 -f 參數

          ?????? wsadmin –f myScript.py

          ?

          使用 -profile 參數,表示要執行的一些預先執行的腳本。

          使用 -p 可以定義屬性文件的位置。

          ?

          Wsadmin 管理的對象包括:

          AdminControl 用于操作控制。通過 MBean 來進行通訊,包含查詢在在的運行中的對象和其屬性,并在這些對象上調用操作。另外,支持關于連接服務的查詢,客戶端跟蹤的方便命令,重新連接至服務器,啟動和停止服務器。

          AdminConfig 管理存儲在倉庫中的配置信息。通過 WAS 的配置服務組件來查詢和更改配置。可以使用它來查詢存在的配置對象,創建配置對象,修改存在的對象和移除配置對象。在分布式的環境中,此命令僅僅能用于連接到 DM ,不能連接到 Node Agent 或管理某一 Application Server ,因為這些服務器的進程配置僅僅是保存在 DM 上的一個 Copy( 副本 )

          AdminApp 能更新應用的元數據,映射虛擬主機到 Web 模塊,映射已安裝的模塊至服務器。對一個應用程序進行更改,比如為應用程序指定一個共享庫,設置會話管理的配置屬性。

          AdminTask 用于訪問面向任務的管理命令。這些命令用于訪問配置命令和運行時對象管理命令。當腳本客戶端運行時,可以自動發現管理命令。可用的管理命令以用于安裝 WAS 的版本。

          Help

          ?????? print Help.AdminControl()


          運行環境:
          AdminConfig AdminTask AdminApp 對象都是處理配置功能。可以在連接或不連接至服務器的環境下運行,但 AdminControl 需要連接到服務器才能運行,因為他是通過調用正在運行的 JMX MBean 來執行的。

          ?

          ?

          AdminControl.queryNames(*)

          查詢當前運行在 MBean Server 上的所有 MBean 的對象名。

          如果客戶端隸屬于一個單獨的 Server ,這個列表中僅包含運行在這個 Server 上的 MBean

          如果客戶端隸屬于一個 Node Agent ,這個列表包含運行在此節點上所有 Server MBean

          如果客戶端隸屬于一個 DM ,這個列表中則包含運行在這個 DM 上的所有 Node Agent ,所有 Server MBean

          ?

          一個列出所有 MBean 對象的腳本:

          file? = ? " mbean.txt "
          logFile?
          = ?open(?file,? " a " ?)
          mbStr?
          = ?AdminControl.queryNames( " *:* " )
          mbList?
          = ?mbStr.split(java.lang.System.getProperty( " line.separator " ))
          for ?item? in ?mbList:
          ????????
          if ?(item? != ? "" ):
          ????????????????
          print ? >> logFile,? " ObjectName:? " + item
          ????????
          # endIf
          #
          endFor

          會得到如下形式的內容:

          ObjectName:?WebSphere:name = wasportlet.war,process = server1,Application = isclite,platform = dynamicproxy,J2EEApplication = isclite,node = starNode01,J2EEName = isclite # wasportlet.war,j2eeType=WebModule,J2EEServer=server1,Server=server1,version=6.1.0.0,type=WebModule,mbeanIdentifier=null,cell=starNode01Cell,spec=1.0

          你可以通過關鍵字來縮小查找范圍,如:

          wsadmin>AdminControl.queryNames('WebSphere:type=Server,node=starNode01,*')

          另外,也可以通過 completeObjectName 命令來獲得其完整的對象名。如:

          wsadmin>AdminControl. completeObjectName ('WebSphere:type=Server,node=starNode01,*')

          但這個命令如果遇到多個匹配項的時候會提示并只會返回第一項。

          ?

          可以通過如下方法得到一個對象的屬性:

          wsadmin>serv=AdminControl. completeObjectName ('WebSphere:type=Server,*')

          wsadmin>print Help.attributes(serv)

          得到如下結果:

          屬性??????????????????????????????類型??????????????????????????????訪問
          name????????????????????????????java.lang.String????????????????RO
          shortName???????????????????????java.lang.String????????????????RO
          threadMonitorInterval???????????int?????????????????????????????RW
          threadMonitorThreshold??????????int?????????????????????????????RW
          threadMonitorAdjustmentThreshold??int?????????????????????????????RW
          pid?????????????????????????????java.lang.String????????????????RO
          cellName????????????????????????java.lang.String????????????????RO
          cellShortName???????????????????java.lang.String????????????????RO
          deployedObjects?????????????????[Ljava.lang.String;?????????????RO
          javaVMs?????????????????????????[Ljava.lang.String;?????????????RO
          nodeName????????????????????????java.lang.String????????????????RO
          nodeShortName???????????????????java.lang.String????????????????RO
          processType?????????????????????java.lang.String????????????????RO
          resources???????????????????????[Ljava.lang.String;?????????????RO
          serverVersion???????????????????java.lang.String????????????????RO
          serverVendor????????????????????java.lang.String????????????????RO
          state???????????????????????????java.lang.String????????????????RO
          platformName????????????????????java.lang.String????????????????RO
          platformVersion?????????????????java.lang.String????????????????RO
          internalClassAccessMode?????????java.lang.String????????????????RO
          objectName??????????????????????java.lang.String????????????????RO
          stateManageable?????????????????boolean?????????????????????????RO
          statisticsProvider??????????????boolean?????????????????????????RO
          eventProvider???????????????????boolean?????????????????????????RO
          eventTypes??????????????????????[Ljava.lang.String;?????????????RO

          每一個屬性都有可讀寫性,RO代表只讀,RW代表可讀可寫。

          我們可以通過 AdminControl getAttribute setAttribute 方法來對這些屬性進行操作,如:

          AdminControl.getAttribute(serv,'pid')

          ?

          同時, operations 命令也可以為我們列出某一 MBean 支持的操作,如下:

          print Help.operations(serv)

          ?

          MBean 支持的操作可以用 invoke 命令來進行調用,如:

          print AdminControl.invoke(serv,'getVersionsForAllProducts')

          ?

          另外,有一個圖形化的工具 MBI MBeanInspector )可以查看和調用 MBean 的這些屬性。目前 IBM 的網站上提供的版本是為 WAS5.x 的版本開發的,但是在 WAS6.x 中也可以使用。 MBI 并不是與 profile 相關的,可以使用 WAS 安裝目錄 profile 下的 sas.proerties 文件替換到 WAS 根目錄下面的 sas.properties 文件,以此來允許安全的連接。其網址為:

          http://www.alphaworks.ibm.com/tech/mbeaninspector

          ?

          ?

          AdminConfig and AdminTask Objects are used to managed configuration information.

          AdminConfig 通過 WAS 的配置服務查詢和更新配置。所有通過 AdminConfig 的命令的 modifications 都被存儲到臨時的工作空間,直到調用 save 命令。

          注意:使用 AdminConfig 配置 WAS ,需要對 WAS XML 配置文檔和配置目錄內容有很好的理解。


          Types
          命令

          WAS 的配置在一組 XML 文檔中由 types attribute names 組成。在 wsadmin 中,每一個元素類型被作為一個具有唯一配置 ID 的配置對象管理。所有可用的配置對象都可以用 types 命令列出。命令為: AdminConfig.types()

          同時,也可以用 AdminConfig attributes 命令來列出某一對象的屬性,如:

          wsadmin>print AdminConfig.attributes('WorkManagerInfo')

          ?

          一個對象可以包含另一個對象,因此,父子關系在配置中也存在。可以通過 parents 命令來獲得其父對象,如: wsadmin>AdminConfig.parents('ApplicationServer')

          ?

          getid 命令返回一個配置對象的配置名。配置對象被命名為對象及其配置 ID 的組合。

          ?

          list 命令返回給定類型的一個對象列表。例如,可以將 DataSource 對象列出。如:

          wsadmin>AdminConfig.list('DataSource')

          ?

          defaults 命令顯示一個對象的屬性的默認值列表。如:

          wsadmin>print AdminConfig.defaults('DynamicCache')

          ?

          配置對象的 input output 屬性

          AdminConfig attributes 命令是 wsadmin 在線幫助的一部分。

          ?

          ?

          使用 AdminConfig AdminControl 需要一些 JMX 框架和 WebSphere XML 配置結構的一些知識。為了執行一系列的腳本管理任務,而又沒有底層架構的知識, AdminTask 對象將給你一些引導。

          AdminTask 對象的命令更像是一個向導,提供一步一步的向導去執行管理操作。同時,也可以交互式的調用,會提示給用戶一些需要的參數,或者是像批次調用一樣,所有的輸入作為調用的一部分。

          AdminTask 對象提供很多命令來執行簡單或復雜的管理任務,為了某一特定的任務找到一個命令,這些命令被按照邏輯進行了分組。

          用如下命令可以列出所有的分組:

          wsadmin>print AdminTask.help('-commandGroups')

          會得出所有的分組。然后,可以對其中的某一組命令進行查詢,如:

          wsadmin>print AdminTask.help('AdminReports')

          可得出如下結果:

          WASX8007I:?命令組的詳細幫助:AdminReports
          描述:管理配置報告
          命令:
          reportConfigInconsistencies?
          - ?檢查配置庫并報告任何結構不一致性
          reportConfiguredPorts?
          - ?生成單元中配置的端口的報告

          此時,可進一步查詢某一命令的用法,如下:

          wsadmin>print AdminTask.help('reportConfiguredPorts')

          調用其中某一命令的方法為:

          wsadmin>print AdminTask.reportConfiguredPorts()

          此命令可得到如下結果:

          單元?starNode01Cell?中配置的端口
          節點?starNode01?/服務器?server1
          ????star:
          2809 ?BOOTSTRAP_ADDRESS
          ????star:
          8880 ?SOAP_CONNECTOR_ADDRESS
          ????star:
          9401 ?SAS_SSL_SERVERAUTH_LISTENER_ADDRESS
          ????star:
          9403 ?CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS
          ????star:
          9402 ?CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS
          ????
          * : 9060 ?WC_adminhost
          ????
          * : 9080 ?WC_defaulthost
          ????
          * : 9353 ?DCS_UNICAST_ADDRESS
          ????
          * : 9043 ?WC_adminhost_secure
          ????
          * : 9443 ?WC_defaulthost_secure
          ????
          * : 5060 ?SIP_DEFAULTHOST
          ????
          * : 5061 ?SIP_DEFAULTHOST_SECURE
          ????
          * : 7276 ?SIB_ENDPOINT_ADDRESS
          ????
          * : 7286 ?SIB_ENDPOINT_SECURE_ADDRESS
          ????
          * : 5558 ?SIB_MQ_ENDPOINT_ADDRESS
          ????
          * : 5578 ?SIB_MQ_ENDPOINT_SECURE_ADDRESS
          ????star:
          9100 ?ORB_LISTENER_ADDRESS

          根據前面所說,我們可以使用交互式的方式來調用,如下:

          wsadmin>print AdminTask.reportConfiguredPorts('-interactive')

          會出現如下提示:

          單元?{0}?中配置的端口
          生成單元中配置的端口的報告
          節點名?(node):

          此時,我們輸入節點名,如:starNode01

          單元?{0}?中配置的端口
          F(完成)
          C(取消)
          選擇?[F,?C]:[F]

          再輸入F或直接回車,表示參數輸入完成,即可得到starNode01所有的端口報表,由于我的實驗環境中只有一個節點,所以結果跟上面的命令相同。

          posted on 2008-09-18 21:04 Robin's Programming World 閱讀(9402) 評論(4)  編輯  收藏 所屬分類: Java讀書Webshere

          評論:
          # re: WebSphere Application Server之wsadmin學習(一) 2008-09-19 00:38 | 隔葉黃鶯
          受教了,謝謝,希望有機能好生用上。  回復  更多評論
            
          # re: WebSphere Application Server之wsadmin學習(一) 2008-09-19 08:05 | Robin's Java World
          @隔葉黃鶯
          呵呵,相信肯定有機會的。  回復  更多評論
            
          # re: WebSphere Application Server之wsadmin學習(一) 2008-09-19 09:50 | 拓鴻
          多謝了,回去好好研究  回復  更多評論
            
          # re: WebSphere Application Server之wsadmin學習(一)[未登錄] 2010-12-22 21:32 |
          搞笑。轉載又怎么了,神經病  回復  更多評論
            
          主站蜘蛛池模板: 高平市| 聂拉木县| 诸城市| 辉南县| 靖安县| 岳普湖县| 江陵县| 出国| 延寿县| 通河县| 二连浩特市| 永寿县| 綦江县| 重庆市| 渭南市| 琼结县| 来凤县| 乡城县| 什邡市| 吉安市| 方山县| 丹寨县| 石林| 土默特左旗| 塘沽区| 偃师市| 平顺县| 罗城| 台中县| 乡城县| 营口市| 清流县| 赤城县| 思茅市| 刚察县| 扎鲁特旗| 清丰县| 建阳市| 平潭县| 盘锦市| 宁武县|