In a BMP, if we throw an EJBException all the changes would be rolled
back by the container, right? Or do we have to write code to do that?

I was reading through your reply in the list  and I have a doubt
regarding something regarding transaction handling in BMP entity
beans. I am using the entity bean in a session bean and have two sql
statements and one entity update. If one of the sql statements fails
and the entity is updated , the changes are all rolled back, but in
the case of the entity failure to update, the sql statement changes
are not rolled back and I get an error saying

System/communication error: Transaction was rolled back: Error preparing bean in
stance: com.evermind.transaction.MarshallingXAException; nested exception is:
        com.evermind.transaction.MarshallingXAException

The entity bean is throwing an EJBException back to the Session bean, but the session 
bean does not catch
it and continues forward as if nothing happened.

The funny thing is that the queries are placed like this

sqlinsert 1.......
entitybean update....
sqlinsert 2.....

So the flow becomes

sqlinsert 1 happens then sqlinsert 2 and only in the end does the entity bean throw 
the exception

any idea why this happens?

Can anyone help me on this. The BMP entity has persistence

<persistence-type>Bean</persistence-type>

Thanks
Kind Regards
Aby


Reply via email to