You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Ista Pouss <is...@gmail.com> on 2010/11/10 17:02:53 UTC

30 secondes to create and open a repository ?

Hi,

On my post I need 30s to create and open a repository. Is it possible to
reduce this time ?

Here is my super program :


package com.hum;

import java.io.File;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import org.apache.jackrabbit.core.TransientRepository;

public class HurryUpJCR
{
  public static void main(String[] args) throws Exception
  {
    long time = System.currentTimeMillis();
    System.out.println("start at " + time);
    File dir = new File(System.getProperty("java.io.tmpdir"));
    dir = new File(dir, "jcr" + time);
    dir.mkdirs();
    TransientRepository repo = new TransientRepository(dir);
    Session session = repo.login(
      new SimpleCredentials("logiciel", "mamamia".toCharArray()));
    System.out.println("finish at " + System.currentTimeMillis());
  }
}


And I get start at 1289404350797, end at 1289404377984, so 27secondes more
or less. My computer is a normal computer, and my jvm is 1.6.0_22,
jackrabitt 2.0.0.

Here is my complete log :

--- exec-maven-plugin:1.1.1:exec (default-cli) @ autonome ---
start at 1289404350797
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /logs/auteurlog4j.log (No such file or
directory)
        at java.io.FileOutputStream.openAppend(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
        at
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:167)
        at
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
        at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
        at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
        at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
        at
org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
        at
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
        at
org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:509)
        at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:415)
        at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
        at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
        at
org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:249)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:261)
        at
org.apache.jackrabbit.core.TransientRepository.<clinit>(TransientRepository.java:53)
        at com.hum.HurryUpJCR.main(HurryUpJCR.java:26)
- 10 nov. 2010 16:52:30,963 INFO  [main]
        org.apache.jackrabbit.core.config.RepositoryConfig : Installing
default repository configuration to /tmp/jcr1289404350797/repository.xml
---------
- 10 nov. 2010 16:52:31,120 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : Starting repository...
---------
- 10 nov. 2010 16:52:31,125 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/repository
---------
- 10 nov. 2010 16:52:31,311 INFO  [main]
        org.apache.jackrabbit.core.nodetype.NodeTypeRegistry : no custom
node type definitions found
---------
- 10 nov. 2010 16:52:31,320 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/version
---------
- 10 nov. 2010 16:52:40,310 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : initializing workspace
'default'...
---------
- 10 nov. 2010 16:52:40,311 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/workspaces/default
---------
- 10 nov. 2010 16:52:49,936 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : indexing...
/jcr:system/jcr:nodeTypes/nt:file (100)
---------
- 10 nov. 2010 16:52:50,083 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 180 nodes
---------
- 10 nov. 2010 16:52:50,083 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/repository/index Version: 3
---------
- 10 nov. 2010 16:52:50,285 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 1 nodes
---------
- 10 nov. 2010 16:52:50,286 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/workspaces/default/index Version: 3
---------
- 10 nov. 2010 16:52:50,286 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : workspace 'default'
initialized
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : created system
workspace: security
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : Repository started
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.TransientRepository : Transient
repository initialized
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : initializing workspace
'security'...
---------
- 10 nov. 2010 16:52:50,293 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path
/tmp/jcr1289404350797/workspaces/security
---------
- 10 nov. 2010 16:52:57,924 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 1 nodes
---------
- 10 nov. 2010 16:52:57,924 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/workspaces/security/index Version: 3
---------
- 10 nov. 2010 16:52:57,925 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : workspace 'security'
initialized
---------
- 10 nov. 2010 16:52:57,932 INFO  [main]
        org.apache.jackrabbit.core.security.simple.SimpleSecurityManager :
init: using Repository LoginModule configuration for Jackrabbit
---------
- 10 nov. 2010 16:52:57,940 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : SecurityManager = class
org.apache.jackrabbit.core.security.simple.SimpleSecurityManager
---------
- 10 nov. 2010 16:52:57,984 INFO  [main]
        org.apache.jackrabbit.core.TransientRepository : Session opened
---------
finish at 1289404377984

Thanks.

Re: 30 secondes to create and open a repository ?

Posted by Torgeir Veimo <to...@netenviron.com>.
On 11 November 2010 02:02, Ista Pouss <is...@gmail.com> wrote:
> On my post I need 30s to create and open a repository. Is it possible to
> reduce this time ?

