Hi,

I have a couple of SFSB:


  | 
  | @Stateful
  | @Name("A")
  | @Scope(ScopeType.CONVERSATION)
  | @Transactional
  | public class ABean implements Serializable, A
  | {
  |    @PersistenceContext(type = PersistenceContextType.EXTENDED)
  |    private EntityManager                            em;
  | 
  |    @End(beforeRedirect=true)
  |    @Rollback
  |    public String cancel()
  |    {
  |       return "/AList.xhtml";
  |    }
  | 
  |    
  |    @Begin(nested=true)
  |    public String initCreate()
  |    {
  |       ....
  | 
  |       return "/A.xhtml";
  |    }
  | 
  |    @End(beforeRedirect=true)
  |    public String initCreate()
  |    {
  |       ....
  | 
  |       return "/ListA.xhtml";
  |    }
  | }
  | 
  | @Stateful
  | @Name("B")
  | @Scope(ScopeType.CONVERSATION)
  | @Transactional
  | public class BBean implements Serializable, B
  | {
  |    @PersistenceContext(type = PersistenceContextType.EXTENDED)
  |    private EntityManager                            em;
  | 
  |    @End(beforeRedirect=true)
  |    @Rollback
  |    public String cancel()
  |    {
  |       return "/BList.xhtml";
  |    }
  | 
  |    
  |    @Begin(nested=true)
  |    public String initCreate()
  |    {
  |       ....
  | 
  |       return "/B.xhtml";
  |    }
  | 
  |    @End(beforeRedirect=true)
  |    public String initCreate()
  |    {
  |       ....
  | 
  |       return "/ListB.xhtml";
  |    }
  | }
  | 
  | 

I do the following actions:

1) I call a.initCreate();  (a is an instance of A, a long running conversation 
is still active before this call, say #1)
1.a) The page A.xhtml is shown
1.b) a new nested conversation is created, say #2

2) from inside the A page I call b.initCreate() (it is opened in a popup)
2.a) The page B.xhtml is shown
2.b) a new nested conversation is created, say #3

3) from inside the B page I call b.processCreate
3.a) conversation #3 is closed
3.b) a new B object is create and stored into the database

4) from inside the A page I call a.cancell
4.a) conversation #2 is rolled back
4.b) no new a object is create but the b object is present into the database

>From this behavior I presume that the parent conversation and the nested 
>conversation have two different database transaction and  that the transaction 
>related to the nested conversation is always committed on nested conversation 
>closure even thought the parent conversation (and the related database 
>transaction) could be rolled back.

Am I right ? 

Can I change this behavior in some way ?  

I wonder why the nested conversation doesn't nest the database transaction too.

Thank you to everybody for his help.

Regards 

Fab.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4042118#4042118

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4042118
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to