您可选择将 Oracle 数据源配置为使用 Oracle 的连接高速缓存功能,而不是使用应用程序服务器的连接池。Oracle 数据库的连接高速缓存与应用程序服务器中的连接池类似。
关于此任务
目前,Oracle 只对使用 oracle.jdbc.pool.OracleDataSource 实现类(而不是
oracle.jdbc.pool.OracleConnectionPoolDataSource 或 oracle.jdbc.xa.client.OracleXADataSource
类)的数据源支持连接高速缓存。缺省情况下,应用程序服务器中的 Oracle JDBC 提供程序已配置为使用
oracle.jdbc.pool.OracleConnectionPoolDataSource(对于非 XA 数据源)或者
oracle.jdbc.xa.client.OracleXADataSource(对于 XA 数据源)。要启用 Oracle
连接高速缓存,必须在应用程序服务器中配置并使用实现了 oracle.jdbc.pool.OracleDataSource 类的新 JDBC 提供程序。
避免故障: Oracle 连接高速缓存不支持 XA。
gotcha
过程
- 创建数据源和用户定义的 JDBC 提供程序。
- 单击
- 从范围下拉列表中选择服务器。
- 单击新建。
- 输入数据源的名称和 JNDI 名称。单击下一步。
- 创建 JDBC 提供程序。 选择创建新的 JDBC 提供程序,然后单击下一步。
- 定义 JDBC 提供程序的必需属性。 请使用下列配置设置:
- 数据库类型:用户定义的
- 实现类名:oracle.jdbc.pool.OracleDataSource
单击下一步。
- 输入 ojdbc6.jar 的类路径,然后单击下一步。
- 对于数据存储辅助类名,输入
com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper。单击下一步。
- 定义此数据源的安全别名,然后单击下一步。
- 完成向导。
- 保存配置更改。
- 配置您所创建的数据源。
- 单击数据源的名称。 将显示配置面板。
- 选择定制属性,然后创建或修改此数据源的属性。 输入或更新下列定制属性:
名称 |
值 |
disableWASConnectionPooling |
true 避免故障: 必须在 WebSphere® Application Server 连接池设置上将
maximumPoolSize 属性设置为
0 以允许 Oracle 控制池边界。 gotcha
|
connectionCachingEnabled |
true |
connectionCacheName |
your_cache_name |
removeExistingOracleConnectionPoolIfExists |
true 避免故障: removeExistingOracleConnectionPoolIfExists
属性必须设置为 true,以便应用程序服务器移除所有同名的现有 Oracle 连接池。否则,如果创建的池名与现有池的名称完全相同,那么 Oracle 数据源将使 getConnection 方法失败。
例如,如果运行测试连接,那么测试连接过程将创建一个 Oracle 连接池,这将导致应用程序服务器在运行时无法正常工作。
gotcha
|
URL |
Oracle_URL |
避免故障: 定制属性的设置顺序十分重要。此设置顺序可能成为问题,因为应用程序服务器会将这些属性作为集合传递并且不对顺序做任何保证。如果您遇到此问题,请与 Oracle 联系并参考 Oracle 错误 #6638862。
gotcha
- 单击应用或确定。
- 将更改保存到应用程序服务器配置。
- 重新启动应用程序服务器。
结果
如果创建池失败,那么 Oracle 不会显示消息,而是返回正常连接。可对数据源使用管理控制台测试连接功能来确认是否创建了 Oracle 连接池。首先,使用跟踪字符串“RRA=all”对运行应用程序的服务器开启跟踪。然后,发出测试连接。接着,发出另一测试连接。两个测试连接都应工作。请检查跟踪日志。
如果已成功创建
Oracle 连接池,那么跟踪会显示第二个测试连接检测到存在 Oracle 连接高速缓存(因为第一个测试连接),并且已成功移除第一个测试连接的高速缓存以便第二次测试可再次创建高速缓存。