wyhwlls
作者wyhwlls·2010-10-22 16:33
系统工程师·上海智联腾华软件有限公司

WebSphere Application Server之wsadmin学习(一)

字数 13755阅读 6937评论 3赞 2
there are two types of tasks: the operational task and the configurational task.


wsadmin支持两种脚本语言:jacl(JavaCommand Languagedeprecated) & JythonWAS6.1提供了工具转换Jacl脚本为Jython,工具名为:Jacl2Jython。这个工具能转换95-98%的内容,但是开发人员必须手动的检查所有的转换。
  
wsadmin.bat(or wsadmin.sh)在每个应用服务器profileDM,被管理的节点实例的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”是用于SOAPRMI连接的端口;

缺省值是本地主机;


port_number”是用于SOAPRMI连接的端口;

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.connectionType

SOAP, RMI or NONE

com.ibm.scripting.port

TCP
port of target
system

com.ibm.scripting.host

Hostname of
target system

com.ibm.ws.scripting.defaultLang

Jython or Jacl

com.ibm.ws.scripting.echoparams

Determines
whether parameters
or arguments
are output
to STDOUT
or
to the wsadmin
trace file

com.ibm.ws.scripting.traceFile

File for trace information

com.ibm.ws.scripting.validationOutput

Location of
validation reports

com.ibm.ws.scripting.traceString

=com.ibm.*=all=enabled

com.ibm.ws.scripting.appendTrace

Appends to
the end of
the existing log file

com.ibm.ws.scripting.profiles

List of
profiles to be run before running user commands, scripts,
or
an interactive shell

com.ibm.ws.scripting.emitWarningForC

ustomSecurityPolicy

Controls
whether
message
WASX7207W is emitted when custom permissions are found

com.ibm.ws.scripting.tempdir

Store temporary files
when installing applications

com.ibm.ws.scripting.validationLevel

Level
of validation to use when configuration
changes
are
made
from
the scripting interface

com.ibm.ws.scripting.crossDocumentValidationEnabled

Determines
whether the
validation mechanism
examines other documents when
changes
are
made
to
one
document

com.ibm.ws.scripting.classpath

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或管理某一ApplicationServer,因为这些服务器的进程配置仅仅是保存在DM上的一个Copy(副本)
AdminApp能更新应用的元数据,映射虚拟主机到Web模块,映射已安装的模块至服务器。对一个应用程序进行更改,比如为应用程序指定一个共享库,设置会话管理的配置属性。
AdminTask用于访问面向任务的管理命令。这些命令用于访问配置命令和运行时对象管理命令。当脚本客户端运行时,可以自动发现管理命令。可用的管理命令以用于安装WAS的版本。
Help

print Help.AdminControl()


运行环境:
AdminConfigAdminTaskAdminApp对象都是处理配置功能。可以在连接或不连接至服务器的环境下运行,但AdminControl需要连接到服务器才能运行,因为他是通过调用正在运行的JMX MBean来执行的。
  
  
AdminControl.queryNames(*)
查询当前运行在MBean Server上的所有MBean的对象名。
如果客户端隶属于一个单独的Server,这个列表中仅包含运行在这个Server上的MBean
如果客户端隶属于一个Node Agent,这个列表包含运行在此节点上所有ServerMBean
如果客户端隶属于一个DM,这个列表中则包含运行在这个DM上的所有Node Agent,所有ServerMBean
  
一个列出所有MBean对象的脚本:




file=
"mbean.txt"
logFile
=open( file,"a")
mbStr
=AdminControl.queryNames("*:*")
mbList
=mbStr.split(java.lang.System.getProperty("line.separator"))
foriteminmbList:
        
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代表可读可写。
我们可以通过AdminControlgetAttributesetAttribute方法来对这些属性进行操作,如:
AdminControl.getAttribute(serv,'pid')
  
同时,operations命令也可以为我们列出某一MBean支持的操作,如下:
print Help.operations(serv)
  
MBean支持的操作可以用invoke命令来进行调用,如:
print AdminControl.invoke(serv,'getVersionsForAllProducts')
  
另外,有一个图形化的工具MBIMBeanInspector)可以查看和调用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,需要对WASXML配置文档和配置目录内容有很好的理解。

Types命令
WAS的配置在一组XML文档中由typesattribute names组成。在wsadmin中,每一个元素类型被作为一个具有唯一配置ID的配置对象管理。所有可用的配置对象都可以用types命令列出。命令为:AdminConfig.types()
同时,也可以用AdminConfigattributes命令来列出某一对象的属性,如:
wsadmin>print AdminConfig.attributes('WorkManagerInfo')
  
一个对象可以包含另一个对象,因此,父子关系在配置中也存在。可以通过parents命令来获得其父对象,如:wsadmin>AdminConfig.parents('ApplicationServer')
  
getid命令返回一个配置对象的配置名。配置对象被命名为对象及其配置ID的组合。
  
list命令返回给定类型的一个对象列表。例如,可以将DataSource对象列出。如:
wsadmin>AdminConfig.list('DataSource')
  
defaults命令显示一个对象的属性的默认值列表。如:
wsadmin>print AdminConfig.defaults('DynamicCache')
  
配置对象的inputoutput属性
AdminConfigattributes命令是wsadmin在线帮助的一部分。
  
  
使用AdminConfigAdminControl需要一些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:
2809BOOTSTRAP_ADDRESS
    star:
8880SOAP_CONNECTOR_ADDRESS
    star:
9401SAS_SSL_SERVERAUTH_LISTENER_ADDRESS
    star:
9403CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS
    star:
9402CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS
   
*:9060WC_adminhost
   
*:9080WC_defaulthost
   
*:9353DCS_UNICAST_ADDRESS
   
*:9043WC_adminhost_secure
   
*:9443WC_defaulthost_secure
   
*:5060SIP_DEFAULTHOST
   
*:5061SIP_DEFAULTHOST_SECURE
   
*:7276SIB_ENDPOINT_ADDRESS
   
*:7286SIB_ENDPOINT_SECURE_ADDRESS
   
*:5558SIB_MQ_ENDPOINT_ADDRESS
   
*:5578SIB_MQ_ENDPOINT_SECURE_ADDRESS
    star:
9100ORB_LISTENER_ADDRESS

根据前面所说,我们可以使用交互式的方式来调用,如下:
wsadmin>print AdminTask.reportConfiguredPorts('-interactive')
会出现如下提示:





单元 {0} 中配置的端口
生成单元中配置的端口的报告
节点名 (node):

此时,我们输入节点名,如:starNode01


单元 {0} 中配置的端口
F(完成)
C(取消)
选择 [F, C]:[F]

再输入F或直接回车,表示参数输入完成,即可得到starNode01所有的端口报表,由于我的实验环境中只有一个节点,所以结果跟上面的命令相同。

原文出自http://space.itpub.net/14789789/viewspace-478244

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论3 条评论

ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
2012-09-22 22:23
就说是在哪里看过,不过是不错的文章
yuanqcyuanqc运维工程师bhr
2012-02-20 17:45
同学习
造梦的雨果造梦的雨果实施工程师中软国际
2011-12-14 11:12
学习一下,
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广