Im using softSCBCD simulator to study... and I ran across this question
A message-driven bean ProcessOrderBean with container-managed transaction demarcation has the 'Required' transaction attribute specified for its onMessage(javax.jms.Message) method.
If the invocation of onMessage method on ProcessOrderBean instance always results in transition of the bean instance to 'does not exist' state, then which of the following methods might have been invoked from onMessage(javax.jms.Message) method (select the best answer):
A.javax.ejb.EJBContext's setRollbackOnly()
B.javax.ejb.EJBContext's getCallerIdentity()
C.javax.ejb.EJBContext's getRollbackOnly()
D.javax.ejb.MessageDrivenBean's ejbRemove()
Now I chose D ... their answer is B. I see what they are trying to say. Their argument has to do with B causing a system exception resulting in Does not Exist. My question's are,
1.Is there even a getCallerIdentity function in EJBContext? (I didn't see it on the Interface summary at the back of the HF:
EJB book, saw getCallerPrincipal but that's not what they wrote, infact they say getCallerPrincipal is another way as well as getEJBLocalHome() and getEJBHome() to throw a system exception.)
2.Wont ejbRemove in javax.ejb.MessageDrivenBean result in a transition from ready to Does Not Exist. Their question mentions nothing about exceptions so I assume D is a better answer than B.
Does it have something to do with the fact that 'invocation of onMessage method on ProcessOrderBean instance always results in transition of the bean instance to 'does not exist' state' is that akin to saying they're throwing a system level exception? As opposed to the container running ejbRemove. Hmmm I may have just answered my own question in writing this post... But I put so much work into it I'll post it anyway just to get some feedback :roll: Thx all
-Bobby