wsadmin scripting tool
The wsadmin tool runs scripts. Use the wsadmin tool to manage application servers as well as the configuration, application deployment, and server runtime operations.
(ZOS) We can run wsadmin commands from WebSphere Application Server on a distributed platform and use that distributed command to administer WAS on a z/OS operating system.
Important: All users who run commands from a specific profile must have authority to modify files created by other users that use the same profile. Otherwise, we might see a permission denied error in the log files. To avoid this issue, consider one of the following policies:
- (iSeries) Use specific profiles for distinct user authorities.
- Use a separate installation for distinct user authorities.
- The same user must run all commands in a profile.
- Ensure that all users of a specific profile belong to the same group. In addition, ensure that each user of a group has the read and write authority to the files created by other members in the same profile.
The options for the wsadmin tool are case insensitive. If we specify an empty string in place of a command options, the wsadmin tool displays general help information.
- We must enter the wsadmin commands in the wsadmin interactive shell on one line. That is, type the command continuously and do not split the command into multiple lines. Splitting a long wsadmin command into multiple lines is not supported. Trying to run wsadmin commands that are split into multiple lines in the wsadmin interactive shell results in a syntax error.
- The wsadmin tool removes any leading and trailing white space including \n, \r, \t, \f and space when parsing a string to avoid any user errors. For example, someone might accidentally hit the spacebar key or the Tab key and add some white space to the command string. This white space might cause the command or script to failure. If we need to include white space in a command either use the list syntax instead of the string syntax, or enclose the string containing the white space within [ ] (brackets).
Use the following command-line invocation syntax for the wsadmin scripting client:
wsadmin [-h(help)]
[-?]
[-c command]
[-p properties_file_name]
[-profile profile_script_name]
[-profileName profile]
[-f script_file_name]
[-javaoption java_option]
[-lang language]
[-wsadmin_classpath classpath]
[-conntype SOAP [-host host_name] [-port port_number] [-user userid] [-password password]
[-conntype RMI [-host host_name] [-port port_number] [-user userid] [-password password]
[-conntype JSR160RMI [-host host_name] [-port port_number] [-user userid] [-password password]
[-conntype IPC [-ipchost host_name] [-port port_number] [-user userid] [-password password]
[-jobid jobid_string]
[-tracefile trace_file]
[-appendtrace true/false]
[script parameters]
The element script parameters represents any argument other than the ones listed previously. The argc variable contains the number of arguments, and the argv variable contains a list of arguments in the order that they were coded.
Options
- -c
- Run a single command. The -c option must be followed by a command. Multiple -c options can exist on the command line. They run in the order that you designate.
If we invoke the wsadmin tool with the -c option, any changes that we have made to the configuration are then saved automatically. If we make configuration changes and we are not using the -c option, then we must use the save command of the AdminConfig object to save the changes. Read about saving configuration changes with the wsadmin tool for more information.
- -Dwsadmin.script.libraries=dir1;dir2;...
- Search path for Jython scripts that use packages. dir1 and dir2 represent the directory search paths for libraries containing the Jython packages.
- -f
- Specifies a script to run. The -f option must be followed by a file name.
Only one -f option can exist on the command line.
Use the -f option to run scripts that contain nested Jython scripts. In the following example, the test2 script imports the test1 script:
#test1.py
def listServer():
print AdminConfig.list("Server")
#test2.py
import test1
test1.listServer()
To run the caller script, from the app_server_root/bin directory:
wsadmin -lang jython -f test2.py
After the scripts run, the system returns the following sample command output:
server1(cells/myCell/nodes/myNode/servers/myServer|server.xml#Server_1183122130078)
- -javaoption
- Specifies a valid Java standard or a non-standard option. Multiple -javaoption options can exist on the command line.
wsadmin -javaoption java_option -javaoption java_option
To shorten the length of the command, we can type the command in the following way:
(AIX) (HPUX) (iSeries) (Linux) (Solaris)
wsadmin -javaoption "java_option java_option"
For transitioning users: We cannot use the wsadmin -javaoption "java_option java_option" shortened command. We must use the longer wsadmin.sh -javaoption java_option -javaoption java_option format. Unlike previous versions, the v8 product does not support multiple Java options together in one -javaoption option on Windows operating systems.trns
(Windows) On Windows operating systems, if the option contains an equal sign (=) or a semicolon (;), we must put double-quotation marks (") around the option; for example:
wsadmin -javaoption "-Da.b.c=3"
Windows operating systems treat the equal sign (=) or the semicolon (;) in command-line arguments as a blank space. The wsadmin tool requires arguments that have a blank space to be enclosed in double-quotation marks.
For transitioning users: For WAS v8.5, the %javaoption% in wsadmin.bat and $javaOption in wsadmin.sh are located at the end of JAVA_EXE arguments. This allows us to override Java system properties, such as CLIENTSOAP and CLIENTSAS properties.trns
- -lang
- Language of the script file, the command, or an interactive shell. The possible languages include: Jacl and Jython. These language options are expressed as jacl and jython.
This option overrides language determinations that are based on a script file name, a profile script file name, or the property...
com.ibm.ws.scripting.defaultLang
The -lang argument has no default value. If the language specified in the -lang argument does not match the language determined by in the -f script_file_name argument, then the wsadmin tool determines the language based on the script file name.
If we do not specify the -lang argument but we have the -f script_file_name argument specified, then the wsadmin tool determines the language based on a target script file name. If we do not specify the -lang argument and the -f argument, the wsadmin tool determines the language based on a profile script file name if the -profile profile_script_name argument is specified. If the command line or the property does not supply the script language, and the wsadmin tool cannot determine it, then an error message is generated.
- -p
- Properties file. The -p option must be followed by a file name.
The file listed after -p, represents a Java properties file that the scripting process reads. Three levels of default properties files load before the properties file specified on the command line:
- The first level is the installation default, wsadmin.properties, located in the product properties directory.
- The second level is the user default, wsadmin.properties, which is located in your home directory.
- The third level is the properties file to which the environment variable WSADMIN_PROPERTIES references.
Multiple -p options can exist on the command line. Those options invoke in the order that you supply them.
We can also use the com.ibm.ws.scripting.noechoParamNo custom property with this option. Specify script parameters that we do not want to be displayed in a trace file or standard output. To enable this custom property, create a text file such as noecho.prop. In this text file, specify positions within your wsadmin command that contain sensitive data, such as passwords, which we do not want to be displayed in a trace file or standard output. The text file can contain a single number or multiple parameter numbers that are separated by a comma. For example, the text file might contain the following information:
com.ibm.ws.scripting.noechoParamNo=3,5
When we reference this text file in your wsadmin command, the third and fifth parameter values are not displayed in a trace file or standard output. To use the custom property, run the wsadmin command and pass the text file with the -p option. For example:
Use Jacl:
wsadmin -f script_file script_arguments -p text_file
Use Jython:
wsadmin -lang jython -f script_file script_arguments -p text_file
For example:
(AIX) (HPUX) (iSeries) (Linux) (Solaris)
wsadmin -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.prop
(Windows)
wsadmin -f c:/text.py server1 dbuser dbpassword user1 userpassword -p c:/noecho.prop
dbpassword and userpassword are the third and fifth parameters that are not displayed in a trace file or standard output.
- -profile
- Profile script.
The profile script runs before other commands, or scripts. If we specify -c, then the profile script runs before it invokes this command. If we specify -f, then the profile script runs before it runs the script. In interactive mode, we can use the profile script to perform any standard initialization that we want. We can specify multiple -profile options on the command line, and they are invoked in the order specified them.
- -profileName
- Profile from which the wsadmin tool runs. Specify this option if one the following reasons apply:
- You run the wsadmin tool from the app_server_root/bin directory, and we do not have a default profile, or we want to run in a profile other than the default profile.
- We are currently in a profile bin directory but want to run the wsadmin tool from a different profile.
(ZOS) Important: WAS running on z/OS operating systems does not support user-created profiles; only the default profile is used.
- -?
- Provides syntax help.
- -help
- Provides syntax help.
- -conntype
- Type of connection to use.
This argument consists of a string that determines the type, for example, SOAP, and the options specific to that connection type. Possible types include: SOAP, RMI, JSR160RMI, IPC and NONE. For each connection type, we can specify additional attributes about the connection.
For the SOAP connection type, we can specify the following attributes:
Attribute Description [-host host_name] Host name for the connection. The default is the local host. [-port port_number] Port number for the connection. [-user userid] User ID to use to establish the connection. [-password password] Password to use to establish the connection. For the RMI connection type, we can specify the following attributes:
Attribute Description [-host host_name] Host name for the connection. The default is the local host. [-port port_number] Port number for the connection. [-user userid] User ID to use to establish the connection. [-password password] Password to use to establish the connection. For the JSR160RMI connection type, we can specify the following attributes:
Attribute Description [-host host_name] Host name for the connection. [-port port_number] Port number for the connection. [-user userid] User ID to use to establish the connection. [-password password] Password to use to establish the connection. For the IPC connection type, we can specify the following attributes:
Attribute Description [-ipchost host_name] Host name for the connection. This attribute overrides the host name specified for the com.ibm.ws.scripting.ipchost property in the wsadmin.properties properties file. [-port port_number] Port number for the connection. [-user userid] User ID to use to establish the connection. [-password password] Password to use to establish the connection. Use the -conntype NONE option to run in local mode. The result is that the scripting client is not connected to a running server. We can manage server configuration, the installation and the uninstallation of applications without the application server running.
We should eventually switch from the RMI connector to the JSR160RMI connector because support for the RMI connector is deprecated.
- -wsadmin_classpath
- Use this option to make additional classes available to your scripting process.
Use the following option with a class path string:
/MyDir/Myjar.jar;/yourdir/yourdir.jar
(Windows)
c:/MyDir/Myjar.jar;d:/yourdir/yourdir.jar
The class path is then added to the class loader for the scripting process.
We can also specify this option in a properties file used by the wsadmin tool. The property is com.ibm.ws.scripting.classpath. If we specify -wsadmin_classpath on the command line, the value of this property overrides any value specified in a properties file. The class path property and the command-line options are not concatenated.
- -host
- Specify a host name to which wsadmin attempts to connect. The default wsadmin.properties file located in the properties directory of each profile provides localhost as the value of the host property, if this option is not specified.
- -password
- Specify a password to be used by the connector to connect to the server, if security is enabled in the server.
On UNIX systems, the use of -password option might result in security exposure because the password information is displayed in the system status program. For example, this information might be exposed when using the ps command, which can be invoked by another user to display all running processes. Do not use this option if security exposure is a concern. To avoid exposure, we can:
- Specify user and password information in the soap.client.props file for the SOAP connector, the sas.client.props file for the JSR160RMI connector or the RMI connector, or the ipc.client.props file for the Inter-Process Communications (IPC) connector. The soap.client.props, sas.client.props, and ipc.client.props files are located in the properties directory of the application server profile.
- Wait for the wsadmin tool to prompt the user for login information instead of providing the login information within a properties file.
- -user or -username
- User name to be used by the connector to connect to the server if security is enabled in the server.
- -port
- Port to be used by the connector. The default wsadmin.properties file located in the properties directory of each application server profile provides a value in the port property to connect to the local server.
- -jobid
- Specifies a job ID string so that we can keep track of each invocation of the wsadmin tool for auditing purposes. The jobI D string (jobID=xxxx) is displayed at the beginning of the wsadmin log file.
- -tracefile
- Name of the log file and location where the log output is directed. This option overrides the com.ibm.ws.scripting.traceFile property in the wsadmin.properties file.
- -appendtrace
- Determines if a trace appends to or overrides the end of the existing log file. Specify true to append the trace to the end of a log file or specify false to override the log file for each wsadmin invocation. The default is false.
The following example specifies the job ID option, log location and appends the trace to the log file.
(AIX) (HPUX) (iSeries) (Linux) (Solaris)
wsadmin -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace true
(Windows)
wsadmin -jobid wsadmin_test_1 -tracefile c:/temp/wsadmin_test_1.log -appendtrace true
In the following syntax examples, mymachine is the name of the host in the wsadmin.properties file specified by the com.ibm.ws.scripting.port property:
- SOAP connection to the local host
- Use the options defined in the wsadmin.properties file.
- SOAP connection to the mymachine host
- Use Jacl, enter the following example code:
wsadmin -f test1.jacl -profile setup.jacl -conntype SOAP -port SOAP_port -host mymachine
Use Jython:
wsadmin -lang jython -f test1.py -profile setup.py -conntype SOAP -port SOAP_port -host mymachine
- Change initial and maximum Java heap size
Use Jacl:
(Windows)
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl
(AIX) (HPUX) (iSeries) (Linux) (Solaris) Specify multiple Java options together or separately:
wsadmin -javaoption "-Xms128m -Xmx256m" -f test.jacl
or
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl
(ZOS)
wsadmin.sh -javaoption "-Xms128m -Xmx256m" -f test.jacl
Use Jython:
(Windows)
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
(AIX) (HPUX) (iSeries) (Linux) (Solaris) Specify multiple Java options together or separately:
wsadmin -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py
...or...
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
- Change system property value
- Use Jacl:
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
Use Jython:
wsadmin -lang jython -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
(Windows) Enclose the Java system property with double-quotation marks ("").
Enclose multiple Java options with double-quotation marks (""); for example:
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true -Dcom.ibm.websphere.management.application.enableDistribution=true"
- JSR160RMI connection with security
- Use Jacl:
wsadmin -conntype JSR160RMI -port JSR160rmiportnumber -user userid -password password
Use Jython:
wsadmin -lang jython -conntype JSR160RMI -port JSR160portnumber -user userid -password password
(ZOS)
wsadmin.sh -lang jython -conntype JSR160 -port JSR160rmiportnumber -user userid -password password
The element, rmiportnumber, for our connection is displayed in the administrative console as BOOTSTRAP_ADDRESS.
On UNIX systems, the use of -password option might result in security exposure as the password information becomes visible to the system status program such as ps command which can be invoked by another user to display all the running processes. Do not use this option if security exposure is a concern. To avoid exposure, we can:
- Specify user and password information in the soap.client.props file for the SOAP connector, the sas.client.props file for the JSR160RMI connector or the RMI connector, or the ipc.client.props file for the Inter-Process Communications (IPC) connector. The soap.client.props, sas.client.props, and ipc.client.props files are located in the properties directory of the application server profile.
- Wait for the wsadmin tool to prompt the user for login information instead of providing the login information within a properties file.
- RMI connection with security
- Use Jacl:
wsadmin -conntype RMI -port rmiportnumber -user userid -password password
Use Jython:
wsadmin -lang jython -conntype RMI -port rmiportnumber -user userid -password password
The element, rmiportnumber, for our connection is displayed in the administrative console as BOOTSTRAP_ADDRESS.
On UNIX systems, the use of -password option might result in security exposure as the password information becomes visible to the system status program such as ps command which can be invoked by another user to display all the running processes. Do not use this option if security exposure is a concern. To avoid exposure, we can:
- Specify user and password information in the soap.client.props file for the SOAP connector, the sas.client.props file for the JSR160RMI connector or the RMI connector, or the ipc.client.props file for the Inter-Process Communications (IPC) connector. The soap.client.props, sas.client.props, and ipc.client.props files are located in the properties directory of the application server profile.
- Wait for the wsadmin tool to prompt the user for login information instead of providing the login information within a properties file.
- Local mode of operation to perform a single command
- Use Jacl:
wsadmin -conntype NONE -c "$AdminApp uninstall app"
(ZOS)
wsadmin.sh -conntype NONE -c "\$AdminApp uninstall app"
...or...
wsadmin.sh -conntype NONE -c '$AdminApp uninstall app'
Use Jython:
wsadmin -lang jython -conntype NONE -c "AdminApp.uninstall('app')"
(ZOS)
wsadmin.sh -lang jython -conntype NONE -c "\AdminApp.uninstall('app')"
...or...
wsadmin.sh -lang jython -conntype NONE -c 'AdminApp.uninstall('app')'
Save wsadmin configuration changes Start the wsadmin scripting client