Hi,
We are using JackRabbit 2.0.
We are currently testing Jackrabbit in clustering setup. We have 2 servers
with Jackrabbit installed and we are storing all the datas in 1 database. I
have attached the repository.xml we are using.
We observed Jackrabbit creating 15 tables for storing workspace, versioning
and persistence manager informations as below:
*Clustering related tables:*
{prefix}_global_revision
{prefix}_journal
{prefix}_local_revisions
*DBFile System related table:*
{prefix}_fsentry
*DbDatastore related table:*
{prefix}_datastore
*Versioning related tables:*
{prefix}_fsentry
{prefix}_binval
{prefix}_bundle
{prefix}_names
{prefix}_refs
*Workspace related tables:*
{prefix}_fsentry
{prefix}_binval
{prefix}_bundle
{prefix}_names
{prefix}_refs
*We want to know in which table actual data is getting stored.* Please also
point us, if there is any description on purpose of each table.
Also we observed *{Clustering_prefix}_journal and {Workspace_prefix}_bundle
table are growing very significantly*. Is there any documented way for
purging these tables? We saw some responses for purging of
{Clustering_prefix}_journal tables stating
"old journal entries may be removed as follows: after having verified that
every node in the cluster has read all outstanding changes"
How can we verify that every node in the cluster has read all outstanding
changes programatically? We went through
"DatabaseJournal.RevisionTableJanitor" cleanUpOldRevisions(). Can we use
this? If so, how can we purge {Workspace_prefix}_bundle table?
Any pointers will be of great help.
--
Cheers,
Ashok
+91-9600117508
<?xml version="1.0"?>
<!DOCTYPE Repository
PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
"http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
<!--
Example Repository Configuration File
Used by
- org.apache.jackrabbit.core.config.RepositoryConfigTest.java
-
-->
<Repository>
<!--
virtual file system where the repository stores global state
(e.g. registered namespaces, custom node types, etc.)
-->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_repositoryTable_fs_"/>
</FileSystem>
<!--
data store configuration
-->
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="databaseType" value="postgresql"/>
<param name="tablePrefix" value="jcr_repositoryTable_ds_"/>
</DataStore>
<!--
security configuration
-->
<Security appName="Jackrabbit">
<!--
security manager:
class: FQN of class implementing the JackrabbitSecurityManager interface
-->
<SecurityManager class="org.apache.jackrabbit.core.security.simple.SimpleSecurityManager" workspaceName="security">
<!--
workspace access:
class: FQN of class implementing the WorkspaceAccessManager interface
-->
<!-- <WorkspaceAccessManager class="..."/>
-->
<!-- <param name="config" value="${rep.home}/security.xml"/>
-->
</SecurityManager>
<!--
access manager:
class: FQN of class implementing the AccessManager interface
-->
<AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager">
<!-- <param name="config" value="${rep.home}/access.xml"/>
-->
</AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
<!--
anonymous user name ('anonymous' is the default value)
-->
<param name="anonymousId" value="anonymous" />
<!--
administrator user id (default value if param is missing is 'admin')
-->
<param name="adminId" value="admin" />
</LoginModule>
</Security>
<!--
location of workspaces root directory and name of default workspace
-->
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<!--
workspace configuration template:
used to create the initial workspace if there's no workspace yet
-->
<Workspace name="${wsp.name}">
<!--
virtual file system of the workspace:
class: FQN of class implementing the FileSystem interface
-->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_workspaceTable_fs_"/>
</FileSystem>
<!--
persistence manager of the workspace:
class: FQN of class implementing the PersistenceManager interface
-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_workspaceTable_pm_"/>
</PersistenceManager>
<!--
Search index and the file system it uses.
class: FQN of class implementing the QueryHandler interface
-->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<param name="supportHighlighting" value="true" />
</SearchIndex>
</Workspace>
<!--
Configures the versioning
-->
<Versioning rootPath="${rep.home}/version">
<!--
Configures the filesystem to use for versioning for the respective
persistence manager
-->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_versioningTable_fs_"/>
</FileSystem>
<!--
Configures the persistence manager to be used for persisting version state.
Please note that the current versioning implementation is based on
a 'normal' persistence manager, but this could change in future
implementations.
-->
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_versioningTable_pm_"/>
</PersistenceManager>
</Versioning>
<!--
Search index for content that is shared repository wide
(/jcr:system tree, contains mainly versions)
-->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${rep.home}/repository/index" />
<param name="supportHighlighting" value="true" />
</SearchIndex>
<!--
Cluster configuration with system variables.
-->
<Cluster id="node2" syncDelay="2000">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://x.x.x.x:5432/picoemsdb"/>
<param name="user" value="postgres"/>
<param name="password" value="postgres"/>
<param name="schema" value="postgresql"/>
<param name="schemaObjectPrefix" value="jcr_clusterTable_"/>
</Journal>
</Cluster>
</Repository>