[jboss-jira] [JBoss JIRA] (WFLY-4330) Async service with EJB pool blocks threads not used

Janario Oliveira (JIRA) issues at jboss.org
Fri Jul 3 09:15:08 EDT 2015


    [ https://issues.jboss.org/browse/WFLY-4330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086310#comment-13086310 ] 

Janario Oliveira commented on WFLY-4330:
----------------------------------------

> Secondly, from jdoc of Thread.sleep: "Causes the currently e...
This thread.sleep is to simulate a job that take a few time to be executed, If change to a loop that do something it will have the same problem
LocalDateTime init = LocalDateTime.now();
LocalDateTime end = init.plusSeconds(2);
while (end.isAfter(LocalDateTime.now())){
 //do something and just wait
}

>Thirdly. You define bean instance pool of 5, than file 15 jobs. Wh....
What is happens is even with a limited number of instances in pools it is blocking more threads than the limit. But at the end is just blocking for nothing, it won't process until release a new instance.

Without that there isn't advantages of use limited pool with async process, because it will block all my thread pool.


> Async service with EJB pool blocks threads not used
> ---------------------------------------------------
>
>                 Key: WFLY-4330
>                 URL: https://issues.jboss.org/browse/WFLY-4330
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 8.2.0.Final
>            Reporter: Janario Oliveira
>            Assignee: Bartosz Baranowski
>         Attachments: wildfly-thread-pool.zip
>
>
> I've created a bean pool to limit the number of some instances. In that case maximum 5 instances.
> <pools>
> 	<bean-instance-pools>
> 		<strict-max-pool name="slsb-max5" max-pool-size="5" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
> 		...
> 	</bean-instance-pools>
> </pools>
> The idea was to have some async service that work simultaneous.
> @Stateless
> @Pool("slsb-max5")
> public class AsyncService {
>     @Asynchronous
>     public Future<LocalDateTime> async2Seconds() {
>         //some parallel work...
>     }
> }
> The problem is when I invoke simultaneous more than 5 times it blocks the threads even it is not using (async thread-pool-name="default", default=10)
> Attached an example project (configure slsb-max5 pool and access /test-thread-pool/rest/async-resource)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the jboss-jira mailing list