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 Fri, 11 Apr 2014 06:52:07 GMT
Concurrency utils is a completely different spec and IS broken as it does _not_ define it properly.
But for @Asynchronous it's perfectly well defined in the spec.

I use this as thread starter for BatchEE and I've tested it in 
* TomEE
* WAS-8.0.0.6
* WAS-8.5.5.1
* JBossAS-7.0.3.Final
* latest WildFly

LieGrue,
strub


On Friday, 11 April 2014, 7:15, Romain Manni-Bucau <rmannibucau@gmail.com> wrote:
 
Ok about the spec but propagation doesnt work for sure (it is a kind of issue for concurrency
utilities)
>You are right for the config but i just realize i was really not clear (throw new TooLateException).
If you sont configure the container, you can use a semaphore with 20 permits and the container
block you to 10. So it is important to have a look too and it can be enough avoiding custom
potentially buggy code.
>Le 10 avr. 2014 22:40, "Mark Struberg" <struberg@yahoo.de> a écrit :
>
>
>>
>>> 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