[JBoss JIRA] (AS7-6778) Configure EJB3/MDB with an individual thread pool for each EJB.
by jaikiran pai (JIRA)
[ https://issues.jboss.org/browse/AS7-6778?page=com.atlassian.jira.plugin.s... ]
jaikiran pai commented on AS7-6778:
-----------------------------------
By the way, if there's a specific example/usecase you are stuck with or are having problems trying to improve performance with, I would like to understand that and see if adding this feature will help solve it. I don't mind adding this feature if it's going to solve those requirements.
> Configure EJB3/MDB with an individual thread pool for each EJB.
> ---------------------------------------------------------------
>
> Key: AS7-6778
> URL: https://issues.jboss.org/browse/AS7-6778
> Project: Application Server 7
> Issue Type: Feature Request
> Components: EJB
> Affects Versions: EAP 6.1.0.Alpha (7.2.0.Final)
> Reporter: Jeremy Whiting
> Assignee: jaikiran pai
>
> For performance of an application to be scalable I need to configure sometimes a thread pool to an EJB. The pool is not shared with other EJB in the deployed application.
> For example
> PoolA - EJB Dog
> PoolB - EJB Cat
> To configure this the ability no define the thread pool name for an EJB. Rather than an EJB to the shared thread pool as it currently works.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (AS7-6778) Configure EJB3/MDB with an individual thread pool for each EJB.
by jaikiran pai (JIRA)
[ https://issues.jboss.org/browse/AS7-6778?page=com.atlassian.jira.plugin.s... ]
jaikiran pai commented on AS7-6778:
-----------------------------------
I'm sorry, I'm still not sure what's being asked for here.
>> Furthermore, the thread pools could be assigned to specific components, otherwise they will use the default one.
I don't understand this. Local invocations will keep using the originating thread. Assigning a thread pool to a component wouldn't have any affect on that.
>> We are having some bottleneck when increasing the threads for each components.
I think we should start looking at what those problems are and then figure out if adding some new feature is relevant.
> Configure EJB3/MDB with an individual thread pool for each EJB.
> ---------------------------------------------------------------
>
> Key: AS7-6778
> URL: https://issues.jboss.org/browse/AS7-6778
> Project: Application Server 7
> Issue Type: Feature Request
> Components: EJB
> Affects Versions: EAP 6.1.0.Alpha (7.2.0.Final)
> Reporter: Jeremy Whiting
> Assignee: jaikiran pai
>
> For performance of an application to be scalable I need to configure sometimes a thread pool to an EJB. The pool is not shared with other EJB in the deployed application.
> For example
> PoolA - EJB Dog
> PoolB - EJB Cat
> To configure this the ability no define the thread pool name for an EJB. Rather than an EJB to the shared thread pool as it currently works.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (DROOLS-72) Potential memory leak in StatelessKnowledgeSessionImpl#execute when fireAllRules throwing RuntimeException
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-72?page=com.atlassian.jira.plugin.... ]
Mario Fusco resolved DROOLS-72.
-------------------------------
Fix Version/s: 5.6
6.0.0.Alpha1
Resolution: Done
> Potential memory leak in StatelessKnowledgeSessionImpl#execute when fireAllRules throwing RuntimeException
> ----------------------------------------------------------------------------------------------------------
>
> Key: DROOLS-72
> URL: https://issues.jboss.org/browse/DROOLS-72
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Trung Nguyen
> Assignee: Mario Fusco
> Fix For: 5.6, 6.0.0.Alpha1
>
>
> when {{ksession.fireAllRules()}} throws RuntimeException, it cause {{ksession}} never gets released.
> {code:lang=java}
> public void execute(Object object) {
> StatefulKnowledgeSession ksession = newWorkingMemory();
> ksession.insert( object );
> ksession.fireAllRules( );
> ksession.dispose();
> }
> public void execute(Iterable objects) {
> StatefulKnowledgeSession ksession = newWorkingMemory();
> for ( Object object : objects ) {
> ksession.insert( object );
> }
> ksession.fireAllRules( );
> ksession.dispose();
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (DROOLS-72) Potential memory leak in StatelessKnowledgeSessionImpl#execute when fireAllRules throwing RuntimeException
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-72?page=com.atlassian.jira.plugin.... ]
Mario Fusco reassigned DROOLS-72:
---------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> Potential memory leak in StatelessKnowledgeSessionImpl#execute when fireAllRules throwing RuntimeException
> ----------------------------------------------------------------------------------------------------------
>
> Key: DROOLS-72
> URL: https://issues.jboss.org/browse/DROOLS-72
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Trung Nguyen
> Assignee: Mario Fusco
>
> when {{ksession.fireAllRules()}} throws RuntimeException, it cause {{ksession}} never gets released.
> {code:lang=java}
> public void execute(Object object) {
> StatefulKnowledgeSession ksession = newWorkingMemory();
> ksession.insert( object );
> ksession.fireAllRules( );
> ksession.dispose();
> }
> public void execute(Iterable objects) {
> StatefulKnowledgeSession ksession = newWorkingMemory();
> for ( Object object : objects ) {
> ksession.insert( object );
> }
> ksession.fireAllRules( );
> ksession.dispose();
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (DROOLS-81) Drools freezes during execution
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-81?page=com.atlassian.jira.plugin.... ]
Mario Fusco reassigned DROOLS-81:
---------------------------------
Assignee: Mario Fusco (was: Mark Proctor)
> Drools freezes during execution
> -------------------------------
>
> Key: DROOLS-81
> URL: https://issues.jboss.org/browse/DROOLS-81
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Andrew kelly
> Assignee: Mario Fusco
>
> When Drools is being run to process rules on a number of threads on occasion the rules engine freezes with the stack trace below and does not complete. There are a number of other threads that are also frozen out waiting to lock 0x00002aab9d4caf58:
> Frozen Thread
> "pool-3-thread-8" prio=10 tid=0x00002ab53d16e000 nid=0x1c29 runnable [0x0000000049fc7000]
> java.lang.Thread.State: RUNNABLE
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:408)
> - locked \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaec5b1b160\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.iontrading.arc.liquidityrules.api.rulestoresource.AbstractRuleStoreSourceService.performBaselineProcessing(AbstractRuleStoreSourceService.java:860)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.access$600(RuleStoreSourceService.java:32)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:66)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Example of other frozen threads:
> "pool-3-thread-9" prio=10 tid=0x00002ab53d16f800 nid=0x1c2a waiting for monitor entry [0x000000004a0c9000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386)
> - waiting to lock \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaeedca2870\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.performViewProcessing(RuleStoreSourceService.java:133)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:78)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (DROOLS-81) Drools freezes during execution
by Mario Fusco (JIRA)
[ https://issues.jboss.org/browse/DROOLS-81?page=com.atlassian.jira.plugin.... ]
Mario Fusco commented on DROOLS-81:
-----------------------------------
At the moment I am not able to reproduce this issue. Could you please send a reproducer, or at least explain in more details how to reproduce it?
> Drools freezes during execution
> -------------------------------
>
> Key: DROOLS-81
> URL: https://issues.jboss.org/browse/DROOLS-81
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Andrew kelly
> Assignee: Mario Fusco
>
> When Drools is being run to process rules on a number of threads on occasion the rules engine freezes with the stack trace below and does not complete. There are a number of other threads that are also frozen out waiting to lock 0x00002aab9d4caf58:
> Frozen Thread
> "pool-3-thread-8" prio=10 tid=0x00002ab53d16e000 nid=0x1c29 runnable [0x0000000049fc7000]
> java.lang.Thread.State: RUNNABLE
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:408)
> - locked \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaec5b1b160\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.iontrading.arc.liquidityrules.api.rulestoresource.AbstractRuleStoreSourceService.performBaselineProcessing(AbstractRuleStoreSourceService.java:860)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.access$600(RuleStoreSourceService.java:32)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:66)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Example of other frozen threads:
> "pool-3-thread-9" prio=10 tid=0x00002ab53d16f800 nid=0x1c2a waiting for monitor entry [0x000000004a0c9000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386)
> - waiting to lock \<0x00002aab9d4caf58\> (a java.lang.ref.ReferenceQueue)
> at java.util.WeakHashMap.getTable(WeakHashMap.java:417)
> at java.util.WeakHashMap.get(WeakHashMap.java:464)
> at org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:241)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:1039)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:987)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:377)
> at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:143)
> at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)
> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)
> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
> at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
> at org.mvel2.MVEL.executeExpression(MVEL.java:930)
> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:104)
> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
> - locked \<0x00002aaeedca2870\> (a org.drools.common.DefaultAgenda)
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at com.iontrading.arc.liquidityrules.engine.BatchRulesEngine.processAll(BatchRulesEngine.java:64)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService.performViewProcessing(RuleStoreSourceService.java:133)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:78)
> at com.rbc.erm.rulestoresource.RuleStoreSourceService$RuleStoreProcess.call(RuleStoreSourceService.java:38)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months
[JBoss JIRA] (AS7-6778) Configure EJB3/MDB with an individual thread pool for each EJB.
by Weixing Sun (JIRA)
[ https://issues.jboss.org/browse/AS7-6778?page=com.atlassian.jira.plugin.s... ]
Weixing Sun commented on AS7-6778:
----------------------------------
Hi Jaikiran,
Thanks for your comments!
I think we should use the asynchronous invocation from the web container to the EJB container.
If we have multiple tiers defined, we may have to define how many system threads for JSP/Servlet, and how many for EJB/MDB, JMS and WebService.
Furthermore, the thread pools could be assigned to specific components, otherwise they will use the default one.
That's the thread pools of other commercial appservers implemented.
We are having some bottleneck when increasing the threads for each components.
Thanks and regards
Weixing
> Configure EJB3/MDB with an individual thread pool for each EJB.
> ---------------------------------------------------------------
>
> Key: AS7-6778
> URL: https://issues.jboss.org/browse/AS7-6778
> Project: Application Server 7
> Issue Type: Feature Request
> Components: EJB
> Affects Versions: EAP 6.1.0.Alpha (7.2.0.Final)
> Reporter: Jeremy Whiting
> Assignee: jaikiran pai
>
> For performance of an application to be scalable I need to configure sometimes a thread pool to an EJB. The pool is not shared with other EJB in the deployed application.
> For example
> PoolA - EJB Dog
> PoolB - EJB Cat
> To configure this the ability no define the thread pool name for an EJB. Rather than an EJB to the shared thread pool as it currently works.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 9 months