[jboss-as7-dev] EJB passivation/activation, clustering and JPA extended persistence context handling...
Brian Stansberry
brian.stansberry at redhat.com
Fri Dec 2 17:27:38 EST 2011
On 12/2/11 4:22 PM, Scott Marlow wrote:
> On 12/02/2011 04:38 PM, Jason T. Greene wrote:
>> On 12/2/11 2:55 PM, Scott Marlow wrote:
>>>> We also know that we need to replicate the serialization group (as its
>>>> definition changes dynamically). For example, the application has five
>>>> stateful session beans (SFSB1-SFSB5) that are associated with three
>>>> extended persistence contexts (XPC1-XPC3). The relationships between
>>>> these five beans are as follows:
>>>>
>>>> SFSB1 uses XPC1
>>>> SFSB2 uses XPC1 and has reference to SFSB3
>>>> SFSB3 uses XPC2
>>>> SFSB4 uses XPC2 and has reference to SFSB5
>>>> SFSB5 uses XPC3
>>>>
>>>> When SFSB1 fails over, we need to fail-over its working set (the
>>>> serialization group which includes SFSB1, SFSB2, SFSB3, SFSB4, SFSB5,
>>>> XPC1, XPC2, XPC3). In case its not obvious why, SFSB2 may have pending
>>>> database updates in XPC1, so it must fail-over also to the same target
>>>> node. Since SFSB2 has a reference to SFSB3, SFSB3 needs to fail-over
>>>> together with the group also (and so the pattern continues for SFSB4,
>>>> SFSB5, XPC3).
>>>
>>> The above is the application correctness issue. If SFSB2 fails over to
>>> a different node than SFSB4, the extended persistence context could be
>>> used on two different nodes. Basically, the extended persistence
>>> context can live through several non-transactional invocations. When a
>>> transaction is finally started on SFSB3 or SFSB4, the XPC2 changes will
>>> finally be committed.
>>
>> I still don't this is right. those references go across a proxy, and the
>> proxy's backing data can be anywhere.
>>
>
> I should of added that SFSB2 has a local reference to SFSB3 (which means
> they originates on the same JVM). I assumed that SFSB2 is migrated to
> the same target node as SFSB3 to keep the reference local (during a
> fail-over). No matter, where SFSB3 goes, SFSB4 needs to be on the same
> node (to share the same extended persistence context).
>
> The SFSBs themselves, can be anywhere but the extended persistence
> context, needs to stay with the SFSBs that inherit it.
>
> Maybe there is another way to tackle this that I'm not seeing but I
> wanted to mention these details to whomever is following this thread.
BTW, is there any spec requirement that prohibits concurrent access to
an XPC?
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat
More information about the jboss-as7-dev
mailing list