If it's an exception from which the ejb cannot recover,
you should wrap the exception in a RuntimeException (usually an EJBException) and throw it.
With a RT exception (or a system exception) as it is called,
1. Associated transactions are automatically rolled back.
2. The bean is cleaned up (ejbRemove() will be called on the bean).
ram.