I was able to create a simple test that reproduces the issue with Derby and 
Oracle, so I've opened JCR-2870 to track the problem. Does it make sense for 
the ConnectionFactory to be cleared once the TransientRepository shuts down? It 
doesn't look like the ConnectionFactory can be reused once it has its closed 
field set to true.

Thanks,

  Chris Schmidt

-----Original Message-----
From: Chris Schmidt [mailto:[email protected]] 
Sent: Tuesday, January 04, 2011 7:19 AM
To: [email protected]
Subject: RE: Configuration question with DataSource and TransientRepository 

  The configuration file is similar to the standard/example configuration file. 
 The only difference is it specifies a custom wrapper class for most items that 
delegate to either the JackRabbit Oracle or SqlServer instances depending on 
the database type the application is running against (we maintain a single 
configuration file and determine at runtime which database type is configured). 
 

  Below is a tweaked version of the configuration file currently in use.  I 
switched to use as many 'core' JackRabbit classes to help narrow where the 
problem is coming from (our custom code vs. Jackrabbit).  I can get the same 
factory closed error with this configuration:

<?xml version="1.0"?>
<!DOCTYPE Repository
          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
          "http://jackrabbit.apache.org/dtd/repository-2.0.dtd";>
<Repository>
    <DataSources>
        <DataSource name="ds1">
            <param name="driver" value="oracle.jdbc.driver.OracleDriver" />
            <param name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
            <param name="user" value="user" />
            <param name="password" value="password" />
            <param name="databaseType" value="oracle"/>
        </DataSource>
    </DataSources>

    <!--
        virtual file system where the repository stores global state
        (e.g. registered namespaces, custom node types, etc.)
    -->
    <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
        <param name="schemaObjectPrefix" value="JCR_VFS_"/>
        <param name="dataSourceName" value="ds1"/>
        <param name="tableSpace" value="PDK_DAT"/>
    </FileSystem>

    
    <Security appName="Jackrabbit">
        

        <AccessManager 
class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager">
        </AccessManager>

        <LoginModule 
class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
                      <param name="anonymousId" value="anonymous"/>
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
    
    <Workspace name="Jackrabbit Core">
        
        <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
            <param name="dataSourceName" value="ds1"/>
            <param name="schemaObjectPrefix" value="JCR_WSFS_"/>
            <param name="tableSpace" value="PDK_DAT"/>
        </FileSystem>
        
        <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
          <param name="dataSourceName" value="ds1"/>
          <param name="schemaObjectPrefix" value="JCR_BNDL_WSPM_"/>
          <param name="tableSpace" value="PDK_DAT"/>
        </PersistenceManager>
        
        <SearchIndex 
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${rep.home}/lucene/index"/>
            <param name="indexingConfiguration"
                value="${rep.home}/../../../jcr/indexing_configuration.xml"/>
        </SearchIndex>
    </Workspace>

    
    <Versioning rootPath="${rep.home}/version">
        
        <FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
            <param name="dataSourceName" value="ds1"/>
            <param name="schemaObjectPrefix" value="JCR_VERFS_"/>
            <param name="tableSpace" value="PDK_DAT"/>
        </FileSystem>

       <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager">
          <param name="dataSourceName" value="ds1"/>
          <param name="schemaObjectPrefix" value="JCR_BNDL_VERPM_"/>
          <param name="tableSpace" value="PDK_DAT"/>          
        </PersistenceManager>
    </Versioning>
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${rep.home}/lucene/repository/index"/>
    </SearchIndex>
    
    <Cluster syncDelay="60000">
        <Journal 
class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal">
            <param name="schemaObjectPrefix" value="JCR_JNL_"/>
            <param name="tableSpace" value="PDK_DAT"/>
            <param name="dataSourceName" value="ds1"/>
        </Journal>
    </Cluster>

</Repository>
-----Original Message-----
From: Thomas Mueller [mailto:[email protected]] 
Sent: Tuesday, January 04, 2011 2:07 AM
To: [email protected]
Subject: Re: Configuration question with DataSource and TransientRepository 

Hi,

How does your configuration files look like?

Regards,
Thomas

Reply via email to