The code related to this in 3.x and 2.x is pretty much completely unrelated.
You also don't give any indication of what you want to have happen. IMO doing DDL and DML in the same transaction is asking for big trouble. I don't see why it is a problem that Oracle commits work if you start doing DDL.
If you realy want to try something else, you could try putting the DDL in another session bean that you call with tx Requires new or none.
DDLs (Data Definition Languages) should not be used inside Transactions. On popular RDBMSes, firing a DDL results in an implicit commit which will terminate any on-going user transaction.