Hi All,
I have spent the last week going through the setup of our cluster
configuration, and I think I might have an issue with its
configuration
and
need your help in rectifying it.
Ok here is a little bit of history... The system has been running
absolutely
fine for quite some time and we have been seeing issues only
lately. The
current configuration is:
1. Two servers - each running JBoss 4.2.2
2. Jackrabbit JCA has been deployed on each node. The
applications access
JCR via JNDI / RMI lookups
3. Each instance has its own home directory, but the workspace
content is
on
a shared NAS.
4. The repository uses a hybrid of FileStore and DBStore
(information
available in the files)
Now, for some time I keep having occasional issues of content being
available from one node and not being available from another
node. I keep
seeing exceptions like:
Caused by: javax.jcr.RepositoryException: failed to resolve name of
47901c42-8187-497f-bbd2-10e61e65966a
at
org
.apache
.jackrabbit
.rmi.server.ServerObject.getRepositoryException(ServerObject.java:
136)
at
org
.apache.jackrabbit.rmi.server.ServerItem.getName(ServerItem.java:
71)
at sun.reflect.GeneratedMethodAccessor466.invoke(Unknown
Source)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun
.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:
466)
at
sun.rmi.transport.tcp.TCPTransport
$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
at
sun
.rmi
.transport
.StreamRemoteCall
.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at
sun
.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
at
org.apache.jackrabbit.rmi.server.ServerNode_Stub.getName(Unknown
Source)
at
org
.apache.jackrabbit.rmi.client.ClientItem.getName(ClientItem.java:
85)
From all the reading that I have been doing, I am guessing this
is a case
of
broken search indexes (please correct me if I am wrong). If that
is the
case, then how do I go about cleaning up this mess? I guess I am
extreme
novice and am not sure about the guy who set this up in the first
place,
but
any help on this front would be greatly appreciated.
Thanks,
Rogue
p.s.: Sorry for the HTML mail.
--------------------------
My repository.xml file
<?xml version="1.0"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD
Jackrabbit 1.2//EN"
"http://jackrabbit.apache.org/dtd/repository-1.2.dtd">
<Repository>
<FileSystem
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path"
value="/apps/jboss/jcr_repositories/ugc_repository/shared/
content"/>
</FileSystem>
<Security appName="Jackrabbit">
<AccessManager
class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
<LoginModule
class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="anonymousId" value="anonymous"/>
</LoginModule>
</Security>
<Workspaces
rootPath="/apps/jboss/jcr_repositories/ugc_repository/shared/
content/"
defaultWorkspace="default"/>
<Workspace name="default">
<FileSystem
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
</FileSystem>
<PersistenceManager
class
=
"org
.apache
.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="db-connect-details"/>
<param name="user" value="db-username"/>
<param name="password" value="db-password"/>
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_PM_DEFAULT_"/>
<param name="externalBLOBs" value="true"/>
<param name="blobFSBlockSize" value="0"/>
<param name="minBlobSize" value="0"/>
</PersistenceManager>
</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
=
"org
.apache
.jackrabbit.core.persistence.bundle.OraclePersistenceManager">
<param name="driver" value="oracle.jdbc.OracleDriver"/>
<param name="url" value="db-connect-details"/>
<param name="user" value="db-username"/>
<param name="password" value="db-password"/>
<param name="schema" value="oracle"/>
<param name="schemaObjectPrefix" value="J_V_PM_"/>
<param name="externalBLOBs" value="true"/>
<param name="blobFSBlockSize" value="0"/>
<param name="minBlobSize" value="0"/>
</PersistenceManager>
</Versioning>
<Cluster id="node1">
<Journal
class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal">
<param name="revision" value="${rep.home}/revision.log" />
<param name="driver" value="oracle.jdbc.OracleDriver" />
<param name="url" value="db-connect-details" />
<param name="user" value="db-username" />
<param name="password" value="db-password" />
</Journal>
</Cluster>
</Repository>