Hi Ashwani, If a runtime exception like a null pointer exception or a array index out of bounds exception is raised then the transaction is automatically for rollback If a user-defined exception is raised then u will have to set the transaction for rollback as per the desired condition. You can the set the transaction for rollback and not raise a exception
Warm Regards Amit Kharadkar CashTech Solutions Pvt. Ltd., Pride Parmar Galaxy, Sadhu Vaswani Chowk, Pune 411009 Tel. 91 20 56052000 (ext. 2165) -----Original Message----- From: A mailing list for Enterprise JavaBeans development [mailto:[EMAIL PROTECTED] Behalf Of Kalra, Ashwani Sent: Monday, March 21, 2005 2:16 PM To: EJB-INTEREST@JAVA.SUN.COM Subject: Re: EJBException and setRollBackOnly >I have a container managed session bean which calls DAO, and I was wondering why we have to setRollBackOnly once we catch >the exception and then throw EJBException. This is what I read from specs 2.1 relevant to your question. It explains why you need to call setRollBackOnly. " When a client executing in a transaction context receives a RemoteException or an EJBException from an enterprise bean invocation, the client may use either of the following strategies to deal with the exception: * Discontinue the transaction. If the client is the transaction originator, it may simply rollback its transaction. If the client is not the transaction originator, it can mark the transaction for rollback or perform an action that will cause a rollback. For example, if the client is an enterprise bean, the enterprise bean may throw a RuntimeException which will cause the container to rollback the transaction. * Continue the transaction. The client may perform additional operations on the same or other enterprise beans, and eventually attempt to commit the transaction. If the transaction was marked for rollback at the time the RemoteException or EJBException was thrown to the client, the commit will fail." >Can I just do setRollBackOnly and not throw EJBException? Will it still roll back the transaction? Or it won't happen until >the container catches EJBException. No, Client , or container will get the indication only if you throw appropriate exceptions. Thank you very much for any help. /Ashwani -----Original Message----- From: A mailing list for Enterprise JavaBeans development [mailto:[EMAIL PROTECTED] Behalf Of Lee, Howard Sent: Saturday, March 19, 2005 3:40 AM To: EJB-INTEREST@JAVA.SUN.COM Subject: EJBException and setRollBackOnly Hi, I have a container managed session bean which calls DAO, and I was wondering why we have to setRollBackOnly once we catch the exception and then throw EJBException. Can I just do setRollBackOnly and not throw EJBException? Will it still roll back the transaction? Or it won't happen until the container catches EJBException. Thank you very much for any help. ********************************************************************** E-mail sent through the Internet is not secure. Western Asset therefore recommends that you do not send any confidential or sensitive information to us via electronic mail, including social security numbers, account numbers, or personal identification numbers. Delivery, and or timely delivery of Internet mail is not guaranteed. Western Asset therefore recommends that you do not send time sensitive or action-oriented messages to us via electronic mail. ********************************************************************** =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help". This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message. =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".