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>