Disable components using scripting
We can disable components by invoking operations with scripting and the wsadmin tool. This topic describes how to disable the nameServer component of a configured server. We can modify the examples in this topic to disable other components.
There are two ways to complete this task. This topic uses the AdminConfig object to stop components in the environment. Alternatively, we can use the configureStateManageable script in the AdminServerManagement script library to enable and disable components. The wsadmin tool automatically loads the script when the tool starts. Use the following syntax to configure PMI settings using the configureStateManageable script:
AdminServerManagement.configureStateManageable(nodeName, serverName, parentType, initialState)
For additional information and argument definitions, see the documentation for the AdminServerMananagment script library.
Tasks
- Start the wsadmin scripting tool.
- Identify the server component and assign it to the nameServer variable.
- Use Jacl:
set nameServer [$AdminConfig list NameServer $server]
- Use Jython:
nameServer = AdminConfig.list('NameServer', server)
print nameServer
Example output:
(cells/mycell/nodes/mynode/servers/server1|server.xml#NameServer_1)
- List the components belonging to the server.
List the components associated with the server, and assign the components to the components variable:
- Use Jacl:
set components [$AdminConfig list Component $server]
- Use Jython:
components = AdminConfig.list('Component', server)
print components
The components variable contains a list of components.
Example output:
(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1)
(cells/mycell/nodes/mynode/servers/server1|server.xml#EJBContainer_1)
(cells/mycell/nodes/mynode/servers/server1|server.xml#NameServer_1)
(cells/mycell/nodes/mynode/servers/server1|server.xml#WebContainer_1)- Identify the nameServer component.
Parse the components to identify the nameServer component, and assign it to the nameServer variable. Since the name server component is the third element in the list, retrieve this element using an index of 2:
- Use Jacl:
set nameServer [lindex $components 2]
- Use Jython:
# get line separator
import java
lineSeparator = java.lang.System.getProperty('line.separator')
arrayComponents = components.split(lineSeparator)
nameServer = arrayComponents[2]
print nameServer
Example output:
(cells/mycell/nodes/mynode/servers/server1|server.xml#NameServer_1)
- Disable the nameServer component.
Modify the nested initialState attribute belonging to the stateManagement attribute to disable the nameServer component:
- Use Jacl:
$AdminConfig modify $nameServer {{stateManagement {{initialState STOP}}}}
- Use Jython:
AdminConfig.modify(nameServer, [['stateManagement', [['initialState', 'STOP']]]])
- Save the configuration changes.
AdminConfig.save()
- In a network deployment environment only, synchronize the node.
Use the syncActiveNode or syncNode scripts in the AdminNodeManagement script library to propagate the configuration changes to node or nodes.
- Use the syncActiveNodes script to propagate the changes to each node in the cell:
AdminNodeManagement.syncActiveNodes()
- Use the syncNode script to propagate the changes to a specific node:
AdminNodeManagement.syncNode("myNode")
wsadmin AdminConfig Server settings configuration scripts Commands for the AdminConfig object