JDBCProviderManagement command group for AdminTask object
Use the Jython or Jacl scripting languages in interactive mode to configure data access and data sources with scripting. The commands in the JDBCProviderManagement group can be used to create or list data sources and Java database connectivity (JDBC) providers.
The JDBCProviderManagement command group for the AdminTask objectcommands include:
- createDatasource
- createJDBCProvider
- deleteDatasource
- deleteJDBCProvider
- listDatasources
- listJDBCProviders
createDatasource
Create a new data source to access the back end data store. Application components use the data source to access connection instances to the database.
Target object: JDBC Provider Object ID - The configuration object of the JDBC provider to which the new data source will belong.
Required parameters:
- - name
- The name of the data source. (String, required)
- -jndiName
- The JNDI name. (String, required)
- -dataStoreHelperClassName
- The name of the DataStoreHelper implementation class that extends the capabilities of the selected JDBC driver implementation class to perform data-specific functions. WebSphere Application Server provides a set of DataStoreHelper implementation classes for each of the JDBC provider drivers it supports. (String, required)
- configureResourceProperties
- This command step configures the resource properties that are required by the data source. (Required) We can specify the following parameters for this step:
- name
- The name of the resource property. (String, required)
- type
- The type of the resource property. (String, required)
- value
- The value of the resource property. (String, required)
Optional parameters:
- -description
- The description of the data source. (String, optional)
- -category
- The category we can use to classify a group of data sources. (String, optional)
- -componentManagedAuthenticationAlias
- The alias used for database authentication at run time. This alias is only used when the application resource reference is using res-auth=Application. (String, optional)
- -containerManagedPersistence
- Specifies if the data source is used for container managed persistence for enterprise beans. Default is true. (Boolean, optional)
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask createDatasource "DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml# JDBCProvider_1180538152781)" {-name "DB2 Universal JDBC Driver XA DataSource" -jndiName s1 -dataStoreHelperClassName com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper -componentManagedAuthenticationAlias myCellManager01/a1 -xaRecoveryAuthAlias myCellManager01/a1 -configureResourceProperties {{databaseName java.lang.String db1} {driverType java.lang.Integer 4} {serverName java.lang.String dbserver1} {portNumber java.lang.Integer 50000}}}
- Use Jython string:
AdminTask.createDatasource('DB2 Universal JDBC Driver Provider(XA) (cells/myCell|resources.xml #JDBCProvider_1180501752515)', '[-name "DB2 Universal JDBC Driver XA DataSource 2" -jndiName ds2 -dataStoreHelperClassName com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper -componentManagedAuthenticationAlias myCellManager01/a1 -xaRecoveryAuthAlias myCellManager01/a1 -configureResourceProperties [[databaseName java.lang.String db1] [driverType java.lang.Integer 4] [serverName java.lang.String dbserver1] [portNumber java.lang.Integer 50000]]]')
- Use Jython list:
AdminTask.createDatasource('DB2 Universal JDBC Driver Provider(XA) (cells/myCell|resources.xml# JDBCProvider_1180501752515)', ['-name', ' DB2 Universal JDBC Driver XA DataSource 2', '-jndiName', 'ds2', '-dataStoreHelperClassName', 'com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper', '-componentManagedAuthenticationAlias', 'myCellManager01/a1', '-xaRecoveryAuthAlias', 'myCellManager01/a1', '-configureResourceProperties', '[[databaseName java.lang.String db1] [driverType java.lang.Integer 4] [serverName java.lang.String dbserver1] [portNumber java.lang.Integer 50000]]'])
Interactive mode example usage:
- Use Jacl:
$AdminTask createDatasource {-interactive}
- Use Jython:
AdminTask.createDatasource('-interactive')
Be aware of the following issues with the createDatasource command:
- When we create a data source that supports container-managed persistence, the createDatasource command creates two objects in the configuration of the target scope: the intended data source and a CMP connector factory used expressly by the container. We must apply the remove command separately to the intended data source and the CMP connector factory objects in order to delete the data source from the configuration.
The following script illustrates how to use Jacl to remove the CMPConnectorFactory object from the configuration when you delete a data source that supports container-managed persistence:
# The following script removes a data source from the configuration, # including the associated CMP connector factory # # Set this variable to the ID string of the data source to remove set ds_to_remove "configID_of_my_data_source_to_remove" puts "Data source to remove='$ds_to_remove'" # Find and remove the CMPConectorFactory associated with the datasource to remove foreach cmp_cf [$AdminConfig list CMPConnectorFactory] { set cmp_ds [lindex [$AdminConfig showAttribute $cmp_cf cmpDatasource] 0] if { [string compare $cmp_ds $ds_to_remove] == 0 } { puts "Found CMPConnectorFactory for data source $ds_to_remove" puts "Removing the CMPConnectorFactory '$cmp_cf'" $AdminConfig remove $cmp_cf puts "'$cmp_cf' is removed." break } } puts "Removing the data source '$ds_to_remove'" $AdminConfig remove $ds_to_remove puts "'$ds_to_remove' is removed." #$AdminConfig save
- The createDatasource command will not complete successfully if we are creating a data source on a JDBC provider that does not exist or does not contain the providerType attribute. This error can be caused if we created the JDBC provider with the AdminConfig create JDBCProvider method of the JMX API. This method creates the JDBC provider, but it does not add a providerType attribute.
The createDatasource command will issue the following error:
"ADMF0006E: Step configureResourceProperties of command createDatasource is not found"
To resolve this issue, use commands from the JDBCProviderManagement group, which provides the AdminTask commands createJDBCProvider and createDatasource. The AdminTask commands are designed to be used together.
The AdminConfig JMX API methods "create JDBCProvider" and "create Datasource," which support v5.1 and later, are also designed to be used together. Scripts that use the JMX API methods should not use the AdminTask commands.
- The createDatasource command will not complete successfully if the JDBC provider object ID, which we specify when we create the data source, does not match the ID of the JDBC provider. If the JDBC provider object ID and the ID of the JDBC provider do not match, we can obtain the correct ID from the results of the createJDBCProvider command. Then, specify this ID when using the createDatasource command. If we have already created the JDBC provider, use the listJDBCProviders command to list the correct ID.
createJDBCProvider
Create a new Java database connectivity provider (JDBC) we can use to connect to a relational database for data access.
Target object: None
Required parameters:
- -scope
- The scope for the new JDBC provider. Provide the scope in the form type=name. Type can be Cell, Node, Server, Application, or Cluster, and name is the name of the specific instance of the cell, node, server, application, or cluster that we are using. The default is none. (String, required)
- -databaseType
- The type of database that will be used by the JDBC provider. For example, DB2, Derby, Informix, Oracle, and so on. (String, required)
- -providerType
- The JDBC provider type that will be used by the JDBC provider. (String, required)
- -implementationType
- The implementation type for this JDBC provider. Use Connection pool data source if the application runs in a single phase or a local transaction. Otherwise, use XA data source to run in a global transaction. (String, required)
Optional parameters:
- -classpath
- List of paths or JAR file names that form the location for the resource provider classes. (String, optional)
- -description
- The description for the JDBC provider. (String, optional)
- -implementationClassName
- Java class name for the JDBC driver implementation. (String, optional)
- -name
- The name of the JDBC provider. The default is the value from the provider template. (String, optional)
- -nativePath
- List of paths that form the location for the resource provider native libraries. (String, optional)
- -isolated
- Specifies whether the JDBC provider loads within the class loader. The default is false. We cannot specify a native path for an isolated JDBC provider. (Boolean, optional)
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask createJDBCProvider {-scope Cell=my02Cell -databaseType DB2 -providerType "DB2 Universal JDBC Driver Provider" -implementationType "XA data source" -name "DB2 Universal JDBC Driver Provider (XA)"-description "XA DB2 Universal JDBC Driver-compliant Provider. Datasources created under this provider support the use of XA to perform 2-phase commit processing. Use of driver type 2 on WAS z/OS is not supported for datasources created under this provider." -classpath {"${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar;${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar; ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar"} -nativePath {"${DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH}"}}
- Use Jython string:
AdminTask.createJDBCProvider('[-scope Cell=myCell -databaseType DB2 -providerType "DB2 Universal JDBC Driver Provider" -implementationType "XA datasource" -name "DB2 Universal JDBC Driver Provider (XA)" -description "XA DB2 Universal JDBC Driver-compliant Provider. Datasources created under this provider support the use of XA to perform 2-phase commit processing. Use of driver type 2 on WAS z/OS is not supported for datasources created under this provider." -classpath ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar;${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar; ${DB2UNIVERSAL_JDBC_DRIVER_PATH}/ db2jcc_license_cisuz.jar -nativePath ${DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH}]')
- Use Jython list:
AdminTask.createJDBCProvider(['-scope', 'Cell=myCell', '-databaseType', 'DB2', '-providerType', 'DB2 Universal JDBC Driver Provider', '-implementationType', 'XA data source', '-name', 'DB2 Universal JDBC Driver Provider (XA)', '-description', 'XA DB2 Universal JDBC Driver-compliant Provider. Datasources created under this provider support the use of XA to perform 2-phase commit processing. Use of driver type 2 on WAS z/OS is not supported for datasources created under this provider.', '-classpath', '${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar; ${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar;${DB2UNIVERSAL_JDBC_DRIVER_PATH}/ db2jcc_license_cisuz.jar', '-nativePath', '${DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH}'])
Interactive mode example usage:
- Use Jacl:
$AdminTask createJDBCProvider {-interactive}
- Use Jython:
AdminTask.createJDBCProvider('-interactive')
deleteDatasource
Delete a data source for an existing JDBC Provider at a specific scope.
Target object: DataSource Object ID - The configuration object of the DataSource to delete.Required parameters: None.
Optional parameters: None.
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask deleteDatasource "DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml #DataSource_1170538153781)"
- Use Jython string:
AdminTask.deleteDatasource('DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml# DataSource_1170538153781)')
Result:
The DataSource is deleted at the specific scope. Also, if DataSource is a DB2 data source configured as a Type 4 JDBC driver and enabled for Client Reroute, the JNDI name specified in either the Client reroute server list JNDI name field or the clientRerouteServerListJNDIName data source custom property is unbound.
To save the changes made by the command, invoke the save command of the AdminConfig object. If the changes are not saved, the Client reroute server list JNDI name must be rebound by issuing a test connection on DataSource or by restarting the server.
deleteJDBCProvider
Delete a JDBC provider and its data sources from a specific scope.
Target object: JDBCProvider Object ID - The configuration object of the JDBCProvider to delete.
Required parameters: None.
Optional parameters: None.
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask deleteJDBCProvider "DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml#JDBCProvider_1180538152781)"
- Use Jython string:
AdminTask.deleteJDBCProvider('DB2 Universal JDBC Driver Provider (XA) (cells/myCell|resources.xml#JDBCProvider_1180538152781)')
Result:
The JDBCProvider is deleted at the specific scope. If JDBCProvider is a DB2 universal database provider, for each data source of JDBCProvider configured as a Type 4 JDBC driver and enabled for Client Reroute, the JNDI name specified in either the Client reroute server list JNDI name field or the clientRerouteServerListJNDIName data source custom property is unbound.
To save the changes made by the command, invoke the save command of the AdminConfig object. If the changes are not saved, the Client reroute server list JNDI names must be rebound by issuing test connections on the data sources of JDBCProvider or by restarting the server.
listDatasources
List data sources contained in the specified scope.
Target object: None
Required parameters: None.
Optional parameters:
- -scope
- The scope for the data sources that will be listed. Provide the scope in the form type=name. Type can be Cell, Node, Server, Application, or Cluster, and name is the name of the specific instance of the cell, node, server, application, or cluster that we are using. The default is All. (String, optional)
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask listDatasources {-scope Cell=my02Cell}
- Use Jython string:
AdminTask.listDatasources('[-scope Cell=my02Cell]')
- Use Jython list:
AdminTask.listDatasources('-scope', 'Cell=my02Cell')
Interactive mode example usage:
- Use Jacl:
$AdminTask listDatasources {-interactive}
- Use Jython:
AdminTask.listDatasources('-interactive')
listJDBCProviders
List JDBC providers contained in the specified scope.
Target object: None
Required parameters: None.
Optional parameters:
- -scope
- The scope for the JDBC providers that will be listed. Provide the scope in the form type=name. Type can be Cell, Node, Server, Application, or Cluster, and name is the name of the specific instance of the cell, node, server, application, or cluster that we are using. The default is All. (String, optional)
Examples
Batch mode example usage:
- Use Jacl:
$AdminTask listJDBCProviders {-scope Cell=my02Cell}
- Use Jython string:
AdminTask.listJDBCProviders('-scope Cell=my02Cell')
- Use Jython list:
AdminTask.listJDBCProviders(['-scope', 'Cell=my02Cell'])
Interactive mode example usage:
- Use Jacl:
$AdminTask listJDBCProviders {-interactive}
- Use Jython:
AdminTask.listJDBCProviders('-interactive')
wsadmin AdminTask Commands for the AdminTask object