AdminTask 对象的 JDBCProviderManagement 命令组
要通过脚本编制来配置数据访问和数据源,可以按交互方式使用 Jython 或 Jacl 脚本语言来实现。JDBCProviderManagement 组中的命令和参数可用于创建或列出数据源和 Java™ 数据库连接 (JDBC) 提供程序。
createDatasource
createDatasource 命令创建新的数据源以访问后端数据存储器。应用程序组件使用该数据源来访问数据库的连接实例。
目标对象
JDBC 提供程序对象标识 - 新的数据源将隶属的 JDBC 提供程序的配置对象。必需参数
- - name
- 数据源的名称。(字符串,必需)
- -jndiName
- Java 命名和目录接口 (JNDI) 名称。(字符串,必需)
- -dataStoreHelperClassName
- DataStoreHelper 实现类的名称,该类可扩展所选的 JDBC 驱动程序实现类的能力以执行特定于数据的功能。WebSphere® Application Server 为每个它所支持的 JDBC 提供程序驱动程序提供一组 DataStoreHelper 实现类。(字符串,必需)
- configureResourceProperties
- 此命令步骤配置数据源所需的资源属性。(必需)您可以为此步骤指定以下参数:
- name
- 资源属性的名称。(字符串,必需)
- 类型
- 资源属性的类型。(字符串,必需)
- value
- 资源属性的值。(字符串,必需)
可选参数
- -description
- 数据源的描述。(字符串,可选)
- -category
- 可以用来对一组数据源进行分类的类别。(字符串,可选)
- -componentManagedAuthenticationAlias
- 用于在运行时进行数据库认证的别名。仅当应用程序资源引用正在使用 res-auth = Application 时才使用此别名。(字符串,可选)
- -containerManagedPersistence
- 指定此数据源是否用于企业 Bean 的容器管理的持久性。缺省值为 true。(布尔值,可选)
示例
批处理方式示例用法:
- 使用 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}}}
- 使用 Jython 字符串:
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]]]')
- 使用 Jython 列表:
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]]'])
交互方式示例用法:
- 使用 Jacl:
$AdminTask createDatasource {-interactive}
- 使用 Jython:
AdminTask.createDatasource('-interactive')

