jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-1551) TransientRepository: application doesn't exist quickly
Date Mon, 28 Apr 2008 07:17:55 GMT

    [ https://issues.apache.org/jira/browse/JCR-1551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12592754#action_12592754
] 

Thomas Mueller commented on JCR-1551:
-------------------------------------

Thanks for the tip! Indeed the DynamicPooledExecutor seems to be the problem. from http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/PooledExecutor.html

"The default keep-alive value is one minute"

If I change that to 500 ms, the repository is shut down very quickly. I don't know however
what the effect on indexing performance is, so I wait with committing until somebody with
more insight can review the change. See also: https://issues.apache.org/jira/browse/JCR-1222

Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DynamicPooledExecutor.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DynamicPooledExecutor.java
(revision 651569)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/DynamicPooledExecutor.java
(working copy)
@@ -49,6 +49,7 @@
      */
     public DynamicPooledExecutor() {
         executor = new PooledExecutor();
+        executor.setKeepAliveTime(500);
         executor.waitWhenBlocked();
         adjustPoolSize();
     }


> TransientRepository: application doesn't exist quickly
> ------------------------------------------------------
>
>                 Key: JCR-1551
>                 URL: https://issues.apache.org/jira/browse/JCR-1551
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-core
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>            Priority: Minor
>
> When using the TransientRepository, the repository should be closed when the last session
logs out. This works, but in some cases there is a very long (60 seconds) delay between closing
the last session and closing the repository.
> Test case:
>     public static void main(String[] args) throws Exception {
>         Repository repository = new TransientRepository();
>         Session session = repository.login(new SimpleCredentials("", new char[0]));
>         session.getRootNode().setProperty("a", "0");
>         session.save(); // very quick logout without this line
>         session.logout();
>         System.out.println("Logout...");
>         final long time = System.currentTimeMillis();
>         Runtime.getRuntime().addShutdownHook(new Thread() {
>             public void run() {
>                 System.out.println("End after: " + (System.currentTimeMillis() - time));
>             }
>         });
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message