使用 wsadmin 脚本编制启动 wsadmin 脚本编制客户机

可以使用 wsadmin 工具来配置和管理应用程序服务器、应用程序部署和服务器运行时操作。

有关此任务

wsadmin 工具支持通过运行脚本来自动化环境的配置任务。 但是,wsadmin 工具的使用存在某些限制,其中包括:
  • wsadmin 工具仅支持 Jython 和 Jacl 脚本语言。

    WebSphere Application Server 的 6.1 发行版表示与 wsadmin 工具关联的 Jacl 语法的废弃过程开始。 wsadmin 工具的 Jacl 语法继续保留在产品中且至少受两个主要产品发行版支持。 此后,可能会从 wsadmin 工具中移除 Jacl 语言支持。 wsadmin 工具的 Jython 语法是 WebSphere Application Server 管理自动化的策略方向。 应用程序服务器提供了显著增强的管理功能和工具(支持产品自动化和 Jython 语法的使用)。

    避免麻烦: 并非所有 WebSphere® Application Server 组件类都打包在同一 .jar 文件中。 如果您要使用 wsadmin 工具来运行 Jython 脚本,那么在 wsadmin 命令上包括 jython.package.path 系统属性以确保在启动 wsadmin 期间将所有需要的 JAR 文件设置为 jython 程序包路径。
    ./wsadmin.sh -lang jython -javaoption
    "-Djython.package.path=/usr/WebSphere70/AppServer/plugins/com.ibm.ws.wlm.jar"   

    如果要从打包在除 runtime.jaradmin.jar之外的 .jar 文件中的不同 WebSphere Application Server 类调用 WebSphere Application Server 函数,那么可以在为 jython.package.path 系统属性指定的路径中包含多个 jar 文件,并使用分号 (;) 进行分隔。

    ./wsadmin.sh -lang jython -javaoption
    "-Djython.package.path=/usr/WebSphere70/AppServer/plugins/com.ibm.ws.wlm.jar;com.ibm.ws.wccm.jar"  

    如果要使用 ws_ant 在 Jython 脚本中调用 WebSphere Application Server 函数,那么可以创建 .prop 文本文件,并在此文件中包含以下行:

    jython.package.path=/usr/WebSphere70/AppServer/plugins/com.ibm.ws.wlm.jar  

    然后在 ant 脚本 xml 文件中包括属性文件。 例如:

    <taskdef name="wsadmin" classname="com.ibm.websphere.ant.tasks.WsAdmin"/>
    <target name="main" >  
        <wsadmin conntype="NONE" lang="jython" failonerror="true" properties="/tmp/jython.prop"
                 script="/home/fsgapp/MSTWasBuild/project/scripts/socr/socr/jython/configure.py"> 
        </wsadmin>
    </target>  
  • wsadmin 工具对运行相同版本或更高版本产品的应用程序服务器、Deployment Manager、管理代理程序和作业管理器的安装、配置、部署和运行时操作进行管理。 wsadmin 工具无法连接至其运行的产品版本低于 wsadmin 工具版本的应用程序服务器、Deployment Manager、管理代理程序或作业管理器。 例如,V7.x wsadmin 客户机无法连接到 V6.x 应用程序服务器。 但是,V6.x wsadmin 客户机能够连接到 V7.x 应用程序服务器。 因为在每个产品发行版中对 wsadmin 工具添加了新功能,所以存在此限制。 无法在运行先前产品版本的应用程序服务器上使用新的命令功能。
  • wsadmin 工具在混合单元环境中的 Deployment Manager 节点级别进行操作。 不要在应用程序服务器节点级别运行 wsadmin,以确保所有命令功能都可用。

[AIX Solaris HP-UX Linux Windows]wsadmin 启动程序支持多个脚本对象,包括 AdminConfig、AdminControl、AdminApp、AdminTask 和 Help 对象。 脚本使用这些对象来进行应用程序管理、配置、操作控制和与运行于产品进程中的 MBean 进行通信。 您必须先启动 wsadmin 脚本编制客户机,才能使用脚本编制执行任何其他任务。

[z/OS]在启动启用了安全的 wsadmin 工具前,请查看“WebSphere Application Server 管理员的 SSL 注意事项”主题和“为客户机和服务器定义 SSL 安全”主题。

在灵活的管理环境中,可以将 wsadmin 工具连接至基本应用程序服务器、Deployment Manager、管理代理程序或作业管理器进程。 如果不指定基本应用程序服务器的端口或已指定给作业管理器的概要文件名称,那么 wsadmin 工具将自动连接至管理代理程序。

避免麻烦: 应用程序管理设计不允许您安装高于客户机的 EE 规范级别 EAR 或模块。 在 wsadmin 中运行的客户机代码可读取 EAR 文件,并使用该内容的自省生成适用于该应用程序的部署配置选项。 客户端代码无法处理高于客户机支持的规范级别。

过程

  1. 找到启动 wsadmin 脚本编制客户机的命令。

    [z/OS]用于调用脚本编制进程的命令位于 app_server_root/bin 目录中。 使用 wsadmin.sh 文件。

    [AIX Solaris HP-UX Linux Windows][IBM i]选择下列其中一项:
    • 请使用特定概要文件来调用脚本进程。 用于调用脚本进程的 QShell 命令在 profile_root/bin 目录中。 QShell 脚本的名称是 wsadmin。 如果使用此选项,那么不必指定 -profileName profile_name 参数。
    • 请使用缺省概要文件来调用脚本进程。 wsadmin Qshell 命令位于 app_server_root/bin 目录中。 如果您不想连接到缺省概要文件,那么必须指定 -profileName profile_name 参数来指示要使用的概要文件。
  2. 在灵活的管理环境中,确定是连接至基本应用程序服务器、管理代理程序还是连接至作业管理器进程。
    • 连接至管理代理程序进程。
      将 wsadmin 工具连接至管理代理程序,以配置和管理服务器。 如果不指定连接选项,那么 wsadmin 工具将自动连接至管理代理程序进程。 使用以下命令来连接至管理代理程序:
      wsadmin -lang jython
    • 连接至基本应用程序服务器进程。
      将 wsadmin 工具连接至基本应用程序服务器,以管理相关特定服务器的设置。 当连接至包含一个服务器且已向管理代理程序注册的节点时,请使用此连接类型。 使用诸如以下命令来连接基本应用程序服务器:
      wsadmin -conntype SOAP [-port 4213] -lang jython
    • 连接至作业管理器进程。
      将 wsadmin 工具连接至作业管理器,以对管理作业进行提交、监视和管理。 使用诸如以下命令来连接作业管理器:
      wsadmin -profileName JobMgr01 -lang jython
  3. 查看 wsadmin 工具的其他连接选项。
    您可以用几种不同的方法启动 wsadmin 脚本编制客户机。 要指定运行脚本的方法,执行下列 wsadmin 工具选项中的某个:
    交互地运行脚本命令

    使用除 -f-c 之外的选项运行 wsadmin 或不使用选项运行 wsadmin。 wsadmin 工具通过 wsadmin 提示符来启动和显示交互式 shell。 在 wsadmin 提示下,输入任何 Jacl 或 Jython 命令。 您也可以使用 AdminControl、AdminApp、AdminConfig、AdminTask 或 Help wsadmin 对象调用命令。 要脱离交互式脚本会话,使用 quitexit 命令。 这些命令不带任何参数。

    以下示例用于启动 wsadmin 工具:
    • 使用 Jython 启动 wsadmin 工具:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jython
      [IBM i]
      wsadmin -lang jython
      [Windows]
      wsadmin.bat -lang jython
    • 在启用安全性时使用 Jython 启动 wsadmin 工具:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jython -user user_name -password password
      [IBM i]
      wsadmin -lang jython -user user_name -password password
      [Windows]
      wsadmin.bat -lang jython -user user_name -password password
    • 不带选项使用 Jacl 启动 wsadmin 工具:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jacl
      [IBM i]
      wsadmin -lang jacl
      [Windows]
      wsadmin.bat -lang jacl
    作为各自命令运行脚本命令

    使用 -c 选项运行 wsadmin 工具。

    [Linux][AIX][z/OS][HP-UX][Solaris]如果使用 wsadmin -c 选项调用包含美元符号字符 ($) 的命令,那么命令行会尝试替换变量。 要避免此问题,请使用反斜杠字符 (\) 对美元符号字符进行转义。 例如: wsadmin -c "\$AdminApp install ..."

    以下示例分别运行命令:
    • 使用 Jython 运行 AdminApp 对象的 list 命令:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jython -c 'AdminApp.list()'
      [IBM i]
      wsadmin -lang jython -c "AdminApp.list()"
      [Windows]
      wsadmin -lang jython -c "AdminApp.list()"
    • 使用 Jacl 运行 AdminApp 对象的 list 命令:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -c "\$AdminApp list"
      wsadmin.sh -c '$AdminApp list'
      [IBM i]
      wsadmin -c "$AdminApp list"
      [Windows]
      wsadmin -c "$AdminApp list"
    按脚本运行脚本命令

    使用 -f 选项运行 wsadmin 工具,并将您要运行的命令放入文件中。

    [z/OS]WebSphere Application Server for z/OS® 支持 Jacl 和 Jython 命令文件的多种编码。 命令文件的缺省编码为 ASCII。 要运行 EBCDIC 编码的文件,请通过 -javaoption 标志将以下 Java™ 虚拟机 (JVM) 自变量添加到 wsadmin.sh 文件:
    -Dscript.encoding=Cp1047
    例如:
    wsadmin.sh -f <script_file> -javaoption -Dscript.encoding=Cp1047
    或者,可以具有 wsadmin.sh 文件的两个版本,其中一个引用文件的 ASCII 版本,而另一个引用文件的 EBCDIC 版本。 例如,将 wsadmin.sh 文件复制到 wsadminE.sh 文件。 然后,将 -Dscript.encoding=Cp1047 添加到 wsadminE.sh 文件。
    以下示例运行脚本:
    • 使用 Jython 运行 a1.py 脚本:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jython -f  al.py
      [IBM i]
      wsadmin -lang jython -f  al.py
      [Windows]
      wsadmin -lang jython -f  al.py

      其中 a1.py 文件包含下列命令:

      apps = AdminApp.list()
      print apps
    在概要文件脚本中运行脚本命令

    概要文件脚本是一个脚本,它在主脚本之前或在进入交互方式之前运行。 您可以使用概要文件脚本来设置为用户或安装定制的脚本环境。

    [z/OS]WebSphere Application Server for z/OS 支持 Jacl 和 Jython 概要文件脚本的多种编码。 概要文件的缺省编码为 ASCII。 要运行 EBCDIC 编码的概要文件脚本文件,请将以下 Java 虚拟机 (JVM) 参数添加到 wsadmin.sh 文件:
    -Dprofile.encoding=Cp1047
    例如:
    wsadmin.sh -javaoption -Dprofile.encoding=Cp1047
    或者,可以具有 wsadmin.sh 文件的两个版本,其中一个引用文件的 ASCII 版本,而另一个引用文件的 EBCDIC 版本。 例如,将 wsadmin.sh 文件复制到 wsadminE.sh 文件。 然后,将 -Dprofile.encoding=Cp1047 添加到 wsadminE.sh 文件。
    缺省情况下,可以为 app_server_root/properties/wsadmin.properties 文件中的 com.ibm.ws.scripting.profiles 概要文件属性配置以下概要文件脚本文件:
    • app_server_root/bin/securityProcs.jacl
    • app_server_root/bin/LTPA_LDAPSecurityProcs.jacl

    缺省情况下,这些文件的格式为 ASCII。 如果使用 profile.encoding 选项来运行 EBCDIC 编码的概要文件脚本文件,请将这些文件的编码更改为 EBCDIC。

    要在概要文件脚本中运行脚本编制命令,使用 -profile 选项运行 wsadmin 工具,并将要运行的命令包括在概要文件脚本中。

    要定制脚本环境,请指定一个或多个要运行的概要文件脚本。

    创建概要文件时不要在节点名中使用圆括号。

    以下示例运行概要文件脚本:
    • 使用 Jython 运行 a1prof.py 脚本:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -lang jython -profile alprof.py
      [IBM i]
      wsadmin -lang jython -profile alprof.py
      [Windows]
      wsadmin.bat -lang jython -profile alprof.py

      其中 a1prof.py 文件包含下列命令:

      apps = AdminApp.list()
      print "Applications currently installed:\n " + apps
    • 使用 Jacl 运行 a1prof.py 脚本:
      [Linux][AIX][z/OS][HP-UX][Solaris]
      wsadmin.sh -profile alprof.jacl
      [IBM i]
      wsadmin -profile alprof.jacl
      [Windows]
      wsadmin.bat -profile alprof.jacl

      其中 a1prof.py 文件包含下列命令:

      set apps [$AdminApp list]
      puts "Applications currently installed:\n$apps"