30 seconds sounds suspiciously like a network connection timeout.
Maybe somewhere there's an XML file that seeks validation during
parsing, with a DTD URL that points to the wrong location?

-- 
-Tor

Re: 30 secondes to create and open a repository ?

Posted by Thomas Mueller <mu...@adobe.com>.
Hi,

>It seem that DerbyPersistenceManager, the default, is very time expensive,
>for me, at startup.

That's strange, Derby is relatively fast for me. Not as fast as other Java
databases, but much faster than 30 seconds.

>If I must use another database, which one ?

You could try the H2 database - http://h2database.com - it is a bit faster
than Derby according to my test. Disclaimer: I'm one of the H2 committers.

But most likely Derby is not responsible for the 30 seconds. Try profiling
the startup. To do that, use java
-Xrunhprof:cpu=samples,depth=32,interval=1 - see also
http://h2database.com/html/performance.html#application_profiling - or use
the build-in Profiler tool of the H2 database:
http://h2database.com/html/performance.html#built_in_profiler

Regards,
Thomas


RE: 30 secondes to create and open a repository ?

Posted by "Palmer, Tom" <To...@usi.com>.
If you're just doing unit testing, we've been very happy with an
in-memory repository.  It still needs some tmp directory setup/teardown
but a parent test case deals with that.  Here's our repository XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD
Jackrabbit 1.4//EN"
 
"http://jackrabbit.apache.org/dtd/repository-2.0.dtd">

<!-- Minimal memory-based JCR configuration file for unit testing -->
<Repository>

	<FileSystem
class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>

	<Security appName="Jackrabbit">
		<AccessManager
class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
		<LoginModule
class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
			<param name="anonymousId" value="anonymous"/>
		</LoginModule>
	</Security>

	<Workspaces rootPath="${rep.home}/workspaces"
defaultWorkspace="draft"/>

	<Workspace name="${wsp.name}">
		<FileSystem
class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>
		<PersistenceManager
class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManage
r">
			<param name="persistent" 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}/versions">
		<FileSystem
class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/>
		<PersistenceManager
class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManage
r">
			<param name="persistent" value="false"/>
		</PersistenceManager>
	</Versioning>
	<SearchIndex
class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
		<param name="path"
value="${rep.home}/repository/index"/>
	</SearchIndex>
</Repository>

Enjoy -


-----Original Message-----
From: Rakesh Vidyadharan [mailto:rakesh@sptci.com] 
Sent: Thursday, November 11, 2010 8:54 AM
To: users@jackrabbit.apache.org
Subject: Re: 30 secondes to create and open a repository ?


On 11 Nov 2010, at 07:21, Ista Pouss wrote:

> 2010/11/11 Cech. Ulrich <Ul...@aeb.de>
> 
>> < No, I configure nothing ; the repository goes in an empty
directory, as
>> you can see with dirs.mkdirs().>
>> Then, try to configure a repository.xml and choose simple FileSystem
as
>> PersistenceManager and so on and give this XML to the
TransientRepository to
>> check, if this makes some difference.
>> 
>> 
> With BundleFsPersistenceManager, the same take only 3 secondes !
> 
> It seem that DerbyPersistenceManager, the default, is very time
expensive,
> for me, at startup.

Try h2.  It is quite a bit faster to startup than Derby.  It also has
the benefit that a crash will usually not require manually deleting lock
files.

Rakesh

Re: 30 secondes to create and open a repository ?

Posted by Ista Pouss <is...@gmail.com>.
Thanks all.

I see, with some experiments, thats it's only the repository creation time
which is consuming. If I do create + open, I have 30 secondes. If I do open
only, I have 3 secondes, with an existing repository.

Perhaps it's normal ??

About H2, I get :

---------
- 11 nov. 2010 19:35:14,773 INFO  [main]

org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager :
Driver: H2 JDBC Driver / 1.2.145 (2010-11-02)
---------
- 11 nov. 2010 19:35:14,829 ERROR [main]

org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager :
could not execute statement, reason: Unique index or primary key violation:
"PRIMARY_KEY_7 ON PUBLIC.BUNDLE(NODE_ID)"; SQL statement:
insert into BUNDLE (BUNDLE_DATA, NODE_ID) values (?, ?) [23001-145],
state/code: 23001/23001
---------
- 11 nov. 2010 19:35:14,831 ERROR [main]

