Starting the wsadmin scripting client using wsadmin scripting

You can use the wsadmin tool to configure and administer application servers, application deployment, and server runtime operations.

About this task

The wsadmin tool provides the ability to automate configuration tasks for your environment by running scripts. However, there are some limitations for using the wsadmin tool, including:
  • The wsadmin tool only supports the Jython and Jacl scripting languages.

    The Version 6.1 release of WebSphere Application Server represented the start of the deprecation process for the Jacl syntax that is associated with the wsadmin tool. The Jacl syntax for the wsadmin tool continues to remain in the product and is supported for at least two major product releases. After that time, the Jacl language support might be removed from the wsadmin tool. The Jython syntax for the wsadmin tool is the strategic direction for WebSphere Application Server administrative automation. The application server provides significantly enhanced administrative functions and tooling that support product automation and the use of the Jython syntax.

    Avoid trouble: Not all of the WebSphere® Application Server component classes are packaged in the same .jar file. If you are going to be using the wsadmin tool to run Jython scripts, include the jython.package.path system property on your wsadmin command to ensure that all of the required JAR files are set to the jython package path during wsadmin startup.
    ./wsadmin.sh -lang jython -javaoption
    "-Djython.package.path=/usr/WebSphere70/AppServer/plugins/com.ibm.ws.wlm.jar"   

    If you want to invoke WebSphere Application Server functions from different WebSphere Application Server classes that are packaged in .jar files other than runtime.jar and admin.jar, you can include multiple jar files in the path specified for the jython.package.path system property, and separate them with a semicolon (;).

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

    If you want to invoke WebSphere Application Server functions in a jython script using ws_ant, you can create a .prop text file, and include the following line in this file:

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

    Then include the property file in the ant script xml file. For example:

    <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>  
  • The wsadmin tool manages the installation, configuration, deployment, and runtime operations for application servers that run the same version or a higher version of the product. The wsadmin tool cannot connect to an application server that runs a product version which is older than the version of the wsadmin tool. For example, a Version 7.x wsadmin client cannot connect to a Version 6.x application server. However, a Version 6.x wsadmin client can connect to a Version 7.x application server. This limitation exists because new functionality is added to the wsadmin tool in each product release. You cannot use new command functionality on application servers running previous product versions.

[AIX Solaris HP-UX Linux Windows]The wsadmin launcher supports several scripting objects, including the AdminConfig, AdminControl, AdminApp, AdminTask, and Help objects. Scripts use these objects for application management, configuration, operational control, and for communication with MBeans that run in product processes. You must start the wsadmin scripting client before you perform any other task using scripting.

Avoid trouble: The application management design does not allow you to install an EE specification level EAR or module that is at a higher level than the client. Client code that runs in wsadmin reads the EAR file and uses introspection of the content to generate the deployment configuration options that are applicable to that application. The client side code cannot process a specification level that is higher than what that client supports.

Procedure

  1. Locate the command that starts the wsadmin scripting client.
    [AIX Solaris HP-UX Linux Windows]Choose one of the following:
    • Invoke the scripting process using a specific profile. The QShell command for invoking a scripting process is located in the profile_root/bin directory. The name of the QShell script is wsadmin. If you use this option, you do not need to specify the -profileName profile_name parameter.
    • Invoke the scripting process using the default profile. The wsadmin Qshell command is located in the app_server_root/bin directory. If you do not want to connect to the default profile, you must specify the -profileName profile_name parameter to indicate the profile that you want to use.
  2. Review additional connection options for the wsadmin tool.
    You can start the wsadmin scripting client in several different ways. To specify the method for running scripts, perform one of the following wsadmin tool options:
    Run scripting commands interactively

    Run wsadmin with an option other than -f or -c or without an option. The wsadmin tool starts and displays an interactive shell with a wsadmin prompt. From the wsadmin prompt, enter any Jacl or Jython command. You can also invoke commands using the AdminControl, AdminApp, AdminConfig, AdminTask, or Help wsadmin objects. To leave an interactive scripting session, use the quit or exit commands. These commands do not take any arguments.

    The following examples launch the wsadmin tool:
    • Launch the wsadmin tool using Jython:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jython
      [Windows]
      wsadmin.bat -lang jython
    • Launch the wsadmin tool using Jython when security is enabled:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jython -user user_name -password password
      [Windows]
      wsadmin.bat -lang jython -user user_name -password password
    • Launch the wsadmin tool using Jacl with no options:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jacl
      [Windows]
      wsadmin.bat -lang jacl
    Run scripting commands as individual commands

    Run the wsadmin tool with the -c option.

    [Linux][AIX][HP-UX][Solaris]If you invoke a command that includes a dollar sign character ($) using the wsadmin -c option, the command line attempts to substitute a variable. To avoid this problem, escape the dollar sign character with a backslash character (\). For example: wsadmin -c "\$AdminApp install ...".

    The following examples run commands individually:
    • Run the list command for the AdminApp object using Jython:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jython -c 'AdminApp.list()'
      [Windows]
      wsadmin -lang jython -c "AdminApp.list()"
    • Run the list command for the AdminApp object using Jacl:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -c "\$AdminApp list"
      or
      wsadmin.sh -c '$AdminApp list'
      [Windows]
      wsadmin -c "$AdminApp list"
    Run scripting commands in a script

    Run the wsadmin tool with the -f option, and place the commands that you want to run into the file.

    The following examples run scripts:
    • Run the a1.py script using Jython:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jython -f  al.py
      [Windows]
      wsadmin -lang jython -f  al.py

      where the a1.py file contains the following commands:

      apps = AdminApp.list()
      print apps
    Run scripting commands in a profile script

    A profile script is a script that runs before the main script, or before entering interactive mode. You can use profile scripts to set up a scripting environment that is customized for the user or the installation.

    By default, the following profile script files might be configured for the com.ibm.ws.scripting.profiles profiles property in the app_server_root/properties/wsadmin.properties file:
    • app_server_root/bin/securityProcs.jacl
    • app_server_root/bin/LTPA_LDAPSecurityProcs.jacl

    By default, these files are in ASCII. If you use the profile.encoding option to run EBCDIC encoded profile script files, change the encoding of the files to EBCDIC.

    To run scripting commands in a profile script, run the wsadmin tool with the -profile option, and include the commands that you want to run into the profile script.

    To customize the script environment, specify one or more profile scripts to run.

    Do not use parenthesis in node names when creating profiles.

    The following examples run profile scripts:
    • Run the a1prof.py script using Jython:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -lang jython -profile alprof.py
      [Windows]
      wsadmin.bat -lang jython -profile alprof.py

      where the a1prof.py file contains the following commands:

      apps = AdminApp.list()
      print "Applications currently installed:\n " + apps
    • Run the a1prof.py script using Jacl:
      [Linux][AIX][HP-UX][Solaris]
      wsadmin.sh -profile alprof.jacl
      [Windows]
      wsadmin.bat -profile alprof.jacl

      where the a1prof.py file contains the following commands:

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

Results

The wsadmin returns the following output when it establishes a connection to the server process:

Jython example output:
Applications currently installed:
 DefaultApplication
ivtApp
query
WASX70311: For help, enter: "print Help.help()"
wsadmin>
Jacl example output:
Applications currently installed:
 DefaultApplication
ivtApp
query
WASX70311: For help, enter: "$Help help"
wsadmin>