结果

当向服务器进程建立连接时,wsadmin 会返回下列输出:

Jython 示例输出:
Applications currently installed:
 DefaultApplication
ivtApp
query
WASX70311: For help, enter: "print Help.help()"
wsadmin>
Jacl 示例输出:
Applications currently installed:
 DefaultApplication
ivtApp
query
WASX70311: For help, enter: "$Help help"
wsadmin>
[z/OS]如果您收到此消息:
[无法分配 268435456 字节的初始 Java 堆。]
[ **Out of memory, aborting** ]
[ *** panic: JVMST016: Cannot allocate memory for initial java heap ]
CEE5207E The signal SIGABRT was received.
wsadmin 脚本编制客户机无法启动,因为您的登录上的区域大小不足以分配在 Java 虚拟机 (JVM)(在 wsadmin 启动时创建)上指定的最小堆大小 (-Xms)。 如 wsadmin.sh 文件 PERF_JVM_OPTIONS="-Xms256m -Xmx256m 语句中指定的,-Xms 选项的缺省值是 256 MB。 要解决此问题,请注销 TSO,然后在重新登录 TSO 时尝试在登录屏幕上增加 Size 参数的值。 如果无法在登录屏幕上增加 Size 参数的值,请检查是否存在任何阻止您增加此参数的值的 IEFUSI。

[z/OS]如果您要通过 telnet 登录到 OMVS,用于确定您登录时接收到的地址空间大小的值在 BPXPRMxx parmlib 成员中指定。 BPXPRMxx 控制 z/OS UNIX 的完整环境。 因此,为 MAXASSIZE 参数设置的值确定了地址空间的大小。 但是,如果使用的是 RACF,那么也可以为单个 RACF OMVS 段中的单个用户设置地址大小。 在此情况下,为 ASSIZEMAX 参数指定的值指示该用户的地址空间大小限制 (以字节计)。 例如,设置 ASSIZEMAX=0268435456 指示分配给该用户的地址空间为 256 MB。