随笔-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 阅读(9329) 评论(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 |
搞笑。转载又怎么了,神经病  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: