[jboss-as7-dev] EJB passivation/activation, clustering and JPA extended persistence context handling...
Scott Marlow
smarlow at redhat.com
Fri Nov 11 22:32:16 EST 2011
A related question, I'm trying to get up to speed on what internal state
needs to be replicated, for SFSBs that reference extended persistence
context. This will help me review some clustering code that is coming
together in this area. I think we need to replicate the following but
want to see what else needs to be covered:
- The stateful session bean attributes as represented by the EJB container.
- The extended persistence context as represented by the JPA
container/subsystem.
- The JPA SFSBXPCMap which can map a SFSB to collection of extended
persistence contexts that directly referenced. Can also map a extended
persistence context to collection of SFSBs that reference it.
- The JPA interceptors associated with each stateful session bean, need
to be ready to fire after fail-over has occurred (e.g.
SFSBDestroyInterceptor needs to fire when SFSB @Destroy is invoked after
a fail-over).
- Are there other interceptors associated with the SFSB that also need
to be replicated?
- Any other state for stateful session beans that is held externally to
the SFSB instance?
- Which SFSB classes are to be replicated with the SFSB? The
StatefulSessionComponentInstance?
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).
Thanks for any answers, this will help me review the clustering code
like I said and also think about ways to support the extended
persistence context replication. These are some of the questions that I
am asking myself but wanted to open the process up for input from others
that probably know better. ;)
Scott
On 10/24/2011 10:47 AM, Brian Stansberry wrote:
> Throwing NotSerializableException instead of serializing means removing
> support for clustering SFSBs with an XPC. That IMHO would be a pretty
> major feature regression. I believe we have supported that since AS 4.2
> if not earlier.
>
> On 10/24/11 9:39 AM, Scott Marlow wrote:
>> Hi,
>>
>> I'm looking into handling serialization of the extended persistence
>> context (for both clustering and EJB3.1 passivation/activation).
>>
>> The (JPA subsystem) spi is still developing for this but if anyone has
>> feedback or wants to follow. A sketch for the spi is at
>> https://github.com/scottmarlow/jboss-as/blob/d7ec51ac14afb47ced7d203f8b3696c10221e9db/jpa/spi/src/main/java/org/jboss/as/jpa/spi/XPCSerializationController.java
>>
>> One question that comes up is why. Why not just throw
>> NotSerializableException instead of serializing the extended persistence
>> context. If anyone feels strongly that we should throw
>> NotSerializableException instead of serializing the extended persistence
>> context, I'd like to hear why.
>>
>> I've made internal changes on
>> https://github.com/scottmarlow/jboss-as/tree/cluster1 to support
>> clustering extended persistence contexts. Next is to do the actual
>> serialization.
>>
>> Scott
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
>
More information about the jboss-as7-dev
mailing list