You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by sbarriba <sb...@yahoo.co.uk> on 2009/03/11 09:35:37 UTC

JackRabbit workspace reached 32000 index directories

Hi all,

We're using JackRabbit 1.4.5. One of workspaces is logging lots of errors as
follows. The directory /var/repository/workspaces/acme/index contains 32000
directories which is presumably the problem.

In what circumstances does JackRabbit create so many indexes at one level
and how can this be resolved?

 

All help very much appreciated.

 

Regards,

Shaun

 

Caused by: java.io.IOException: Unable to create directory:
/var/repository/workspaces/acme/index/_5j8c

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.newIndexFolder(MultiIndex
..java:1116)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiInd
ex.java:580)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(Multi
Index.java:1658)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.
java:956)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(Multi
Index.java:1003)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:866
)

        at
org.apache.jackrabbit.core.query.lucene.Recovery.run(Recovery.java:172)

        at
org.apache.jackrabbit.core.query.lucene.Recovery.run(Recovery.java:85)

        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:31
4)

        at
org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:
447)

        at
org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHand
ler.java:53)

        at
org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManage
r.java:582)

        ... 37 more

 


Re: JackRabbit workspace reached 32000 index directories

Posted by Marcel Reutegger <ma...@gmx.net>.
Hi,

I've seen something similar when the index merger was busy merging
very large index segments. If that is actually the problem you can set
a higher value for the minMergeDocs parameter on the SearchIndex (e.g.
1000, default is 100) and also limit the maxMergeDocs (e.g. 1000000,
default is Integer.MAX_VALUE).

would also be interesting to see your current workspace.xml.

regards
 marcel

On Wed, Mar 11, 2009 at 09:35, sbarriba <sb...@yahoo.co.uk> wrote:
> Hi all,
>
> We're using JackRabbit 1.4.5. One of workspaces is logging lots of errors as
> follows. The directory /var/repository/workspaces/acme/index contains 32000
> directories which is presumably the problem.
>
> In what circumstances does JackRabbit create so many indexes at one level
> and how can this be resolved?
>
>
>
> All help very much appreciated.
>
>
>
> Regards,
>
> Shaun
>
>
>
> Caused by: java.io.IOException: Unable to create directory:
> /var/repository/workspaces/acme/index/_5j8c
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.newIndexFolder(MultiIndex
> ..java:1116)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiInd
> ex.java:580)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(Multi
> Index.java:1658)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.
> java:956)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(Multi
> Index.java:1003)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:866
> )
>
>        at
> org.apache.jackrabbit.core.query.lucene.Recovery.run(Recovery.java:172)
>
>        at
> org.apache.jackrabbit.core.query.lucene.Recovery.run(Recovery.java:85)
>
>        at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.<init>(MultiIndex.java:31
> 4)
>
>        at
> org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:
> 447)
>
>        at
> org.apache.jackrabbit.core.query.AbstractQueryHandler.init(AbstractQueryHand
> ler.java:53)
>
>        at
> org.apache.jackrabbit.core.SearchManager.initializeQueryHandler(SearchManage
> r.java:582)
>
>        ... 37 more
>
>
>
>

AW: Problem casting my Session to SessionImpl

Posted by Kurz Wolfgang <wo...@gwvs.de>.
Yes that was the problem thx a lot!

-----Ursprüngliche Nachricht-----
Von: Alexander Klimetschek [mailto:aklimets@day.com] 
Gesendet: Mittwoch, 11. März 2009 14:59
An: users@jackrabbit.apache.org
Betreff: Re: Problem casting my Session to SessionImpl

On Wed, Mar 11, 2009 at 10:39 AM, Kurz Wolfgang <wo...@gwvs.de> wrote:
> but then I get the following exception:
>
> javax.el.ELException: java.lang.ClassCastException: org.apache.jackrabbit.core.XASessionImpl cannot be cast to org.apache.jackrabbit.core.SessionImpl
>
> I am using a local Repository which is globally available over JNDI.

Looks like a class path problem, because XASessionImpl extends
SessionImpl and casting should work. It's probably that your client
code has a different jackrabbit-core jar in it's classpath than the
actual repository (that passes this over JNDI to the client).

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetschek@day.com

Re: Problem casting my Session to SessionImpl

Posted by Alexander Klimetschek <ak...@day.com>.
On Wed, Mar 11, 2009 at 10:39 AM, Kurz Wolfgang <wo...@gwvs.de> wrote:
> but then I get the following exception:
>
> javax.el.ELException: java.lang.ClassCastException: org.apache.jackrabbit.core.XASessionImpl cannot be cast to org.apache.jackrabbit.core.SessionImpl
>
> I am using a local Repository which is globally available over JNDI.

Looks like a class path problem, because XASessionImpl extends
SessionImpl and casting should work. It's probably that your client
code has a different jackrabbit-core jar in it's classpath than the
actual repository (that passes this over JNDI to the client).

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetschek@day.com

Problem casting my Session to SessionImpl

Posted by Kurz Wolfgang <wo...@gwvs.de>.
Hello everyone,

i am trying to implement the garbage collection for the datastore, which looks really easy in the wiki.

Here is the code I use:

ObjectContentManager ocm = ocmFactory.createObjectContentManager();
GarbageCollector gc;
SessionImpl si = (SessionImpl)ocm.getSession();
gc = si.createDataStoreGarbageCollector();	
gc.scan();
gc.stopScan();

but then I get the following exception:

javax.el.ELException: java.lang.ClassCastException: org.apache.jackrabbit.core.XASessionImpl cannot be cast to org.apache.jackrabbit.core.SessionImpl

I am using a local Repository which is globally available over JNDI.

Anyone have an Idea how I get the this working?

Thx a lot in advance to anyone who has some hints for me:-)

Wolfgang