Example: Identifying running objects
In the WebSphere Application Server, MBeans represent running objects. You can interrogate the MBean server to see the objects it contains. Use the AdminControl object to interact with running MBeans.
* Use the queryNames command to see running MBean objects. For example:
$AdminControl queryNames *
This command returns a list of all MBean types. Depending on the server to which your scripting client attaches, this list can contain MBeans that run on different servers:
* If the client attaches to a stand-alone WebSphere Application Server, the list contains MBeans that run on that server.
* If the client attaches to a node agent, the list contains MBeans that run in the node agent and MBeans that run on all application servers on that node.
* If the client attaches to a deployment manager, the list contains MBeans that run in the deployment manager, all of the node agents communicating with that deployment manager, and all application servers on the nodes served by those node agents.
· The list that the queryNames command returns is a string representation of JMX ObjectName objects. For example:
WebSphere:cell=MyCell,name=TraceService,mbeanIdentifier=TraceService,
type=TraceService,node=MyNode,process=server1
This example represents a TraceServer object that runs in server1 on MyNode.
* The single queryNames argument represents the ObjectName object for which you are searching. The asterisk ("*") in the example means return all objects, but it is possible to be more specific. As shown in the example, ObjectName has two parts: a domain, and a list of key properties. For MBeans created by the WebSphere Application Server, the domain is WebSphere. If you do not specify a domain when you invoke queryNames, the scripting client assumes the domain is WebSphere. This means that the first example query above is equivalent to:
$AdminControl queryNames WebSphere:*
* WebSphere Application Server includes the following key properties for the ObjectName object:
* name
* type
* cell
* node
* process mbeanIdentifier
These key properties are common. There are other key properties that exist. You can use any of these key properties to narrow the scope of the queryNames command. For example:
$AdminControl queryNames WebSphere:type=Server,node=myNode,*
This example returns a list of all MBeans that represent server objects running the node myNode. The, * at the end of the ObjectName object is a JMX wildcard designation. For example, if you enter the following:
$AdminControl queryNames WebSphere:type=Server,node=myNode
you get an empty list back because the argument to queryNames is not a wildcard. There is no Server MBean running that has exactly these key properties and no others.
* If you want to see all the MBeans representing applications running on a particular node, invoke the following example:
$AdminControl queryNames WebSphere:type=Application,node=myNode,*
Example: Turning traces on and off in a server process with the wsadmin tool
The following example turns on tracing in a server process:
* Identify the object name for the TraceService MBean running in the process:
$AdminControl completeObjectName type=Server,name=server1,*
* Obtain the name of the object and set it to a variable:
set ts [$AdminControl completeObjectName type=TraceService,process=server1,*]
* Turn on traces for the server:
$AdminControl setAttribute $ts traceSpecification com.ibm.*=all=enabled
Example: Dumping threads in a server process
Use the AdminControl object to dump the Java threads of a running server.
* For example, in Jacl:
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
$AdminControl invoke $jvm dumpThreads
This example produces a Java core file. You can use this file for problem determination.
Example: Starting a server using wsadmin
The following example starts an application server with the node specified.
* The following command starts server1 in mynode node:
$AdminControl startServer server1 mynode
Example output:
WASX7319I: The serverStartupSyncEnabled attribute is set to false. A startwill be attempted for server "server1" but the configuration information fornode "mynode" may not be current.WASX7262I: Start completed for server "server1" on node "mynode"
* The startServer command has several command syntax options. If you have Network Deployment installation, you have to use one of following:
$AdminControl startServer serverName nodeName
$AdminControl startServer serverName nodeName waitTime
* If you have an application server base installation, you can use the following syntax in addition to the previous syntax:
$AdminControl startServer serverName
$AdminControl startServer serverName waitTime
Example: Stopping a server using wsadmin
The following example stops an application server with the node specified.
* The following command stops server1 in node mynode.
$AdminControl stopServer server1 mynode
Example output:
WASX7337I: Invoked stop for server "server1" Waiting for stop completion.
WASX7264I: Stop completed for server "server1" on node "mynode"
* The stop command has serveral command syntaxes.
If you have Network Deployment installation, use the one of following command syntax:
$AdminControl stopServer serverName nodeName
$AdminControl stopServer serverName nodeName immediate
If you have application server base installation, you can use the following syntax, in addition to the previous syntax:
$AdminControl stopServer serverName
$AdminControl stopServer serverName immediate
Example: Querying the server state using the wsadmin tool
The following example queries the server state.
* Identify the server and assign it to the server variable.
set server [$AdminControl completeObjectName cell=mycell,node=mynode,name=server1,type=Server,*]
This command returns the server MBean that matches the partial object name string.
Example output:
WebSphere:cell=mycell,name=server1,mbeanIdentifier=server.xml#Server_1,
type=Server,node=mynode,process=server1,processType=ManagedProcess
* Query for the state attribute.
$AdminControl getAttribute $server state
The getAttribute command returns the value of a single attribute.
Example output:
STARTED
Example: Starting a listener port using wsadmin
The following example starts a listener port on an application server.
* Identify the listener port MBeans for the application server and assign it to the lPorts variable.
set lPorts [$AdminControl queryNames type=ListenerPort,cell=mycell,node=mynode,process=server1,*]
This command returns a list of listener port MBeans.
Example output: WebSphere:cell=mycell,name=ListenerPort,mbeanIdentifier=server.xml#ListenerPort_1,
type=ListenerPort,node=mynode,process=server1
WebSphere:cell=mycell,name=listenerPort,mbeanIdentifier=ListenerPort,type=server.xml#ListenerPort_2,
node=mynode,process=server1
* Start the listener port if it is not started with the following example:·
foreach lPort $lPorts
{ set state [$AdminControl getAttribute $lport started]
if {$state == "false"} {
$AdminControl invoke $lPort start
}
}
This piece of Jacl code loops through the listener port MBeans. For each listener port MBean, get the attribute value for the started attribute. If the attribute value is set to false, then start the listener port by invoking the start operation on the MBean.
Example: Testing data source connection using wsadmin
The following example tests a dataSource, to ensure a connection to the database.
* Identify the DataSourceCfgHelper MBean and assign it to the dshelper variable.
set dshelper [$AdminControl queryNames type=DataSourceCfgHelper,process=server1*]
Example output:
WebSphere:cell=mycell,name=DataSourceCfgHelper,mbeanIdentifier=DataSourceCfgHelper,
type=DataSourceCfgHelper,node=mynode,process=server1
* Test the connection.
$AdminControl invoke $dshelper testConnectionToDataSource "COM.ibm.db2.jdbc.DB2XADataSource dbuser1 dbpwd1 {{databaseName jtest1}} c:/sqllib/java12/db \"\" \"\""
This example command invokes the testConnectionToDataSource operation on the MBean, passing in the classname, userid, password, database name, JDBC driver class path, language, and country.
Example output:
DSRA8025I: Successfully connected to DataSource
Example: Starting an application using wsadmin
The following example starts an application:
* Identify the application manager MBean for the server where the application resides and assign it the appManager variable.
set appManager [$AdminControl queryNames cell=mycell,node=mynode,type=ApplicationManager,process=server1,*]
This command returns the application manager MBean.
Example output:
WebSphere:cell=mycell,name=ApplicationManager,mbeanIdentifier=ApplicationManager,
type=ApplicationManager,node=mynode,process=server1
* Start the application.
$AdminControl invoke $appManager startApplication myApplication
This command invokes the startApplication operation on the MBean, passing in the application name to start.
Example: Stopping running applications on a server using wsadmin
The following example stops all running applications on a server:
* Identify the application manager MBean for the server where the application resides, and assign it to the appManager variable.
set appManager [$AdminControl queryNames cell=mycell,node=mynode,type=ApplicationManager,process=server1,*]
This command returns the application manager MBean.
Example output: WebSphere:cell=mycell,name=ApplicationManager,mbeanIdentifier=ApplicationManager,
type=ApplicationManager,node=mynode,process=server1
* Query the running applications belonging to this server and assign the result to the apps variable.
set apps [$AdminControl queryNames cell=mycell,node=mynode,type=Application,process=server1,*]
This command returns a list of application MBeans.
Example output:
WebSphere:cell=mycell,name=adminconsole,mbeanIdentifier=deployment.xml#ApplicationDeployment_1,
type=Application,node=mynode,Server=server1,process=server1,J2EEName=adminconsole
WebSphere:cell=mycell,name=filetransfer,mbeanIdentifier=deployment.xml#ApplicationDeployment_1,
type=Application,node=mynode,Server=server1,process=server1,J2EEName=filetransfer
* Stop all the running applications.
foreach app $apps
{
set appName [$AdminControl getAttribute $app name]
$AdminControl invoke $appManager stopApplication $appName
}
This command stops all the running applications by invoking the stopApplication operation on the MBean, passing in the application name to stop.
Example: Querying application state using wsadmin
The following examples queries for the presence of Application MBean to find out whether the application is running.
$AdminControl completeObjectName type=Application,name=myApplication,*
If myApplication is running, then there should be an MBean created for it. Otherwise, the command returns nothing. If myApplication is running,
the following is the example output:
WebSphere:cell=mycell,name=myApplication,mbeanIdentifier=cells/mycell/applications/myApplication.ear/deployments/myApplication/deployment.xml#ApplicationDeployment_1,
type=Application,node=mynode,Server=dmgr,process=dmgr,J2EEName=myApplication
Example: Updating the Web server plug-in configuration files using wsadmin
This examples regenerates the web serer plugin configuration file.
* Identify the web server plugin configuraiton file generator MBean and assign it to the pluginGen variable.
EX:
set pluginGen [$AdminControl completeObjectName type=PluginCfgGenerator,*]
Example output:
WebSphere:cell=pongoNetwork,name=PluginCfgGenerator,
mbeanIdentifier=PluginCfgGenerator,type=PluginCfgGenerator,node=pongoManager,
process=dmgr
* Generate the updated plugin configuration file.
EX:
$AdminControl invoke $pluginGen generate "c:/WebSphere/DeploymentManager c:/WebSphere/DeploymentManager/config mycell null null plugin-cfg.xml"
This example command assumes a Windows system install. It invokes the generate operation on the MBean, passing in the install root directory, configuration root directory, cell name, node name, server name, and output file name. To pass in null as the value of an argument, enter null as given in the example. This is provided for operation that allows null as the value of its argument and processes null differently from an empty string. In this example, both node and server are set to null. The generate operation generates plugin configuration for all the nodes and servers resided in the cell. The output file plugin-cfg.xml is created in the config root directory.
You can modify this example command to generate plugin configuration for a particular node or server by specifying the node and server names.