jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Connelly <dsconne...@adelphia.net>
Subject Re: permgen error with jackrabbit 1.1
Date Wed, 18 Oct 2006 15:14:33 GMT
Torgeir:

Let me guess that you are using Sun's Java 5 JVM.   Perhaps even the 
64-bit JVM.   These are still beta releases.

The same problem exists with Eclipse running under Sun Java 5 if a 
fairly large number of plugins has been used (loaded) in one session.

The Eclipse Bugzilla for this crash blames it on bogus GC in the Sun JVM.  

One solution is to drop back to Sun JVM 1.4.2.   Or, find another vendor.

Of course, you can configure the Sun Java 5 JVM for extra large 
permspace allocation.  
For instance:  -XX:PermSize=80M  -XX:MaxPermSize=128M

This will postpone the inevitable collapse.

       -- Dan


Torgeir Veimo wrote:

> I'm getting out of permgen space with jackrabbit running under tomcat  
> when the webapp has been reloaded enough times.
>
> I've been trying to find the problem using jconsole, and it appears  
> if I do a session.login(); and session.logout(), then a good number  
> of classes will not be unloaded after the webapp has been reloaded.  
> I'm using TransientRepository and the following repository.xml file:
>
> <Repository>
>     <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">
>            <!-- anonymous user name ('anonymous' is the default  
> value) -->
>            <param name="anonymousId" value="anonymous"/>
>         </LoginModule>
>     </Security>
>     <Workspaces rootPath="${rep.home}/workspaces"  
> defaultWorkspace="default" />
>     <Workspace name="${wsp.name}">
>         <FileSystem  
> class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
>             <param name="path" value="${wsp.home}"/>
>         </FileSystem>
>         <PersistenceManager  
> class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
>         <SearchIndex  
> class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
>             <param name="path" value="${wsp.home}/index"/>
>             <param name="autoRepair" value="true"/>
>             <param name="analyzer"  
> value="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
>             <param name="textFilterClasses"
>                  
> value="org.apache.jackrabbit.core.query.HTMLTextFilter,org.apache.jackra 
> bbit.core.query.XMLTextFilter"/>
>         </SearchIndex>
>     </Workspace>
>     <Versioning rootPath="${rep.home}/versions">
>         <FileSystem  
> class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
>             <param name="path" value="${rep.home}/versions"/>
>         </FileSystem>
>         <PersistenceManager  
> class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
>     </Versioning>
> </Repository>
>
> The code that is running and using Jackrabbit is limited to this:
>
> String rootDirectory = (String) ConfigManager.getEnvironmentEntry 
> ("jackrabbit/directory");
> String configFile = (String) ConfigManager.getEnvironmentEntry 
> ("jackrabbit/configfile");
>
> URL url = event.getServletContext().getResource(configFile);
> InputStream repositoryXml = event.getServletContext 
> ().getResourceAsStream(configFile);
> RepositoryConfig config = RepositoryConfig.create(repositoryXml,  
> rootDirectory);
> repository = new TransientRepository(config);
>
> Session session = repository.login();
> session.logout();
>
>


Mime
View raw message