deltaspike-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Kildén <karl.kil...@gmail.com>
Subject Re: Extended EntityManager
Date Sun, 19 Apr 2015 18:33:27 GMT
Denis,

What's the added benefit of wrapping the em in @ConversationScoped instead
of exposing it like this directly. I am also porting a huge seam app (about
1k views) so I do need extended em.

cheers

On 19 April 2015 at 19:20, titou10 <titou10.titou10@gmail.com> wrote:

>
>
> Le 2015-04-19 11:24, Mark Struberg a écrit :
>
>> Hi Dennis!
>>
>>
>>  Have you *ever* hit this situation?
>>>
>> Yes, under heavy load it happens pretty often actually (I’m talking about
>> multi-million request/day public internet apps). It also depends a bit on
>> the JPA container you use. From the pure spec it is forbitten to touch the
>> EntityManager in parallel threads and also to touch managed (‚attached’)
>> entities in parallel threads. What JPA container are you using?
>>
> Here we are talking about one ONE EM per ONE CDI Conversation.
> So you have  applications with multi-million request/day concurrently in
> one CDI Conversation that may lead *often* to a misuse of the EM ?
> Impressive... How do you do that: Ajax requests? Proprietary client
> javascript framework?
> Or you are talking about *not closed EM* because the @PreDestroy callback
> method has not been called in some particulat situation (sendRedirect is
> called and the new request is processed before the initial request)?
> Sorry, Mark but you lost me.....
> Denis
>
>
>  Also, who programs a „sendRedirect" in the middle of a method that then
>>> performs database access ..?
>>>
>> You don’t need to do database access even. It is enough that the
>> entitymanager is not closed as per the spec.
>>
>>
>>  Even so, this is pure theory, the chance are so tiny this happens…
>>>
>> Then I had bad luck - quite often ;)
>>
>>
>>  And If you think this *may* happen within one conversation, then change
>>> the way redirects are send, or the way database is accessed in parallel in
>>> Ajax requests. not the way EM is used IMHO
>>>
>> That might be a solution. Or force the EM to get closed before the
>> redirect.
>>
>>  Also your remark on „unfinished thread" is valid for ANY
>>> components/resources held in ConversationScope, not just the EM, true?
>>>
>> Yes, but most components have no problems with getting accessed in
>> parallel. For managed Entities and EntityManagers it’s explicitly forbidden
>> by the JPA spec.
>>
>> LieGrue,
>> strub
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message