org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager :
failed to write bundle: deadbeef-cafe-babe-cafe-babecafebabe
---------
org.h2.jdbc.JdbcSQLException: Unique index or primary key violation:
"PRIMARY_KEY_7 ON PUBLIC.BUNDLE(NODE_ID)"; SQL statement:
insert into BUNDLE (BUNDLE_DATA, NODE_ID) values (?, ?) [23001-145]
        at
org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
        at org.h2.message.DbException.get(DbException.java:167)
        at org.h2.message.DbException.get(DbException.java:144)
        at
org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:158)
        at org.h2.index.PageBtree.find(PageBtree.java:121)
        at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:144)
        at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:100)
        at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:90)
        at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:81)
        at org.h2.table.RegularTable.addRow(RegularTable.java:125)
        at org.h2.command.dml.Insert.insertRows(Insert.java:126)
        at org.h2.command.dml.Insert.update(Insert.java:86)
        at org.h2.command.CommandContainer.update(CommandContainer.java:69)
        at org.h2.command.Command.executeUpdate(Command.java:201)
        at
org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:181)
        at
org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:371)
        at
org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:298)
        at
org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:261)
        at
org.apache.jackrabbit.core.persistence.bundle.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:239)
        at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:1207)
        at
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.putBundle(AbstractBundlePersistenceManager.java:684)
        at
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.storeInternal(AbstractBundlePersistenceManager.java:626)
        at
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.store(AbstractBundlePersistenceManager.java:502)
        at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:561)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.createRootNodeState(SharedItemStateManager.java:1324)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedItemStateManager.java:200)
        at
org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(RepositoryImpl.java:1458)
        at
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:2023)
        at
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1994)
        at
org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:535)
        at
org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:366)
        at
org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:673)
        at
org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:231)
        at
org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:259)
        at
org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:355)
        at
org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123)
        at com.hum.HurryUpJCR_1.main(HurryUpJCR_1.java:17)


 I'm not lucky today... perhaps best tomorow ?... Good nigth. Thanks again
for your help today.




2010/11/11 Rakesh Vidyadharan <ra...@sptci.com>

>
> On 11 Nov 2010, at 07:21, Ista Pouss wrote:
>
> > 2010/11/11 Cech. Ulrich <Ul...@aeb.de>
> >
> >> < No, I configure nothing ; the repository goes in an empty directory,
> as
> >> you can see with dirs.mkdirs().>
> >> Then, try to configure a repository.xml and choose simple FileSystem as
> >> PersistenceManager and so on and give this XML to the
> TransientRepository to
> >> check, if this makes some difference.
> >>
> >>
> > With BundleFsPersistenceManager, the same take only 3 secondes !
> >
> > It seem that DerbyPersistenceManager, the default, is very time
> expensive,
> > for me, at startup.
>
> Try h2.  It is quite a bit faster to startup than Derby.  It also has the
> benefit that a crash will usually not require manually deleting lock files.
>
> Rakesh

Re: 30 secondes to create and open a repository ?

Posted by Rakesh Vidyadharan <ra...@sptci.com>.
On 11 Nov 2010, at 07:21, Ista Pouss wrote:

> 2010/11/11 Cech. Ulrich <Ul...@aeb.de>
> 
>> < No, I configure nothing ; the repository goes in an empty directory, as
>> you can see with dirs.mkdirs().>
>> Then, try to configure a repository.xml and choose simple FileSystem as
>> PersistenceManager and so on and give this XML to the TransientRepository to
>> check, if this makes some difference.
>> 
>> 
> With BundleFsPersistenceManager, the same take only 3 secondes !
> 
> It seem that DerbyPersistenceManager, the default, is very time expensive,
> for me, at startup.

Try h2.  It is quite a bit faster to startup than Derby.  It also has the benefit that a crash will usually not require manually deleting lock files.

Rakesh

Re: 30 secondes to create and open a repository ?

