openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: Design - CDI and worker threads
Date Thu, 10 Apr 2014 21:40:17 GMT


> But not propagated in async pool..and not in ejb 3.1
Of course it is!
But you wont find this in the EJB spec - you need to look in the EE umbrella spec and the
CDI spec ;)


> Ps: you can configure async pool or stateless pool
Yes, some container allow to configure this. But I'm pretty sure there is nothing in the spec
which requires it. So I'd rather hack it myself.

LieGrue,
strub


On Thursday, 10 April 2014, 23:18, Romain Manni-Bucau <rmannibucau@gmail.com> wrote:

Ps: you can configure async pool or stateless pool to limit concurrency depending the container...but
a semaphore enforces it portably
>Le 10 avr. 2014 22:15, "Romain Manni-Bucau" <rmannibucau@gmail.com> a écrit :
>
>But not propagated in async pool..and not in ejb 3.1
>>Le 10 avr. 2014 20:54, "Mark Struberg" <struberg@yahoo.de> a écrit :
>>
>>
>>>
>>>Nope, not right.
>>>The CDI spec mandates that @RequestScoped is active for all EJB calls. And every
subsequent invocation as well of course.
>>>
>>>LieGrue,
>>>strub
>>>
>>>
>>>On Thursday, 10 April 2014, 17:52, Romain Manni-Bucau <rmannibucau@gmail.com>
wrote:
>>>
>>>actually @Asynch doesn't mandates to start cdi contexts so request
>>>>scopes can or not be here but transactions are handled if you remove
>>>>transaction management.
>>>>Romain Manni-Bucau
>>>>Twitter: @rmannibucau
>>>>Blog: http://rmannibucau.wordpress.com/
>>>>LinkedIn: http://fr.linkedin.com/in/rmannibucau
>>>>Github: https://github.com/rmannibucau
>>>>
>>>>
>>>>
>>>>
>>>>2014-04-10 17:49 GMT+02:00 Mark Struberg <struberg@yahoo.de>:
>>>>> Hi Lars-Fredrik!
>>>>>
>>>>> This is one of the rare situations where @Asynchronous is good
>>>>>
>>>>> @Stateless
>>>>> @TransactionManagement(TransactionManagementType.BEAN)
>>>>> public class ThreadExecutorEjb {
>>>>>
>>>>>     @Asynchronous
>>>>>     public void executeTask(Runnable work, Object config) {
>>>>>         work.run();
>>>>>     }
>>>>> }
>>>>>
>>>>> The problem with this approach is that WAS is _really_ picky (and far
from
>>>>> the spec imo) when it comes to transactions.
>>>>> You might play a bit with the TransactionManagement and other stuff
>>>>> probably.
>>>>>
>>>>> LieGrue,
>>>>> strub
>>>>> On Thursday, 10 April 2014, 16:21, Romain Manni-Bucau
>>>>> <rmannibucau@gmail.com> wrote:
>>>>>
>>>>> Hmm deltaspike is a lib you can put in your app but if you really want
>>>>> to get rid of it you can copy
>>>>> https://git-wip-us.apache.org/repos/asf?p=deltaspike.git;a=blob;f=deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java;h=9e8ba98d46abc3843e8e5b872c882989a98fe16a;hb=HEAD
>>>>> Romain Manni-Bucau
>>>>> Twitter: @rmannibucau
>>>>> Blog: http://rmannibucau.wordpress.com/
>>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau
>>>>> Github: https://github.com/rmannibucau
>>>>>
>>>>>
>>>>>
>>>>> 2014-04-10 15:52 GMT+02:00 Lars-Fredrik Smedberg <itsmeden@gmail.com>:
>>>>>> Hi
>>>>>>
>>>>>> Thanks for the hint, however I'm not able to use Deltaspike but only
the
>>>>>> OpenWebbeans included with WebSphere 8.5.5.x...
>>>>>>
>>>>>> How can I do this with OpenWebbeans only?
>>>>>>
>>>>>> Regards
>>>>>> Lars-Fredrik
>>>>>>
>>>>>>
>>>>>> On Thu, Apr 10, 2014 at 3:47 PM, Romain Manni-Bucau
>>>>>> <rmannibucau@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> with CdiCtrl of deltaspike you can start/stop contexts. Decorate
your
>>>>>>> executorService to do it and it should be fine:
>>>>>>> http://openwebbeans.apache.org/testing_cdictrl.html
>>>>>>> Romain Manni-Bucau
>>>>>>> Twitter: @rmannibucau
>>>>>>> Blog: http://rmannibucau.wordpress.com/
>>>>>>> LinkedIn: http://fr.linkedin.com/in/rmannibucau
>>>>>>> Github: https://github.com/rmannibucau
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2014-04-10 15:37 GMT+02:00 Lars-Fredrik Smedberg <itsmeden@gmail.com>:
>>>>>>> > Hi
>>>>>>> >
>>>>>>> > If I within a thread wishes to start asynchronous "jobs"
using the
>>>>>>> > ExecutorService (and Executors.newFixedThreadPool(...))
and wait for
>>>>>>> > the
>>>>>>> > Future-result within that same thread I run into the following
>>>>>>> > exception:
>>>>>>> >
>>>>>>> > "WebBeans context with scope type annotation @RequestScoped
does not
>>>>>>> > exist
>>>>>>> > within current thread"
>>>>>>> >
>>>>>>> > which is understandable since the managed bean passed used
in the
>>>>>>> > Callable
>>>>>>> > passed to ExecutorService.submit(...) contains injected
beans iteself
>>>>>>> > that
>>>>>>> > are @RequestScoped.
>>>>>>> >
>>>>>>> > Is there any way around this? Suggestions on changing the
design
>>>>>>> > perhaps?
>>>>>>> >
>>>>>>> > Regards
>>>>>>> > Lars-Fredrik Smedberg
>>>>>>> >
>>>>>>> >
>>>>>>> > --
>>>>>>> > Med vänlig hälsning / Best regards
>>>>>>> >
>>>>>>> > Lars-Fredrik Smedberg
>>>>>>> >
>>>>>>> > STATEMENT OF CONFIDENTIALITY:
>>>>>>> > The information contained in this electronic message and
any
>>>>>>> > attachments to this message are intended for the exclusive
use of the
>>>>>>> > address(es) and may contain confidential or privileged information.
If
>>>>>>> > you are not the intended recipient, please notify Lars-Fredrik
Smedberg
>>>>>>> > immediately at itsmeden@gmail.com, and destroy all copies
of this
>>>>>>> > message and any attachments.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Med vänlig hälsning / Best regards
>>>>>>
>>>>>> Lars-Fredrik Smedberg
>>>>>>
>>>>>> STATEMENT OF CONFIDENTIALITY:
>>>>>> The information contained in this electronic message and any
>>>>>> attachments to this message are intended for the exclusive use of
the
>>>>>> address(es) and may contain confidential or privileged information.
If
>>>>>> you are not the intended recipient, please notify Lars-Fredrik Smedberg
>>>>>> immediately at itsmeden@gmail.com, and destroy all copies of this
>>>>>> message and any attachments.
>>>>>
>>>>>
>>>>
>>>>
>>>
>
>

Mime
View raw message