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