Does a BMT stateless bean's ejbCreate comes under unspecified transaction context? Pg 228 HFE says that from an ejbCreate method "one cannot get a transaction reference and call methods on it (BMT Beans)". although the former part is wrong coz we can obtain a transaction reference from the method (EJB Spec pg 90 table 3). So if it really runs in "unspecified transaction" then why is it not mentioned in 499? Or is it that "Unspecified Transaction" applies only for CMT beans?
I suppose that you can call getUserTransaction() within ejbCreate()-method of stateless session bean with BMT, but it's not allowed (maybe throws an IllegalStateException?) to call any methods of it. Why? Because ejbCreate() is called by the container prior to putting the bean to the pool.
It is probably a misprint on page 228 in "head first ejb" book. Stateless BMT bean should be able to begin a new transaction in ejbCreate().
Joined: Feb 20, 2004
I tried to do it in WebSphere 5.1 and it did not allow me to call begin(): it throws NullPointerException in com.ibm.ejs.container.UserTransactionWrapper.begin(UserTransactionWrapper.java:185) But it works fine when I called getUserTransaction().getStatus(): it returned STATUS_NO_TRANSACTION.
Joined: Dec 25, 2002
So probably the Pg 228 bullet shud split it as two points . get a transaction reference . call methods on the retreived transaction reference