Title: No rollback in case of exception in ejbStore()

Orion 1.5.2/1.5.4, Oracle 9i
1 SFSB and 2 EB, transactional attributes = "Required" for all beans.
Transaction is initiated by call of SFSB method updateRow(). SFSB calls 2 EB setName() methods. SFSB implements SessionSynchronization interface.
If in ejbStore() of any EB exception happens (for example throw new EJBException() or division by zero) the following happens:

- client receive the following: "com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: Error preparing bean instance: com.evermind.transaction.MarshallingXAExceptionm ..."
- transaction is commited !!! - checked directly in database and via afterCommit() callback.
- transaction is repeated 4 times (!) just as it was rollbacked

When such exception happens in business methods or ejbLoad() transaction is correctly rollbacked.
Test case is enclosed.

Note, only that table was updated that corresponds to EB whose ejbStore() did not experience exception, in other words transaction atomicity is corrupted.

I would appreciate any help or ideas. And you may check your code - probably the same problem is sleeping there.

ITC-M, SIS Company
Mr. Valeri Kireitchik
Head of Application Software Department

Fujitsu Siemens Computers Qualified Partner
Microsoft Certified Partner
Oracle Partner Program Member

Surganova 24-406
220012 Minsk
Republic of Belarus
ph.: +375 (17) 262 50 23
fax: +375 (17) 262 55 91

Attachment: RollbackTestCase.zip
Description: Binary data

Reply via email to