Hello...
I'm using
JBoss 3.2.3, and encountering strange behavior involving the interaction between two EJB2.x entity beans and two session beans - it seems to be violating transactional integrity and not meeting
EJB specs. Perhaps someone can point out where I'm going wrong?
Let's call the four beans Session1, Sesson2, Cmp1, and Cmp2. Here are the interactions:
Method2() and Method3() have transaction semantics of "Requires", Method4() is "NotSupported".
So here's the deal... after the transaction fails and rolls back, the changes made before the call to Method3() remain. They were apparently committed when Method4() was called. This was confirmed by querying the database from a client outside of JBoss while I single-stepped through the EJB code - the changes appeared in the database, in the middle of the transaction, immediately after Method4() returned.
What is Method4()? A finder on an entity's home interface, defined entirely by a line of HQL in an ejb xdoclet tag. Yet calling that finder appears to commit all work done to that point in the transaction.
This is so blatantly weird that I figure I must be making some fundamental error. Anyone recognize what that error might be?