Hi

I had problems using Jackrabbit in more than one schema on the same oracle instance.

Jackrabbit assumes that the table name (f.e.: prefix + fs_entry) is unique across all schemas used on one oracle instance. So two Jackrabbit instances using two schemas on the same Oracle instance won't work.

A solution for the problem is to overwrite the checkSchema methods in OracleFileSystem and OraclePersistenceManager and consider the schema name.

Here are the first few lines from OraclePersistenceManager.checkSchema():

protected void checkSchema() throws Exception {
       DatabaseMetaData metaData = con.getMetaData();
       String tableName = schemaObjectPrefix + "NODE";
       *String userName = metaData.getUserName();
if (metaData.storesLowerCaseIdentifiers()) {
           tableName = tableName.toLowerCase();
       } else if (metaData.storesUpperCaseIdentifiers()) {
           tableName = tableName.toUpperCase();
       }
       *ResultSet rs = metaData.getTables(null, userName, tableName, null);
      ....
}

* mark the changes - the remainder of the method is from DBPersistenceManager


best regards

Dietmar



Reply via email to