On Frits' notes, p.37, for container managed transaction,
it is not allowed to use Message.acknowledge() either within a transaction or within an unspecified transaction context.
Question 1: 'either within a transaction or within an unspecified transaction context' means regardless the bean is executing a transaction or not, the bean should never invoke Message.acknowledge() method in onMessage(), lifecycle callback interceptors, timer callback interceptors, business method interceptors or inside business methods?
Question 2: MDB should not invoke Message.acknowledge() because the
EJB container will acknowledge the receipt of the message to the messaging provider. In the other words, the container will acknowledge the message on behalf of the MDB. Is this the reason why Message.acknowledge() is not allowed in MDB?