You can use the Jython or Jacl scripting languages to manage
applications with the wsadmin tool. Use the commands and parameters
in the AppManagementCommands group can be used to display and process
SQL-Java (SQLJ) profiles or pureQuery bind files.
The AppManagementCommands command group for the AdminTask object
includes the following commands:
listSqljProfiles
The listSqljProfiles
command parses the .ear file of the specified application and returns
a list of .ser files found. SQLJ profiles have a .ser filename extension.
If there are any files in the .ear file that are not SQLJ profiles,
but have a .ser filename extension, those files may be listed also.
Parameters and return values
- -appName
- The name of the installed application. Your application must be
installed prior to running customization and binding on it. This
parameter is required.
Examples
Batch
mode example usage:
Interactive mode example usage:
Output appears with syntax specific to the local operating system.
The list of available profiles can be added to a group file .grp directly.
processSqljProfiles
The processSqljProfiles
command creates a DB2
® customization
of the SQLJ profiles. The command optionally, by default, calls the
SQLJ profile binder to bind the DB2 packages.
Best practice: If you are processing a large enterprise application,
or you are processing many SQLJ profiles, the process might take
longer than the default timeout for the wsadmin tool. The default
connection timeout for the wsadmin tool is set to three minutes.
If the default timeout is reached and you lose the connection to
the server, the wsadmin console issues a timeout statement. You can
check the system output log for the final results of the customization
and bind process and the amount of time for that the process. Do
not execute the processSqljProfiles command again until the previous
command has completed, or the results may be unpredictable.
To
prevent this disconnection, configure the session timeout to a longer
period of time. See the system output log for the total processing
time, and use that time period as a basis for the new timeout value.
To extend the default timeout value, change the wsadmin properties
file that corresponds to the connection type that you are using:
- For the SOAP connection type, change the following entry in the
soap.client.props file:
com.ibm.SOAP.requestTimeout=180
- For JSR160RMI and RMI connection types, change the following entry
in the sas.client.props file:
com.ibm.CORBA.requestTimeout=180
- For the IPC connection type, change the following entry in the
ipc.client.props file:
com.ibm.IPC.requestTimeout=180
bprac
There are two ways you can verify whether the binding
or customization took place:
Target object
The installed
application SQLJ profiles. These profiles are either single, serial
.ser files or profiles grouped in a .grp group file. This target
object is required.
Parameters and return
values
- -appName
- The name of the installed application. Your application must be
installed prior to running customization and binding on it. This
parameter is required.
- -classpath
- The path that tells the application server where to find the necessary
SQLJ driver .jar files. This parameter is optional.
- -dburl
- The location of the DB2 server
on the network. This parameter is optional.
- -user
- User name of the account performing the access to the DB2 database. This parameter is
optional.
- -password
- Password for the account accessing the DB2 database. This parameter is optional.
- -options
- Additional options that are used with the db2sqljcustomize command
may be inserted under the -options parameter except for the
parameters listed above. This parameter is optional. For additional
information about the db2sqljcustomize command, consult db2sqljcustomize
- SQLJ profile customizer.
- -profiles
- The location of the SQLJ profiles .ser files or .grp file. This
parameter is required.
Examples
Batch
mode example usage:
Using Jacl:
$AdminTask processSqljProfiles {-appName FVT -classpath {C:/IBM/SQLLIB/java/db2jcc.jar } -url
jdbc:db2://server.domain.ibm.com:50000/JTEST1 -user dbuser1 -password ***** -options "-rootpkgname MYPKG" -profiles
{c:/temp/ApplicationSerNames.grp }}
Using Jython:
AdminTask.processSqljProfiles('[-appName Application -classpath ["C:/IBM/SQLLIB/java/db2jcc.jar"]
-dbURL "jdbc:db2://server.domain.ibm.com:50000/JTEST1" -user dbuser1 -password ***** -options [-rootpkgname MYPKG] -profiles
["c:/temp/ApplicationSerNames.grp"]]')
Interactive mode example usage:
wsadmin>print AdminTask.processSqljProfiles('-interactive') Process serialized SQLJ
profiles. Process the serialized SQLJ profiles in an installed application. Customize the profiles with run time information and
bind static SQL packages in a database. Refer to the Database SQLJ customize and bind documentation. Do only bind
processing. (bindOnly): false *Application name. (appName): Application Classpath to SQLJ tools. (classpath):
C:/IBM/SQLLIB/java/db2jcc.jar Database connection URL. (dbURL): Database connection user name. (user): Database connection
password. (password): Options for SQLJ tools. (options): *SQLJ profile names. (profiles): c:/temp/ApplicationSerNames.grp
Process serialized SQLJ profiles. F (Finish) C (Cancel) Select [F, C]: [F] WASX7278I: Generated command line:
AdminTask.processSqljProfiles('[-bindOnly false -appName Application -classpath [C:/IBM/SQLLIB/java/db2jcc.jar] -profiles
[c:/temp/ApplicationSerNames.grp ]]')
listPureQueryBindFiles
The listPureQueryBindFiles
command parses the .ear file of the specified application and returns
a list of .bindprops and .pdqxml files found. PureQuery bind options
files have a .bindprops filename extension. Bind files have a .pdqxml
filename extension. If .ear file contains files that are not pureQuery
bind files but have a .bindprops or a .pdqxml filename extension,
those files may also be listed.
Parameters
and return values
- -appName
- The name of the installed application. This parameter is required.
Examples
Batch
mode example usage:
Using JACL:
$AdminTask listPureQueryBindFiles {-appName application_name}
Using Jython:
print AdminTask.listPureQueryBindFiles('-appName application_name')
Interactive mode example usage:
Using JACL:
$AdminTask listPureQueryBindFiles -interactive
Using Jython:
print AdminTask.listPureQueryBindFiles('-interactive')
Output appears with syntax specific to the local operating system.
processPureQueryBindFiles
The processPureQueryBindFiles
command invokes the DB2 pureQuery
bind utility on a list of pureQuery bind files.
Best practice: If
you are processing a large enterprise application, or you are processing
many pureQuery bind files using wsadmin, the process might take longer
than the default timeout for the wsadmin tool. The default connection
timeout for the wsadmin tool is set to three minutes. If the default
timeout is reached and the process running on the server has not
yet completed, the wsadmin console issues a timeout statement. You
can check the system output log on the server for the final results
of the bind process and the time when that process completed. Do
not execute the processPureQueryBindFiles command again until the
previous command has completed, or the results may be unpredictable.
To
prevent this timeout, configure the wsadmin request timeout to a
longer period of time. After a successful customization and binding
process, use the system output log to estimate the total processing
time. Use this time period as a basis for the new timeout value.
To extend the default timeout value, change the wsadmin properties
file that corresponds to the connection type that you are using:
- For the SOAP connection type, change the following entry in the
soap.client.props file:
com.ibm.SOAP.requestTimeout=180
- For JSR160RMI and RMI connection types, change the following entry
in the sas.client.props file:
com.ibm.CORBA.requestTimeout=180
- For the IPC connection type, change the following entry in the
ipc.client.props file:
com.ibm.IPC.requestTimeout=180
bprac
To verify whether the binding took place, view
the System Out log to determine if the bind processing was successful.
Parameters and return values
- -appName
- The name of an installed application that contains the pureQuery
bind files to be processed. Your application must be installed prior
to running binding on it.
- -classpath
- A list of the paths to the Java™ archive
(JAR) files that contain the pureQuery bind utility and its dependencies:
pdq.jar, pdqmgmt.jar, db2jcc4.jar or db2jcc.jar, db2jcc_license_cisuz.jar
or db2jcc_license_cu.jar. Use / or \\\\ as a file separator. Use
a blank space to separate the paths for the JAR files.
- -dburl
- The URL for connecting to the database. The format is jdbc:db2://server_name:port/database_name.
- -user
- User name of the account performing the access to the DB2 database.
- -password
- Password for the account accessing the DB2 database.
- -options
- Any additional options that are needed by the pureQuery bind utility.
Provide bind options as -bindoptions "bind_options_string".
For additional information about the pureQuery bind utility, consult
the topic on the pureQuery Bind utility.
- -files
- A list of the names of the pureQuery bind files to be processed.
The bind file path names must be relative to the application .ear
file that contains them. Use / or \\\\ as a file separator. If
you specify multiple profile paths, use a blank space to separate
them.
Examples
Batch
mode example usage:
Using Jacl:
$AdminTask processPureQueryBindFiles {-appName MyApp -classpath {/pdq_home/pdq.jar
/pdq_home/pdqmgmt.jar /db2_home/SQLLIB/java/db2jcc4.jar /db2_home/SQLLIB/java/db2jcc_license_cu.jar } -url
jdbc:db2://hostname:50000/databasename -user dbuser1 -password dbpswrd1 -options {-bindoptions "BLOCKING NO"} -files
{META-INF/xyz.bindprops META-INF/abc.bindprops }}
Using Jython:
print AdminTask.processPureQueryBindFiles('[-appName MyApp -classpath [/pdq_home/pdq.jar
/pdq_home/pdqmgmt.jar /db2_home/SQLLIB/java/db2jcc4.jar /db2_home/SQLLIB/java/db2jcc_license_cu.jar ] -url
jdbc:db2://hostname:50000/databasename -user dbuser1 -password dbpswrd1 -options [-bindoptions "BLOCKING NO"] -files
[META-INF/xyz.bindprops META-INF/abc.bindprops ]]')
Interactive mode example usage:
print AdminTask.processPureQueryBindFiles('-interactive') Process pureQuery bind files.
Process the pureQuery bind files in an installed application. Bind static SQL packages in a database. Refer to IBM pureQuery
Bind utility documentation. *Application name. (appName): MyApp Classpath to pureQuery Bind utility. (classpath):
/pdq_home/pdq.jar /pdq_home/pdqmgmt.jar /db2_home/SQLLIB/java/db2jcc4.jar /db2_home/SQLLIB/java/db2jcc_license_cu.jar *Database
connection URL. (url): jdbc:db2://hostname:50000/databasename Database connection user name. (user): dbuser1 Database connection
password. (password): dbpswrd1 Options for the pureQuery Bind utility. (options): -bindoptions "BLOCKING NO" *pureQuery bind file
names. (files): META-INF/xyz.bindprops META-INF/abc.bindprops Process pureQuery bind files. F (Finish) C (Cancel) Select [F,
C]: [F] WASX7278I: Generated command line: AdminTask.processPureQueryBindFiles('[-appName MyApp -classpath [/pdq_home/pdq.jar
/pdq_home/pdqmgmt.jar /db2_home/SQLLIB/java/db2jcc4.jar /db2_home/SQLLIB/java/db2jcc_license_cu.jar ] -url
jdbc:db2://hostname:50000/databasename -user dbuser1 -password ***** -options [-bindoptions "BLOCKING NO"] -files
[META-INF/xyz.bindprops META-INF/abc.bindprops ]]')
For more information on the pureQuery Bind utility,
see the IBM® Data Studio information
center.