本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 阅读(9322)
评论(4) 编辑 收藏 所属分类:
Java 、
读书 、
Webshere