Get a reference to the relevant ApplicationManager object in the usual way:
appManager = AdminControl.queryNames
('type=ApplicationManager,process=myClusterMember1,node=myNode,*')
List the operations available for the appManager object...
print Help.operations(appManager)
This results in the following output …
void startApplication(java.lang.String) java.lang.Boolean _canStopApplication(java.lang.String) void stopApplication(java.lang.String) void _startModule(java.lang.String, java.lang.String) void _stopModule(java.lang.String, java.lang.String) void _applicationInstalled(java.lang.String) void _applicationUninstalled(java.lang.String)
The two methods we're interested in are _startModule and _stopModule, both of which take two arguments of type String.
True to form the IBM documentation was awful.
print Help.operations(appManager, '_startModule')
Provides the following following output:
void _startModule(java.lang.String, java.lang.String) Description: Start Application Module - This method is intended for WebSphere internal use only. Its function is undocumented and is subject to change at any time. Parameters: Type java.lang.String Name applicationName Description Application Name Type java.lang.String Name moduleURI Description Module Name
It took me a while to work out how to format the arguments, here's the correct form:
AdminControl.invoke(<reference to app manager>, '<action>', '<app name> <module name>')
For example:
AdminControl.invoke(appManager, '_startModule', 'MyApp MyWebModule' )
As you can see, there are three arguments as follows:
- The reference to the ApplicationManager object
- The action
- A string which is the application name concatenated with the module name (separated by a space)
appManager = AdminControl.queryNames('type=ApplicationManager,process=server1,node=node1,*') appName = 'MyApp' moduleName = 'MyWebModule' args = appName + ' ' + moduleName adminControl.invoke(appManager, '_startModule', args )
AdminControl.invoke(appManager, '_startModule' , ['MyApp' , 'MyWebModule'] )
Here's an example of how I used this in the real world when I needed to start a WebModule after hot deploying it.