Which one of the following statements regarding the client view of exceptions received from an enterprise bean invocation is correct?
1. The client can safely continue the transaction by retrying the operation if an application exception is received. 2. The client can safely continue the transaction by retrying the operation if an application exception is received, but only after checking the transaction has not been marked for rollback. 3. The client can safely continue the transaction by retrying the operation if a non-application exception is received. 4. A local client cannot continue a transaction if javax.transaction.TransactionRolledbackLocalException is received. 5. A remote client cannot continue a transaction if javax.transaction.TransactionRolledbackException is received.
===== Which one of the following tags describe the bean provider's view of a relationship and consists of an optional description, and the name and the class type of a field in the source of a role of a relationship?
I think I came across these questions on the ejbcertificate and here are the answers with explanation.
Answer to Q1 ================= Answer 5 is correct. javax.transaction.TransactionRolledbackException indicates to a remote client that the transaction has definitely been marked for rollback. Therefore it is pointless for the client to continue with the transaction, as the transaction cannot be committed.
Answers 1 and 2 are incorrect. It is potentially dangerous retrying to continue with a transaction after receiving an application exception because it is not always possible to determine the state of the enterprise bean. For example, if the container started a transaction just before invoking an enterprise bean with container-managed transaction and the enterprise bean throws an application exception and does not mark the transaction for rollback, the container commits the transaction before re-throwing the application exception to the client. In this scenario, it is not possible for the client to continue with the transaction on receiving the application exception. I am not sure, I am not convinced with this argument
Answer to Q2 ============= The cmr-field element describes the bean provider's view of a relationship. It consists of an optional description, and the name and the class type of a field in the source of a role of a relationship. I am not sure about this either. Does spec say something like this?
The ejb-relation element describes a relationship between two entity beans with container-managed persistence. ....