8.5 Database Connection Management
The Oracle RDF Graph Adapter for Eclipse RDF4J provides support for Oracle Connection Pooling.
Instances of OracleSailStore
use a connection pool to manage
connections to an Oracle AI Database. Oracle Connection
Pooling is provided through the
OraclePool
class. Usually,
OraclePool
is initialized with a
DataSource
, using the
OraclePool (DataSource ods)
constructor. In this case,
OraclePool
acts as an extended
wrapper for the DataSource
, while
using the connection pooling capabilities of the
data source. When you create an
OracleSailStore
object, it is
sufficient to specify the
OraclePool
object in the store
constructor, the database connections will then be
managed automatically by the adapter for Eclipse
RDF4J. Several other constructors are also
provided for OraclePool
, which,
for example, allow you to create an
OraclePool
instance using a
JDBC URL
and database
username
and
password
. See the Javadoc
included in the Oracle RDF Graph Adapter for
Eclipse RDF4J download for more details.
If you need to retrieve Oracle connection objects (which are essentially database connection wrappers) explicitly, you can invoke the OraclePool.getOracle
method. After finishing with the connection, you can invoke the OraclePool.returnOracleDBtoPool
method to return the object to the connection pool.
When you get an OracleSailConnection
from OracleSailStore
or an OracleSailRepositoryConnection
from an OracleRepository
, a new OracleDB
object is obtained from the OraclePool
and used to create the RDF4J connection object. READ_COMMITTED
transaction isolation is maintained between different RDF4J connection objects.
The one exception to this behavior occurs when you obtain an OracleSailRepositoryConnection
by calling the asRepositoryConnection
method on an existing instance of OracleSailConnection
. In this case, the original OracleSailConnection
and the newly obtained OracleSailRepositoryConnection
will use the same OracleDB object. When you finish using an OracleSailConnection
or OracleSailRepositoryConnection
object, you should call its close
method to return the OracleDB
object to the OraclePool
. Failing to do so will result in connection leaks in your application.
Parent topic: RDF Graph Support for Eclipse RDF4J