Hi group. I have a content import/export related issue that's stumping me:
We've written a jackrabbit importer that does a node-by-node system view export
of approximately 200k content items from a source JCR in to an jboss-embedded
Jackrabbit 1.3.3 repository using the Derby Bundle PersistenceManager.
The import seems to run and complete OK, and the jackrabbit repository appears
to store/read/query the content correctly accross multiple expected (and
unexpected) restarts.
However, when we delete the content indexes (or even just set the PM
"consistencyCheck" option to "true") we get the following error followed by a
failure to start the repository:
2007-11-09 20:25:41,836 ERROR
[org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager]
Error in bundle
ERROR XJ073: The data in this BLOB or CLOB is no longer available. The
BLOB/CLOB's transaction may be committed, or its connection is closed.
at org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)
at org.apache.derby.impl.jdbc.EmbedBlob.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedResultSet.getBlob(Unknown Source)
at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.checkConsistency(BundleDbPersistenceManager.java:693)
at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.init(BundleDbPersistenceManager.java:571)
at
org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager.init(DerbyPersistenceManager.java:265)
at
org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(RepositoryImpl.java:1117)
at
org.apache.jackrabbit.core.RepositoryImpl.access$600(RepositoryImpl.java:99)
at
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1695)
at
org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(RepositoryImpl.java:540)
at
org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:379)
at
org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:286)
at
org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:521)
at
org.apache.jackrabbit.jca.JCARepositoryManager$Reference.create(JCARepositoryManager.java:167)
at
org.apache.jackrabbit.jca.JCARepositoryManager.createRepository(JCARepositoryManager.java:75)
at
org.apache.jackrabbit.jca.JCAManagedConnectionFactory.createRepository(JCAManagedConnectionFactory.java:289)
at
org.apache.jackrabbit.jca.JCAManagedConnectionFactory.createConnectionFactory(JCAManagedConnectionFactory.java:124)
at
org.jboss.resource.connectionmanager.ConnectionFactoryBindingService.createConnectionFactory(ConnectionFactoryBindingService.java:128)
at
org.jboss.resource.connectionmanager.ConnectionFactoryBindingService.startService(ConnectionFactoryBindingService.java:65)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
Has anyone else come accross this issue? Our initial suspicion was some sort
of database corruption but when we comment out the <SearchIndex>
declaration from the workspace.xml the repository starts up fine and all the
non-query related functions seem to work as expected.
We also did a node walk of the entire repository to try and flush out any
corrupt nodes but couldn't find any and all the content appeared correct.
Any advice or insight as to what's going on would be appreciated.
Thanks!
-Colin
P.S. Here are the persistence manager options we're using:
<PersistenceManager
class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager">
<param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
<param name="consistencyCheck" value="true"/>
<param name="consistencyFix" value="true"/>
<param name="derbyStorageInitialPages" value="16"/>
<param name="derbyStorageMinimumRecordSize" value="8192"/>
<param name="derbyStoragePageCacheSize" value="1024"/>
<param name="derbyStoragePageReservedSpace" value="20"/>
<param name="derbyStoragePageSize" value="16384"/>
</PersistenceManager>