系统工程师
· 上海智联腾华软件有限公司
WebSphere Application Server之wsadmin学习(一) 字数 13755 阅读 6937 评论 3 赞 2
there are two types of tasks: the operational task and the configurational task. wsadmin支持两种脚本语言: jacl(Java Command Language, deprecated) & Jython。 WAS 6.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] [ -conntypeSOA P [-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.scripting.con nectionTyp e
SOAP, RMI or NONE
com. ibm.script ing.port
TCP port of target system
com. ibm.script ing.host
Host name of target system
com. ibm.ws.scr ipting.def aultLang
Jython or Jacl
com. ibm.ws.scr ipting.ech oparams
Determines whether parameters or arguments are output to STDOUT or to the wsadmin trace file
com. ibm.ws.scr ipting.tra ceFile
File for trace information
com. ibm.ws.scr ipting.val i dationOutput
Location of validation reports
com. ibm.ws.scr ipting.tra ceString
= com.ibm.*=all=enabled
com. ibm.ws.scr ipting.app endTrace
Appends to the end of the existing log file
com. ibm.ws.scr ipting.pro files
List of profiles to be run before running user commands, scripts, or an interactive shell
com. ibm.ws.scr ipting.emi tWarningFo rC
usto mSecurityP olicy
Controls whethermessage WASX7207W is emitted when custom permissions are found
com. ibm.ws.scr ipting.tem pdir
Store temporary files when installing applications
com. ibm.ws.scr ipting.val idationLev el
Level of validation to use when configuration changes are made from the scripting interface
com. ibm.ws.scr ipting.cro ssDocument Va lida tionEnable d
Determines whether the validation mechanism examines other documents when changes are made to one document
com. ibm.ws.scr ipting.cla sspath
List of paths to 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,J2EE Application = 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 internalClassAccess Mode 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所有的端口报表 ,由于我的实验环境中只有一个节点,所以结果跟上面的命令相同。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
分享
添加新评论3 条评论
2012-09-22 22:23
2012-02-20 17:45
2011-12-14 11:12