- 当创建支持容器管理的持久性的数据源时,createDatasource 命令会在目标作用域的配置中创建以下两个对象:所需数据源和专门由容器使用的
CMP 连接器工厂。必须分别地对所需数据源和 CMP 连接器工厂对象应用 remove 命令,以便从配置中删除该数据源。以下脚本说明当删除支持容器管理的持久性的数据源时如何使用 Jacl 来从配置中除去 CMPConnectorFactory 对象:
# 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
- 如果对不存在的或不包含 providerType 属性的 JDBC 提供程序创建数据源,那么
createDatasource 命令将不会成功完成。如果使用 JMX API 的 AdminConfig create
JDBCProvider 方法创建了 JDBC 提供程序,那么可导致此错误。此方法会创建 JDBC 提供程序,但不会添加
providerType 属性。createDatasource 命令将发出以下错误:
"ADMF0006E: Step configureResourceProperties of command createDatasource is not found"
要解决此问题,请使用 JDBCProviderManagement 组中的命令,该命令组提供 AdminTask 命令 createJDBCProvider 和 createDatasource。这些 AdminTask 命令设计为一起使用。
AdminConfig JMX API 方法“create JDBCProvider”和“create Datasource”(它们支持 V5.1 和更高版本)也设计为一起使用。使用这些 JMX API 方法的脚本不应该使用这些 AdminTask 命令。
- 如果在创建数据源时指定的 JDBC 提供程序对象标识,与 JDBC 提供程序的标识不匹配,那么 createDatasource 命令将无法成功完成。如果 JDBC 提供程序对象标识与 JDBC 提供程序的标识不匹配,那么可以从 createJDBCProvider 命令的结果获取正确的标识。然后,在使用 createDatasource 命令时指定此标识。如果已创建 JDBC 提供程序,请使用 listJDBCProviders 命令来列出正确的标识。
createJDBCProvider
createJDBCProvider 命令创建新的 Java 数据库连接提供程序 (JDBC),可以使用它来连接到关系数据库以进行数据访问。
目标对象
无必需参数
- -scope
- 新 JDBC 提供程序的作用域。按 type=name 格式提供作用域。Type 可以是单元、节点、服务器、应用程序或集群,name 是您要使用的单元、节点、服务器、应用程序或集群的特定实例的名称。缺省值为无。(字符串,必需)
- -databaseType
- 将由 JDBC 提供程序使用的数据库类型。例如,DB2®、Derby、Informix® 和 Oracle 等。(字符串,必需)
- -providerType
- 将由 JDBC 提供程序使用的 JDBC 提供程序类型。(字符串,必需)
- -implementationType
- 此 JDBC 提供程序的实现类型。如果应用程序在单一阶段或局部事务中运行,请使用连接池数据源。否则,请使用 XA 数据源以在全局事务中运行。(字符串,必需)
可选参数
- -classpath
- 指定路径或 JAR 文件名的列表,它们构成资源提供程序类的位置。(字符串,可选)
- -description
- JDBC 提供程序的描述。(字符串,可选)
- -implementationClassName
- 指定 JDBC 驱动程序实现的 Java 类名。(字符串,可选)
- -name
- JDBC 提供程序的名称。缺省值为来自提供程序模板的值。(字符串,可选)
- -nativePath
- 指定组成资源提供程序本机库位置的路径列表。(字符串,可选)
- -isolated
- 指定 JDBC 提供程序是否在类装入器中进行装入。缺省值为 false。您不能为孤立的 JDBC 提供程序指定本机路径。(布尔值,可选)
示例
批处理方式示例用法:
- 使用 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}"}}
- 使用 Jython 字符串:
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}]')
- 使用 Jython 列表:
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}'])
交互方式示例用法:
- 使用 Jacl:
$AdminTask createJDBCProvider {-interactive}
- 使用 Jython:
AdminTask.createJDBCProvider('-interactive')
deleteDatasource
deleteDatasource 命令在特定作用域中为现有 JDBC 提供程序删除数据源。
目标对象
数据源对象标识 - 要删除的数据源的配置对象。必需参数
无。可选参数
无。示例
批处理方式示例用法:
- 使用 Jacl:
$AdminTask deleteDatasource "DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml #DataSource_1170538153781)"
- 使用 Jython 字符串:
AdminTask.deleteDatasource('DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml# DataSource_1170538153781)')
结果:
在特定作用域中删除了该数据源。此外,如果数据源是配置为 4 类 JDBC 驱动程序并为客户机重新路由启用的 DB2 数据源,那么会对“客户机重新路由服务器列表 JNDI 名称”字段或 clientRerouteServerListJNDIName 数据源定制属性中指定的 JNDI 名称取消绑定。
要保存该命令所作的更改,请调用 AdminConfig 对象的 save 命令。如果未保存这些更改,那么必须通过对数据源发出测试连接或通过重新启动服务器来重新绑定客户机重新路由服务器列表 JNDI 名称。
deleteJDBCProvider
deleteJDBCProvider 命令从特定作用域中删除 JDBC 提供程序及其数据源。
目标对象
JDBC 提供程序对象标识 - 要删除的 JDBC 提供程序的配置对象。必需参数
无。可选参数
无。示例
批处理方式示例用法:
- 使用 Jacl:
$AdminTask deleteJDBCProvider "DB2 Universal JDBC Driver Provider (XA)(cells/myCell|resources.xml#JDBCProvider_1180538152781)"
- 使用 Jython 字符串:
AdminTask.deleteJDBCProvider('DB2 Universal JDBC Driver Provider (XA) (cells/myCell|resources.xml#JDBCProvider_1180538152781)')
结果:
在特定作用域中删除了该 JDBC 提供程序。如果 JDBC 提供程序是 DB2 通用数据库提供程序,那么对于配置为 4 类 JDBC 驱动程序并为客户机重新路由启用的 JDBC 提供程序的每个数据源,会对“客户机重新路由服务器列表 JNDI 名称”字段或 clientRerouteServerListJNDIName 数据源定制属性中指定的 JNDI 名称取消绑定。
要保存该命令所作的更改,请调用 AdminConfig 对象的 save 命令。如果未保存这些更改,那么必须通过对 JDBC 提供程序的数据源发出测试连接或通过重新启动服务器来重新绑定客户机重新路由服务器列表 JNDI 名称。
listDatasources
使用 listDatasources 命令来列出所指定作用域中包含的数据源。
目标对象
无必需参数
无。可选参数
- -scope
- 将列出的数据源的作用域。按 type=name 格式提供作用域。Type 可以是单元、节点、服务器、应用程序或集群,name 是您要使用的单元、节点、服务器、应用程序或集群的特定实例的名称。缺省值为 All。(字符串,可选)
示例
批处理方式示例用法:
- 使用 Jacl:
$AdminTask listDatasources {-scope Cell=my02Cell}
- 使用 Jython 字符串:
AdminTask.listDatasources('[-scope Cell=my02Cell]')
- 使用 Jython 列表:
AdminTask.listDatasources('-scope', 'Cell=my02Cell')
交互方式示例用法:
- 使用 Jacl:
$AdminTask listDatasources {-interactive}
- 使用 Jython:
AdminTask.listDatasources('-interactive')
listJDBCProviders
listJDBCProviders 命令列出所指定作用域中包含的 JDBC 提供程序。
目标对象
无必需参数
无。可选参数
- -scope
- 将列出的 JDBC 提供程序的作用域。按 type=name 格式提供作用域。Type 可以是单元、节点、服务器、应用程序或集群,name 是您要使用的单元、节点、服务器、应用程序或集群的特定实例的名称。缺省值为 All。(字符串,可选)
示例
批处理方式示例用法:
- 使用 Jacl:
$AdminTask listJDBCProviders {-scope Cell=my02Cell}
- 使用 Jython 字符串:
AdminTask.listJDBCProviders('-scope Cell=my02Cell')
- 使用 Jython 列表:
AdminTask.listJDBCProviders(['-scope', 'Cell=my02Cell'])
交互方式示例用法:
- 使用 Jacl:
$AdminTask listJDBCProviders {-interactive}
- 使用 Jython:
AdminTask.listJDBCProviders('-interactive')