hi, Johny.
This not my material, this was taken from
EJB spec.
My understanding of this excerpt is :
1. If you do anything with DB from bean's method - you *must* be in transaction context (somebody has to start transaction before you do anything with DB Connection, for example). Because in case method fails to commit, all your changes of DB should be rolled back as well.
2. About state access. If Bean is not in transaction, it's prohibited to call context.getRollbackOnly() or context.setRollbackOnly, because this makes no sense and will throw an exception -> bean will be removed by container. That's why you must be sure that bean' method is running in transaction, if you call any transaction-related method from EJB's context.
.... and that's why "Supports" transaction attribute can be a REAL PAIN, because there is no way to know for sure in which state (Tx or no Tx) method is running....
Cheers!