You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by J S <qu...@gmail.com> on 2011/02/18 04:13:24 UTC

A PersistanceManager for DB2 (i-series)?

Hi

I am using a database PM and connecting to an external DB2 (i-series)
database. Access rights for the Jackrabbit database user are enough to allow
the creation of tables at server start up. Data is also persisted
successfully. However, at server restart, Jackrabbit tries to recreate the
tables again and it fails because the tables are already there. The end
result is Jackrabbit fails to initialize the file system, and the
application is unusable (the data can’t be accessed). The workaround is to
add <param name="schemaCheckEnabled" value="false"/> to stop the schema
check. This is not necessary with MySql though, somehow, Jackrabbit realizes
that tables are there and just use them without trying to create them again.

With MySql, I am using MySqlPersistenceManager, but  with DB2 I am using the
BundleDbPersistenceManager. Do you think there is something particular for
DB2 that requires its own PersistentManager implementation?


Cheers,

JS

Re: A PersistanceManager for DB2 (i-series)?

Posted by Stefan Guggisberg <st...@gmail.com>.
On Fri, Feb 18, 2011 at 4:13 AM, J S <qu...@gmail.com> wrote:
> Hi
>
> I am using a database PM and connecting to an external DB2 (i-series)
> database. Access rights for the Jackrabbit database user are enough to allow
> the creation of tables at server start up. Data is also persisted
> successfully. However, at server restart, Jackrabbit tries to recreate the
> tables again and it fails because the tables are already there. The end
> result is Jackrabbit fails to initialize the file system, and the
> application is unusable (the data can’t be accessed). The workaround is to
> add <param name="schemaCheckEnabled" value="false"/> to stop the schema
> check. This is not necessary with MySql though, somehow, Jackrabbit realizes
> that tables are there and just use them without trying to create them again.
>
> With MySql, I am using MySqlPersistenceManager, but  with DB2 I am using the
> BundleDbPersistenceManager. Do you think there is something particular for
> DB2 that requires its own PersistentManager implementation?

no, i don't think so. it's most likely a permission issue (the db user lacks the
permission to read the meta data). see [0] and [1] for related information.
you might also want to have a look at the following method:

o.a.jackrabbit.core.util.db.ConnectionHelper#tableExists

cheers
stefan

[0] http://jackrabbit.markmail.org/message/jtq2sqis2aceh7ro
[1] https://issues.apache.org/jira/browse/JCR-2034

>
>
> Cheers,
>
> JS
>