Hi Stefan et al,
Thanks for the info. I was not aware of the consistency checker.
I tried to run it on our setup but the checker appears to ignore the
schemaObjectPrefix setting e.g. when starting the repository I get:
31 Jul 2007 09:40:30,563 INFO
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager -
foobar: checking workspace consistency..
31 Jul 2007 09:40:30,576 ERROR
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager -
Error in bundle
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table
'mydatabase.bundle' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293
)
at
com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:867)
at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.che
ckConsistency(BundleDbPersistenceManager.java:689)
at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.ini
t(BundleDbPersistenceManager.java:581)
at
org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager.init(M
ySqlPersistenceManager.java:54)
Note that the table name is actually "foorbar_bundle" not "bundle".
Are there any other params to the consistency checker I can use to resolve
the above?
Regards,
Shaun.
-----Original Message-----
From: Stefan Guggisberg [mailto:[EMAIL PROTECTED]
Sent: 30 July 2007 14:00
To: [email protected]
Subject: Re: Strange "ignoring nonexistent item" and removeitem fails
hi shaun,
On 7/30/07, sbarriba <[EMAIL PROTECTED]> wrote:
> Hi Stefan,
>
> "what persistence manager are you using?"
> We're using MySql 5.0.27, mysql-connector-java-5.0.6-bin.jar and
>
> <PersistenceManager
>
class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager
> ">
> <param name="driver" value="com.mysql.jdbc.Driver"/>
> <param name="url" value="jdbc:mysql://mysql-host:3306/[SID]"/>
> <param name="schemaObjectPrefix" value="${wsp.name}_"/>
> <param name="user" value="[SID]"/>
> <param name="password" value="[SID]"/>
> <param name="schema" value="mysql"/>
> <param name="externalBlobs" value="false"/>
> </PersistenceManager>
>
> The nodes were deleted using the JCR API.
hmm, i have no idea what could possibly lead to the corruption. the entire
changelog generated by a save() or commit is persisted within a single
jdbc transaction. in the case of an Item#remove(), the changelog includes
the removed item, its parent and its descendants (if any). so dangling
child node entries should never occur.
however...
>
> Sounds like I need to open up the bonnet and get the spanners out?
i suggest you try the following:
add the following to your persistence manager config:
<param name="consistencyCheck" value="true">
shutdown and restart the repository and check the jackrabbit log file
(you might want to set the log category to "INFO"). this option
tells the pm to perform a consistency check and report and anomalies.
if there are any inconsistencies, you could try the following option:
<param name="consistencyCheck" value="true">
<param name="consistencyFix" value="true">
i hope that this will do the trick.
cheers
stefan
>
> Regards,
> Shaun.
>
> -----Original Message-----
> From: Stefan Guggisberg [mailto:[EMAIL PROTECTED]
> Sent: 30 July 2007 11:31
> To: [email protected]
> Subject: Re: Strange "ignoring nonexistent item" and removeitem fails
>
> hi shaun,
>
> On 7/30/07, sbarriba <[EMAIL PROTECTED]> wrote:
> > Hi all,
> >
> > We have a fairly complex structured node - Node A. Node A contains
various
> > child nodes that have references.
> >
> >
> >
> > When attempting to delete the Node A using removeitem in the command
line:
> >
> >
> >
> > exception: javax.jcr.ItemNotFoundException
> >
> > message: eb76dc5d-4d56-4ceb-9586-fdcedd53a2e7
> >
> >
> >
> > No exception is reporting in the JackRabbit log. Note that I can find no
> > nodes relating to the above ID (using a query) - the uuid of the node
> we're
> > trying to delete is cd2a933a-1da8-42c0-9236-d128c2cc9825.
> >
> >
> >
> > As further info when performing a 'dump' on the node we see the
following
> in
> > the JackRabbit logs:
> >
> >
> >
> > 30 Jul 2007 11:00:53,472 DEBUG
org.apache.jackrabbit.core.LazyItemIterator
> > - ignoring nonexistent item eb76dc5d-4d56-4ceb-9586-fdcedd53a2e7
> >
>
> seems like there's a dangling reference, i.e. a child node entry refering
to
> an nonexistent item. that shouldn't happen :-( what persistence manager
> are you using?
>
> >
> >
> > Immediately before this problem occurred some subnodes were successfully
> > deleted from Node A. This is the first time we've seen any kind of
> > corruption issues of this type.
>
> how did you delete the subnodes? using the jcr api or using the cmd line
> tool?
>
> cheers
> stefan
>
> >
> >
> >
> > Any recommendations on how to resolve this issue?
> >
> >
> >
> > Regards,
> >
> > Shaun.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>