Hi,

I'd like to use the database persistence manager on an Ingres database.  As
there's no database schema for Ingres, I've had a go at creating one but
when I try to create the repository I'm getting errors and I'm not sure
where to go now.  Can anyone help?

Stack trace produced...

javax.jcr.RepositoryException: failed to read node state:
deadbeef-face-babe-caf
e-babecafebabe: failed to read node state:
deadbeef-face-babe-cafe-babecafebabe
       at org.apache.jackrabbit.core.version.VersionManagerImpl
.<init>(VersionM
anagerImpl.java:173)
       at org.apache.jackrabbit.core.RepositoryImpl.createVersionManager
(Reposi
toryImpl.java:361)
       at org.apache.jackrabbit.core.RepositoryImpl.<init>(
RepositoryImpl.java:
282)
       at org.apache.jackrabbit.core.RepositoryImpl.create(
RepositoryImpl.java:
573)

Caused by: org.apache.jackrabbit.core.state.ItemStateException: failed to
read n
ode state: deadbeef-face-babe-cafe-babecafebabe
       at
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.
load(DatabasePersistenceManager.java:354)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState
(SharedItemStateManager.java:1101)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtual
ItemState(SharedItemStateManager.java:1028)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(
SharedItemStateManager.java:250)
       at
org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(L
ocalItemStateManager.java:95)
       at
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(L
ocalItemStateManager.java:150)
       at org.apache.jackrabbit.core.version.VersionManagerImpl
.<init>(VersionM
anagerImpl.java:166)
       ... 6 more
Caused by: java.io.EOFException
       at java.io.DataInputStream.readInt(Unknown Source)
       at
org.apache.jackrabbit.core.persistence.util.Serializer.deserialize(Se
rializer.java:153)
       at
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.
load(DatabasePersistenceManager.java:345)
       ... 12 more
org.apache.jackrabbit.core.state.ItemStateException: failed to read node
state:
deadbeef-face-babe-cafe-babecafebabe
       at
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.
load(DatabasePersistenceManager.java:354)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState
(SharedItemStateManager.java:1101)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtual
ItemState(SharedItemStateManager.java:1028)
       at
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(
SharedItemStateManager.java:250)
       at
org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(L
ocalItemStateManager.java:95)
       at
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(L
ocalItemStateManager.java:150)
       at org.apache.jackrabbit.core.version.VersionManagerImpl
.<init>(VersionM
anagerImpl.java:166)
       at org.apache.jackrabbit.core.RepositoryImpl.createVersionManager
(Reposi
toryImpl.java:361)
       at org.apache.jackrabbit.core.RepositoryImpl.<init>(
RepositoryImpl.java:
282)
       at org.apache.jackrabbit.core.RepositoryImpl.create(
RepositoryImpl.java:
573)

Caused by: java.io.EOFException
       at java.io.DataInputStream.readInt(Unknown Source)
       at
org.apache.jackrabbit.core.persistence.util.Serializer.deserialize(Se
rializer.java:153)
       at
org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.
load(DatabasePersistenceManager.java:345)
       ... 12 more


Config files if they help...

FYI: myapp.db.MyDatabasePersistenceManager does nothing but override
DatabasePersistenceManager.getSchemaDDL in order to let me load my own .ddl
file without building it into the jackrabbit source.

---repository.xml ----

<?xml version="1.0"?>

<Repository>
   <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
       <param name="path" value="${rep.home}/repository"/>
   </FileSystem>

   <Security appName="Jackrabbit">
       <AccessManager class="
org.apache.jackrabbit.core.security.SimpleAccessManager">
       </AccessManager>

       <LoginModule class="
org.apache.jackrabbit.core.security.SimpleLoginModule">
          <param name="anonymousId" value="anonymous"/>
       </LoginModule>
   </Security>

   <Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="default"/>

   <Workspace name="${wsp.name}">

       <FileSystem class="
org.apache.jackrabbit.core.fs.local.LocalFileSystem">
           <param name="path" value="${wsp.home}"/>
       </FileSystem>

       <PersistenceManager class="myapp.db.MyDatabasePersistenceManager">
         <param name="driver" value="com.ingres.jdbc.IngresDriver" />
         <param name="url" value="databaseurl"/>
         <param name="user" value="databaseuser" />
         <param name="password" value="databasepassword" />
         <param name="schema" value="ingres" />
         <param name="schemaObjectPrefix" value="myprefix_" />
         <param name="externalBLOBs" value="false" />
       </PersistenceManager>

       <SearchIndex class="
org.apache.jackrabbit.core.query.lucene.SearchIndex">
           <param name="path" value="${wsp.home}/index"/>
           <param name="textFilterClasses" value="
                  org.apache.jackrabbit.core.query.MsExcelTextFilter,
                  org.apache.jackrabbit.core.query.MsPowerPointTextFilter,
                  org.apache.jackrabbit.core.query.MsWordTextFilter,
                  org.apache.jackrabbit.core.query.PdfTextFilter,
                  org.apache.jackrabbit.core.query.HTMLTextFilter,
                  org.apache.jackrabbit.core.query.XMLTextFilter,
                  org.apache.jackrabbit.core.query.RTFTextFilter,
           org.apache.jackrabbit.core.query.OpenOfficeTextFilter" />
       </SearchIndex>

   </Workspace>

   <Versioning rootPath="${rep.home}/version">
       <FileSystem class="
org.apache.jackrabbit.core.fs.local.LocalFileSystem">
           <param name="path" value="${rep.home}/version" />
       </FileSystem>


       <PersistenceManager class="myapp.db.MyDatabasePersistenceManager">
         <param name="driver" value="com.ingres.jdbc.IngresDriver" />
         <param name="url" value="databaseurl"/>
         <param name="user" value="databaseuser" />
         <param name="password" value="databasepassword" />
         <param name="schema" value="ingres" />
         <param name="schemaObjectPrefix" value="myprefix_" />
         <param name="externalBLOBs" value="false" />
       </PersistenceManager>

   </Versioning>

   <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex
">
       <param name="path" value="${rep.home}/repository/index"/>
   </SearchIndex>

</Repository>


------ingres.ddl---------
create table ${schemaObjectPrefix}NODE (NODE_ID char(36) not null, NODE_DATA
long byte not null)
create unique index ${schemaObjectPrefix}NODE_IDX on
${schemaObjectPrefix}NODE (NODE_ID)
create table ${schemaObjectPrefix}PROP (PROP_ID varchar(1000) not null,
PROP_DATA long byte not null)
create unique index ${schemaObjectPrefix}PROP_IDX on
${schemaObjectPrefix}PROP (PROP_ID)
create table ${schemaObjectPrefix}REFS (NODE_ID char(36) not null, REFS_DATA
long byte not null)
create unique index ${schemaObjectPrefix}REFS_IDX on
${schemaObjectPrefix}REFS (NODE_ID)
create table ${schemaObjectPrefix}BINVAL (BINVAL_ID varchar(1000) not null,
BINVAL_DATA long byte not null)
create unique index ${schemaObjectPrefix}BINVAL_IDX on
${schemaObjectPrefix}BINVAL (BINVAL_ID)

Reply via email to