Posted by Stefan Guggisberg <st...@day.com>.
On Thu, Nov 11, 2010 at 2:21 PM, Ista Pouss <is...@gmail.com> wrote:
> 2010/11/11 Cech. Ulrich <Ul...@aeb.de>
>
>> < No, I configure nothing ; the repository goes in an empty directory, as
>> you can see with dirs.mkdirs().>
>> Then, try to configure a repository.xml and choose simple FileSystem as
>> PersistenceManager and so on and give this XML to the TransientRepository to
>> check, if this makes some difference.
>>
>>
> With BundleFsPersistenceManager, the same take only 3 secondes !
>
> It seem that DerbyPersistenceManager, the default, is very time expensive,
> for me, at startup.
>
> But what to do ?... in wiki I read, at
> http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ#Bundle_File-System_PM:
> "Bundle File-System PM Not meant to be used in production environments
> (except for read-only uses)".
>
> is it derby wich is bad ? If I must use another database, which one ?

you're on the wrong track. your poor startup performance is mainly due
to classloading.
if you create the repository repeatedly in the same process you'll notice
significantly improved startup time.

however, there must be something wrong with your setup/machine.

on my macbook pro (2.8ghz) the first startup takes 3-4 seconds,
2nd startup takes about 0.4 seconds.

cheers
stefan


>
> My use case is a desktop application, for text/images, like catalogs
> (something like 10.000 products).
>
>
>
>
>> And try to use some absolute paths. It seems that there is something wrong
>> with your computers' IO-access.
>>
>>
> It is absolute path, and jackrabbit is the only one which detect this
> "something wrong" stuf with my computer IO-access, fortunately.
>
> Thanks.
>

Re: 30 secondes to create and open a repository ?

Posted by Ista Pouss <is...@gmail.com>.
2010/11/11 Cech. Ulrich <Ul...@aeb.de>

> < No, I configure nothing ; the repository goes in an empty directory, as
> you can see with dirs.mkdirs().>
> Then, try to configure a repository.xml and choose simple FileSystem as
> PersistenceManager and so on and give this XML to the TransientRepository to
> check, if this makes some difference.
>
>
With BundleFsPersistenceManager, the same take only 3 secondes !

It seem that DerbyPersistenceManager, the default, is very time expensive,
for me, at startup.

But what to do ?... in wiki I read, at
http://wiki.apache.org/jackrabbit/PersistenceManagerFAQ#Bundle_File-System_PM:
"Bundle File-System PM Not meant to be used in production environments
(except for read-only uses)".

is it derby wich is bad ? If I must use another database, which one ?

My use case is a desktop application, for text/images, like catalogs
(something like 10.000 products).




> And try to use some absolute paths. It seems that there is something wrong
> with your computers' IO-access.
>
>
It is absolute path, and jackrabbit is the only one which detect this
"something wrong" stuf with my computer IO-access, fortunately.

Thanks.

AW: 30 secondes to create and open a repository ?

Posted by "Cech. Ulrich" <Ul...@aeb.de>.
< No, I configure nothing ; the repository goes in an empty directory, as you can see with dirs.mkdirs().>
Then, try to configure a repository.xml and choose simple FileSystem as PersistenceManager and so on and give this XML to the TransientRepository to check, if this makes some difference.

And try to use some absolute paths. It seems that there is something wrong with your computers' IO-access.


Re: 30 secondes to create and open a repository ?

Posted by Ista Pouss <is...@gmail.com>.
2010/11/11 Cech. Ulrich <Ul...@aeb.de>

> Hi,
>
> did you try to configure a repository.xml and choose simple FileSystem as
> PersistenceManager and so on and give this XML to the TransientRepository?
> Do you have some other IO-Processes in the background? The code is quite
> ok, but the starting of the repository should never last so long.
>
>
Thanks for your help.

No, I configure nothing ; the repository goes in an empty directory, as you
can see with dirs.mkdirs().

No other process in background : it's the main method, as you can see. I use
Netbeans as EDI. I'm on linux/mandriva.

AW: 30 secondes to create and open a repository ?

Posted by "Cech. Ulrich" <Ul...@aeb.de>.
Hi,

did you try to configure a repository.xml and choose simple FileSystem as PersistenceManager and so on and give this XML to the TransientRepository?
Do you have some other IO-Processes in the background? The code is quite ok, but the starting of the repository should never last so long.

Bye,
Ulrich


-----Ursprüngliche Nachricht-----
Von: Ista Pouss [mailto:istaous@gmail.com] 
Gesendet: Mittwoch, 10. November 2010 17:03
An: users@jackrabbit.apache.org
Betreff: 30 secondes to create and open a repository ?

Hi,

On my post I need 30s to create and open a repository. Is it possible to
reduce this time ?

