if a CMT bean calls getUserTransaction() method on its context , EJB Specification says that it throws IllegalStateException , which is a RunTimeException . So , if the client is remote , will that throw a RemoteException or not!! looks strange.. because , if it is a runtimeexception , it will be thrown as a remoteexception (for remote clients). But the specification seems to say that it will throw IllegalStateException only . Please Clarify ...I havent been getting answer for this q .. tahts why i am posting as a new one...
When a CMT bean calls getUserTransaction() method on its context, the CMT bean will receive illegalStateException thrown by the Container. According to EJB 2.0 spec 18.2.2
If the bean method encounters a RuntimeException or error, it should simply propagate the error from the bean method to the Container (i.e., the bean method does not have to catch the exception).
So the bean propagates the illegalStateException to the Container. The Container will throw either TransactionRolledBack(Local)Exception or RemoteException/EJBException to the client based on the rule EJB 2.0 spec 18.3 Table 15. Refer to EJB 2.0 spec 18.4.2 and take a look at some of the system applications received by the client Hope it'll help Joyce