You can modify nested attributes for a configuration object
using scripting and the wsadmin tool.
About this task
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 that contain
a connectionPool attribute with a ConnectionPool type that contains
a variety of primitive attributes.
Procedure
- 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:
Using Jacl:
set t1 [$AdminConfig getid /DataSource:TechSamp/]
Using
Jython:
t1=AdminConfig.getid('/DataSource:TechSamp/')
Table 1. AdminConfig getid command description . Run a command
from a wsadmin command line.
Element |
Description |
set |
is a Jacl command |
t1 |
is a variable name |
$ |
is a Jacl operator for substituting a variable
name with its value |
AdminConfig |
is an object representing the product
configuration |
getid |
is an AdminConfig command |
DataSource |
is the object type |
TechSamp |
is the name of the object that
will be modified |
- Modify one of the object parents and specify the location
of the nested attribute within the parent, for example:
Using
Jacl:
$AdminConfig modify $t1 {{connectionPool {{reapTime 2003}}}}
Using
Jython list:
AdminConfig.modify(t1, [["connectionPool", [["reapTime", 2003]]]])
Using
Jython string:
AdminConfig.modify(t1, '[[connectionPool [[reapTime 2003]]]]')
Table 2. AdminConfig modify command description . Run a
command from a wsadmin command line.
Element |
Description |
$ |
is a Jacl operator for substituting a variable
name with its value |
AdminConfig |
is an object representing the WebSphere Application Server configuration |
modify |
is an AdminConfig command |
t1 |
evaluates to the configuration
ID of the datasource in step number 2 |
connectionPool |
is an attribute |
reapTime |
is a nested attribute within the
connectionPool attribute |
2003 |
is the value of the reapTime attribute |
- Save the configuration by issuing an AdminConfig save command.
For example:
Using Jacl:
$AdminConfig save
Using
Jython:
AdminConfig.save()
Use the reset command of the AdminConfig
object to undo changes that you made to your workspace since your
last save.
Example
An alternative way to modify nested attributes is to modify
the nested attribute directly.
Using Jacl:
set techsamp [$AdminConfig getid /DataSource:TechSamp/]
set pool [$AdminConfig showAttribute $techsamp connectionPool]
$AdminConfig modify $pool {{reapTime 2003}}
Using Jython list:
techsamp=AdminConfig.getid('/DataSource:TechSamp/')
pool=AdminConfig.showAttribute(techsamp,'connectionPool')
AdminConfig.modify(pool,[['reapTime',2003]])
Using
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.