hi david,
i spotted one potential issue. you're specifying the same (static!)
schema object prefix for
the workspace & versioning persistence manager:
<param name="schemaObjectPrefix" value="myprefix_" />
this almost certainly calls for trouble.
for the workspace pm you could specify e.g.
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
and for the version pm
<param name="schemaObjectPrefix" value="version_"/>
you should delete any local workspace.xml files etc and drop/recreate
the ingres db before you try again.
cheers
stefan
On 2/15/07, David Moss <[EMAIL PROTECTED]> wrote:
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)