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

Configuration:
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.

<<RollbackTestCase.zip>>
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
<http://www.sis-group.com/>


Attachment: RollbackTestCase.zip
Description: Binary data

Reply via email to