jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martijn Hendriks <marti...@gx.nl>
Subject JCR 1456 Database connection pooling
Date Mon, 07 Sep 2009 12:07:59 GMT
Hi all,

The sandbox branch for JCR 1456 (https://svn.apache.org/repos/asf/jackrabbit/sandbox/JCR-1456)
now contains an almost complete implementation for connection pooling. Quite some changes
have been made and the following are the most important ones:

* A o.a.j.c.util.db package has been added that contains common DB code (some common classes
have been moved here from the o.a.j.c.persistence.bundle.util package). The ConnectionHelper
hierarchy contains functionality to execute SQL statements using a given DataSource. The CheckSchemaOperation
class uses a ConnectionHelper and encapsulates the logic to check and create schemas.
* The ConnectionFactory class contains a registry of JNDI/commons-dbcp DataSources.
* The DB dependent classes (Bundle PMs, DatabaseJournal, DbDataStore, DbFileSystem etc) have
been refactored to retrieve a (pooling) DataSource from the Connectionfactory and to use ConnectionHelper
and CheckSchemaOperation instances which use the retrieved DataSource. 
* Configuration: see the repository and workspace descriptors in jackrabbit-core/src/test/repository-descriptor-overlay.
You can define a list of repository-global DataSources which you can use in the configuration
of the DB classes, e.g. the OracleFileSystem (this is just an example of how it could look).

Open points that I can think of are:
* We must discuss how the configuration should work.
* The ConnectionFactory class must be refactored such that each RepositoryImpl has its own
instance.
* Integration testing. So far the automated tests have been run against MySQL 5.0, MSSQL server
2005 and Oracle 10g XE but I think we need more coverage.

Your feedback on the current state is much appreciated!

Best regards,
Martijn

--

Martijn Hendriks
<GX> creative online development B.V.
 
t: 024 - 3888 261
f: 024 - 3888 621
e: martijnh@gx.nl
 
Wijchenseweg 111
6538 SW Nijmegen
http://www.gx.nl/ 



Mime
View raw message