You can elect to configure an Oracle data source to use
Oracle's connection caching feature instead of using the application
server's connection pooling. Connection caching for Oracle databases
is similar to connection pooling in the application server.
About this task
Currently, Oracle only supports connection caching with data
sources that use the oracle.jdbc.pool.OracleDataSource implementation
class, instead of the oracle.jdbc.pool.OracleConnectionPoolDataSource
or oracle.jdbc.xa.client.OracleXADataSource classes. By default, the
Oracle JDBC providers in the application server are configured to
use the oracle.jdbc.pool.OracleConnectionPoolDataSource for non-XA
data sources, or oracle.jdbc.xa.client.OracleXADataSource for XA data
sources. To enable Oracle connection caching, you must configure and
use a new JDBC provider in the application server that implements
the oracle.jdbc.pool.OracleDataSource class.
Avoid trouble: Oracle
connection caching does not support XA.
gotcha
Procedure
- Create a data source and user-defined JDBC provider.
- Click
- Select a server from the Scope drop-down
list.
- Click New.
- Enter the name and JNDI name for the data source. Click Next.
- Create a new JDBC provider. Select Create
new JDBC provider, and click Next.
- Define the required properties for the JDBC provider.
Use the following configuration settings:
- Database type: User-defined
- Implementation class name: oracle.jdbc.pool.OracleDataSource
Click Next.
- Enter the class path for ojdbc6.jar, and click Next.
- For Data store helper class name,
enter com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper. Click Next.
- Define the security aliases for this data source, and
click Next.
- Finish the wizard.
- Save the configuration changes.
- Configure the data source that you created.
- Click the name of the data source. You will
be taken to the configuration panel.
- Select Custom properties, and
create or modify the properties for this data source. Enter
or update the following custom properties:
Name |
Value |
disableWASConnectionPooling |
true Avoid trouble: You
must also set the maximumPoolSize attribute to '0' on WebSphere Application
Server connection pool settings to allow Oracle to control the pool
boundaries. gotcha
|
connectionCachingEnabled |
true |
connectionCacheName |
your_cache_name |
removeExistingOracleConnectionPoolIfExists |
true Avoid trouble: The removeExistingOracleConnectionPoolIfExists
property must be set to true so the application server will remove
any existing Oracle connection pools with an identical name. Otherwise,
the Oracle data source will fail the getConnection method if the pool
name that is created has a name that is identical to an existing pool. For
example, if you run a test connection, the test connection process
will create an Oracle connection pool that will prevent the application
server from working properly at run time.
gotcha
|
URL |
Oracle_URL |
Avoid trouble: The order in which the custom
properties are set is important. This could be an issue, as the application
server passes the properties as a collection and the order is not
guaranteed. If you encounter this issue, contact Oracle and reference
Oracle bug #6638862.
gotcha
- Click Apply or OK.
- Save the changes to the application server's configuration.
- Restart the application server.
Results
Be aware that Oracle will not display a message if the pool
creation fails, and a normal connection will be returned instead.
You can confirm that the connection pool is created by running your
application, and try to issue a test connection. If the Oracle connection
pool was created successfully, the test connection will fail with
an exception that the Oracle pool name is already used. Therefore,
you must create the data source and JDBC provider at the server scope.