Here is my super program :


package com.hum;

import java.io.File;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import org.apache.jackrabbit.core.TransientRepository;

public class HurryUpJCR
{
  public static void main(String[] args) throws Exception
  {
    long time = System.currentTimeMillis();
    System.out.println("start at " + time);
    File dir = new File(System.getProperty("java.io.tmpdir"));
    dir = new File(dir, "jcr" + time);
    dir.mkdirs();
    TransientRepository repo = new TransientRepository(dir);
    Session session = repo.login(
      new SimpleCredentials("logiciel", "mamamia".toCharArray()));
    System.out.println("finish at " + System.currentTimeMillis());
  }
}


And I get start at 1289404350797, end at 1289404377984, so 27secondes more
or less. My computer is a normal computer, and my jvm is 1.6.0_22,
jackrabitt 2.0.0.

Here is my complete log :

--- exec-maven-plugin:1.1.1:exec (default-cli) @ autonome ---
start at 1289404350797
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /logs/auteurlog4j.log (No such file or
directory)
        at java.io.FileOutputStream.openAppend(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:177)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
        at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
        at
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:167)
        at
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
        at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
        at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
        at
org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
        at
org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
        at
org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
        at
org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:509)
        at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:415)
        at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
        at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
        at
org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:249)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:261)
        at
org.apache.jackrabbit.core.TransientRepository.<clinit>(TransientRepository.java:53)
        at com.hum.HurryUpJCR.main(HurryUpJCR.java:26)
- 10 nov. 2010 16:52:30,963 INFO  [main]
        org.apache.jackrabbit.core.config.RepositoryConfig : Installing
default repository configuration to /tmp/jcr1289404350797/repository.xml
---------
- 10 nov. 2010 16:52:31,120 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : Starting repository...
---------
- 10 nov. 2010 16:52:31,125 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/repository
---------
- 10 nov. 2010 16:52:31,311 INFO  [main]
        org.apache.jackrabbit.core.nodetype.NodeTypeRegistry : no custom
node type definitions found
---------
- 10 nov. 2010 16:52:31,320 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/version
---------
- 10 nov. 2010 16:52:40,310 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : initializing workspace
'default'...
---------
- 10 nov. 2010 16:52:40,311 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path /tmp/jcr1289404350797/workspaces/default
---------
- 10 nov. 2010 16:52:49,936 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : indexing...
/jcr:system/jcr:nodeTypes/nt:file (100)
---------
- 10 nov. 2010 16:52:50,083 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 180 nodes
---------
- 10 nov. 2010 16:52:50,083 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/repository/index Version: 3
---------
- 10 nov. 2010 16:52:50,285 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 1 nodes
---------
- 10 nov. 2010 16:52:50,286 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/workspaces/default/index Version: 3
---------
- 10 nov. 2010 16:52:50,286 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : workspace 'default'
initialized
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : created system
workspace: security
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : Repository started
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.TransientRepository : Transient
repository initialized
---------
- 10 nov. 2010 16:52:50,292 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : initializing workspace
'security'...
---------
- 10 nov. 2010 16:52:50,293 INFO  [main]
        org.apache.jackrabbit.core.fs.local.LocalFileSystem :
LocalFileSystem initialized at path
/tmp/jcr1289404350797/workspaces/security
---------
- 10 nov. 2010 16:52:57,924 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.MultiIndex : Created initial
index for 1 nodes
---------
- 10 nov. 2010 16:52:57,924 INFO  [main]
        org.apache.jackrabbit.core.query.lucene.SearchIndex : Index
initialized: /tmp/jcr1289404350797/workspaces/security/index Version: 3
---------
- 10 nov. 2010 16:52:57,925 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : workspace 'security'
initialized
---------
- 10 nov. 2010 16:52:57,932 INFO  [main]
        org.apache.jackrabbit.core.security.simple.SimpleSecurityManager :
init: using Repository LoginModule configuration for Jackrabbit
---------
- 10 nov. 2010 16:52:57,940 INFO  [main]
        org.apache.jackrabbit.core.RepositoryImpl : SecurityManager = class
org.apache.jackrabbit.core.security.simple.SimpleSecurityManager
---------
- 10 nov. 2010 16:52:57,984 INFO  [main]
        org.apache.jackrabbit.core.TransientRepository : Session opened
---------
finish at 1289404377984

Thanks.