The scripting library provides Jython script procedures to assist in automating your
environment. Use the server management scripts to configure servers, the server runtime environment,
Web containers, performance monitoring, and logs. You can also use the scripts to administer your
servers.
About this task
The scripting library provides a set of procedures to automate the most common
application server administration functions. There are three ways to use the Jython script library.
- Run scripts from the Jython script library in interactive mode with the wsadmin tool. You can
launch the wsadmin tool, and run individual scripts that are included in the script library using
the following
syntax:
wsadmin>AdminServerManagement.createApplicationServer("myNode", "myServer", "default")
- Use a text editor to combine several scripts from the Jython script library, as the following
sample
displays:
#
# My Custom Jython Script - file.py
#
AdminServerManagement.createApplicationServer("myNode", "Server1", "default")
AdminServerManagement.createApplicationServer("myNode", "Server2", "default")
# Use one of them as the first member of a cluster
AdminClusterManagement.createClusterWithFirstMember("myCluster", "APPLICATION_SERVER",
"myNode", "Server1")
# Add a second member to the cluster
AdminClusterManagement.createClusterMember("myCluster", "myNode", "Server3")
# Install an application
AdminApplication.installAppWithClusterOption("DefaultApplication",
"..\installableApps\DefaultApplication.ear", "myCluster")
# Start all servers and applications on the node
AdminServerManagement.startAllServers("myNode")
Save
the custom script and run it from the command line, as the following syntax
demonstrates:bin>wsadmin -language jython -f path/to/your/jython/file.py
- Use the Jython scripting library code as sample syntax to write custom scripts. Each script
example in the script library demonstrates best practices for writing wsadmin scripts. The script
library code is located in the
app_server_root/scriptLibraries directory. Within this
directory, the scripts are organized into subdirectories according to functionality. For example,
the app_server_root/scriptLibraries/application/V70
subdirectory contains procedures that perform application management tasks that are applicable to
Version 7.0 and later of the product. The subdirectory V70 in the script library paths does not mean
the scripts in that subdirectory are Version 7.0 scripts.
The AdminServerManagement procedures in scripting library are located in the
app_server_root/scriptLibraries/servers/V70 subdirectory. Each
script from the directory automatically loads when you launch the wsadmin tool. To automatically
load your own Jython scripts (*.py) when the wsadmin tool starts, create a new subdirectory and save
existing automation scripts under the
app_server_root/scriptLibraries directory.
Best practice: To create custom scripts using the scripting library procedures, save the
modified scripts to a new subdirectory to avoid overwriting the library. Do not edit the script
procedures in the scripting library.
You can use the AdminServerManagement.py scripts to perform multiple combinations of
administration functions. Use the following steps to create an application server, connect the
application server to the AdminService interface, configure Java™ virtual machine (JVM)
settings, add the application server to a cluster, and propagate the changes to the node.
Procedure
- Optional: Launch the wsadmin tool.
Use this step to launch the wsadmin tool and connect to a server, job manager, or administrative
agent profile, or run the tool in local mode. If you launch the wsadmin tool, use the interactive
mode examples to run scripts.
When the wsadmin tool launches, the system loads all scripts from the scripting
library.
- Create an application server.
Run the createApplicationServer script procedure from the AdminServerManagement script library,
as the following example
demonstrates:
bin>wsadmin -lang jython -c "AdminServerManagement.createApplicationServer("myNode", "myServer", "default")"
You can also use interactive mode to run the script procedure, as the following example
demonstrates:
wsadmin>AdminServerManagement.createApplicationServer("myNode", "myServer", "default")
- Connect the application server of interest to the AdminService interface.
The AdminService interface is the server interface to the application server administration
functions. To connect the application server to the AdminService interface, run the
configureAdminService script procedure from the AdminServerManagement script library, specifying the
node name, server name, and connector type arguments, as the following example
demonstrates:
bin>wsadmin -lang jython -c "AdminServerManagement.configureAdminService("myNode", "myServer",
"IPC", "JSR160RMI")
You can also use interactive mode to run the script procedure, as the following example
demonstrates:
wsadmin>AdminServerManagement.configureAdminService("myNode", "myServer", "IPC", "JSR160RMI")
- Configure the Java virtual machine (JVM).
As part of configuring an application server, you might define settings that enhance the way your
operating system uses of the JVM. The JVM is an interpretive computing engine responsible for
running the byte codes in a compiled Java program. The JVM translates the Java byte codes into the native
instructions of the host machine. The application server, being a Java process, requires a JVM in
order to run, and to support the Java applications running on it.
Run the configureJavaVirtualMachine script procedure from the AdminServerManagement script
library, specifying the node name, server name, whether to run the JVM in debug mode, and any debug
arguments to pass to the JVM process. You can optionally specify additional configuration attributes
with an attribute list. Use the following example to configure the
JVM:
bin>wsadmin -lang jython -c "AdminServerManagement.configureJavaVirtualMachine("myNode",
"myServer", "true", "mydebug", [["internalClassAccessMode", "RESTRICT"],
["disableJIT", "false"], ["verboseModeJNI", "false"]])"
You can also use interactive mode to run the script procedure, as the following example
demonstrates:
wsadmin>AdminServerManagement.configureJavaVirtualMachine("myNode", "myServer", "true",
"mydebug", [["internalClassAccessMode", "RESTRICT"],
["disableJIT", "false"], ["verboseModeJNI", "false"]])
- Create a cluster, and add the application server as a cluster member.
Run the createClusterWithFirstMember script procedure from the AdminClusterManagement script
library, as the following example
demonstrates:
bin>wsadmin -lang jython -c "AdminClusterManagement.createClusterWithFirstMember("myCluster",
"APPLICATION_SERVER", "myNode", "myServer")"
wsadmin>AdminClusterManagement.createClusterWithFirstMember("myCluster", "APPLICATION_SERVER",
"myNode", "myServer")
- Synchronize the node.
To propagate the configuration changes to the node, run the syncNode script procedure from the
AdminNodeManagement script library, and specify the node of interest, as the following example
demonstrates:
bin>wsadmin -lang jython -c "AdminNodeManagement.syncNode("myNode")"
You can also use interactive mode to run the script procedure, as the following example displays:
wsadmin>AdminNodeManagement.syncNode("myNode")
Results
The wsadmin script libraries return the same output as the associated wsadmin commands. For
example, the AdminServerManagement.listServers() script returns a list of available servers. The
AdminClusterManagement.checkIfClusterExists() script returns a value of true if the cluster
exists, or false if the cluster does not exist. If the command does not return the expected
output, the script libraries return a 1 value when the script successfully runs. If the script
fails, the script libraries return a -1 value and an error message with the exception.
By default, the system disables failonerror option. To enable this option, specify
true
as the last argument for the script procedure, as the following example displays:
wsadmin>AdminApplication.startApplicationOnCluster("myApplication","myCluster","true")
What to do next
Create custom scripts to automate your environment by combining script procedures from the
scripting library. Save custom scripts to a new subdirectory of the app_server_root/scriptLibraries directory.