Repost: I'm pretty sure I just tracked down a serious bug in transactions with an Oracle database (I'm running 8.1.7 with the 8.1.7 jdbc drivers (also tested the 9i drivers), and can duplicate the problem both with thin and oci) on Orion 1.5.2 and Orion 1.5.3.
Background: I have a stateless session bean that has a method with trans-attribute of Required that looks up 2 entity beans and updates them. The trans-attribute of all methods in the entity beans is Mandatory. If the second update fails, then the first update appears to have not committed. Now the sticker, when I shutdown Orion (both through ctrl-c and admin.jar) the first update is committed to the database. Furthermore, I changed my session bean to stateful and implemented the SessionSynchronization interface and found out that it's hanging after the beforeCompletion() method is called (it never calls the afterCompletion()). I simplified my test case by moving the entity bean updates to be inside a UserTransaction in a jsp page. The first update still commits when the server is shut down. I'm going to post this on OTN as well, but I just thought you guys would like to know. If you see a hole in any of my code, please let me know. Attached is the test cases I detailed above. I included the server config files. I used the same exact test cases on a postgresql database and all worked fine. I'd actually really like to be proven wrong on this one, as it's a serious problem. The test case has an ant script, the only thing you need to do to get the compile to work is copy j2ee.jar into WEB-INF/compile-lib A database script for Oracle is in WEB-INF/dbscripts Jeff Hubbach.
test.tar.gz
Description: GNU Zip compressed data