I just wanted to update this forum in case someone else comes across it... GlassFish IS handling transaction roll-back CORRECTLY, which shouldn't be a surprise to anyone, as that is such a fundamental JEE App Server requirement.
My problem is due to the MySQL JDBC driver I am using. I encountered the problem with both the 3.1.x and 5.0.x versions, against an up-to-date mysql 5 db on linux. Using SQuirrel SQL, a JDBC SQL client, I discovered that the driver is committing every statement, regardless of the JDBC transaction settings. If only the JDBC driver for mysql was as good as the DB...
[Message sent by forum member 'bhar99328' (bhar99328)]
http://forums.java.net/jive/thread.jspa?messageID=217691