WAS v8.5 > Script the application serving environment (wsadmin) > Use the wsadmin scripting AdminConfig object for scripted administrationModify nested attributes using wsadmin.sh
We can modify nested attributes for a configuration object using scripting and wsadmin.
The attributes for a WebSphere Application Server configuration object are often deeply nested. For example, a JDBCProvider object has an attribute factory, which is a list of the J2EEResourceFactory type objects. These objects can be DataSource objects containing a connectionPool attribute with a ConnectionPool type containing a variety of primitive attributes.
- Invoke the AdminConfig object commands interactively, or in a script, from an operating system command prompt.
See the topic on starting the wsadmin scripting client.
- Obtain the configuration ID of the object, for example:
Jacl:
set t1 [$AdminConfig getid /DataSource:TechSamp/]
Jython:
t1=AdminConfig.getid('/DataSource:TechSamp/')
- Modify one of the object parents and specify the location of the nested attribute within the parent, for example:
Jacl:
$AdminConfig modify $t1 {{connectionPool {{reapTime 2003}}}}
Jython list:
AdminConfig.modify(t1, [["connectionPool", [["reapTime", 2003]]]])
Jython string:
AdminConfig.modify(t1, '[[connectionPool [[reapTime 2003]]]]')
- Save the configuration by issuing an AdminConfig save command. For example:
Jacl:
$AdminConfig save
Jython:
AdminConfig.save()
Use the reset command of the AdminConfig object to undo changes made to your workspace since your last save.
Example
An alternative way to modify nested attributes is to modify the nested attribute directly.
Jacl:
set techsamp [$AdminConfig getid /DataSource:TechSamp/] set pool [$AdminConfig showAttribute $techsamp connectionPool] $AdminConfig modify $pool {{reapTime 2003}}Jython list:
techsamp=AdminConfig.getid('/DataSource:TechSamp/') pool=AdminConfig.showAttribute(techsamp,'connectionPool') AdminConfig.modify(pool,[['reapTime',2003]])Jython string:
techsamp=AdminConfig.getid('/DataSource:TechSamp/') pool=AdminConfig.showAttribute(techsamp,'connectionPool') AdminConfig.modify(pool,'[[reapTime 2003]]')In this example, the first command gets the configuration id of the DataSource, and the second command gets the connectionPool attribute. The third command sets the reapTime attribute on the ConnectionPool object directly.
Related
Start the wsadmin scripting client using wsadmin.sh