Hi there,
I got a cluster system with three nodes and a central jcr repo (v 1.6.0) on
a mssql 2005 server. my problem ist, that the DbDataStore already hit the
12 GB mark and my Garbage Collector is not working properly. The DataStore
contains about 260 000 entries and everytime the GC does his work, he
touches every single entry so the mod_date gets updated with the gc
starting time. It seems like every item is still in use.
I guess that the PersistenceManager does not release/destroy a single node.
Anyone got a clue how to do that?
GC Code:
this.si = (SessionImpl)
this.sessionHolder.getCurrentSession();
this.gc = this.si.createDataStoreGarbageCollector();
System.gc();
gc.scan();
gc.stopScan();
int deleted = gc.deleteUnused();
Repo XML:
<Repository>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="driver" value="net.sourceforge.jtds.jdbc.Driver"
/>
...
<param name="databaseType" value="sqlserver" />
</DataStore>
<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" />
<LoginModule
class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="default" />
<Workspace name="Jackrabbit Core">
<FileSystem
class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}" />
</FileSystem>
<PersistenceManager
class="org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager">
<param name="driver"
value="net.sourceforge.jtds.jdbc.Driver" />
...
<param name="schemaObjectPrefix" value="Jackrabbit
Core_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<SearchIndex
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
</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="org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager">
<param name="driver"
value="net.sourceforge.jtds.jdbc.Driver" />
...
<param name="schemaObjectPrefix" value="Jackrabbit
Core_" />
<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>
<Cluster id="node_2" syncDelay="5">
<Journal
class="org.apache.jackrabbit.core.journal.MSSqlDatabaseJournal">
<param name="revision" value="${rep.home}/revision" />
<param name="driver"
value="net.sourceforge.jtds.jdbc.Driver" />
....
<param name="janitorEnabled" value="true" />
<param name="janitorFirstRunHourOfDay" value="3" />
</Journal>
</Cluster>
</Repository>