Exforsys.com
 

Sponsored Links

 

SCBCD Tutorials

 
Home Certification SCBCD
 

SCBCD Study Notes : Chapter 12 : Exceptions (Part 2)

 

SCBCD Study Notes : Chapter 12 : Exceptions (Part 2)

Please find the Study Notes and resources which covers 2nd Part of Chapter 12 : Exceptions, as part of the Sun Certified Business Component Developer exam CX-310-090.


Identify correct and incorrect statements or examples about application exceptions and system exceptions in entity beans, session beans, and message-driven beans.



Chapter 12 : Exceptions

Identify correct and incorrect statements or examples about application exceptions and system exceptions in entity beans, session beans, and message-driven beans.

Table 12.1. Handling of exceptions thrown by a business method of a bean with container-managed transaction demarcation (CMT)


Method condition : Bean method runs in the context of the caller's transaction. This case may happen with Required, Mandatory, and Supports attributes.


Method exception


Container's action


Client's view


APPLICATION exception


re-throw APPLICATION exception


Receives APPLICATION exception. Can attempt to continue computation in the transaction, and eventually commit the transaction (the commit would fail if the instance called setRollbackOnly()).


SYSTEM exception


1. LOG the exception or error (to notify SYSTEM Administrator).
2. MARK the transaction for rollback.
3. DISCARD the instance.
4. Throw javax.transaction. TransactionRolledbackException to REMOTE client; throw javax.ejb. TransactionRolledbackLocalException to LOCAL client.


Receives javax.transaction. TransactionRolledbackException or javax.ejb. TransactionRolledbackLocalException Continuing transaction is fruitless.



Method condition : Bean method runs in the context of a transaction that the Container started immediately before dispatching the business method. This case may happen with Required and RequiresNew attributes.


: Bean method runs in the context of a transaction that the Container started immediately before dispatching the business method. This case may happen with Required and RequiresNew attributes.

Method exception


Container's action


Client's view


APPLICATION exception


If the instance called setRollbackOnly(), then rollback the transaction, and re-throw APPLICATION exception. Otherwise, attempt to COMMIT the transaction, and then re-throw APPLICATION exception.


Receives APPLICATION exception. If the client executes in a transaction, the client's transaction is NOT marked for rollback, and client can continue its work.


SYSTEM exception

 



 


 


1. LOG the exception or error (to notify SYSTEM Administrator).
2. ROLLBACK the container-started transaction.
3. DISCARD the instance.
4. Throw RemoteException to REMOTE client; throw EJBException to LOCAL client.


Receives RemoteException or EJBException. If the client executes in a transaction, the client's transaction MAY or MAY NOT be marked for rollback.



Method condition : Bean method runs with an UNSPECIFIED transaction context. This case may happen with the NotSupported, Never, and Supports attributes.


Method exception


Container's action


Client's view


APPLICATION exception


re-throw APPLICATION exception


Receives APPLICATION exception. If the client executes in a transaction, the client's transaction is NOT marked for rollback, and client can continue its work.


SYSTEM exception


1. LOG the exception or error (to notify SYSTEM Administrator).
2. DISCARD the instance.
3. Throw RemoteException to REMOTE client; throw EJBException to LOCAL client.


Receives RemoteException or EJBException. If the client executes in a transaction, the client's transaction MAY or MAY NOT be marked for rollback.



Table 12.2. Handling of exceptions thrown by a business method of a session with bean-managed transaction demarcation (BMT)


Bean method condition : Bean is STATEFUL or STATLESS Session.


Method exception


Container's action


Client's view


APPLICATION exception


re-throw APPLICATION exception


Receives APPLICATION exception.


SYSTEM exception


1. LOG the exception or error (to notify SYSTEM Administrator). 2. MARK for rollback a Transaction that has been started, but not yet completed, by the instance.
3. DISCARD the instance.
4. Throw RemoteException to REMOTE client; throw EJBException to LOCAL client.


Receives RemoteException or EJBException.



Table 12.3. Handling of exceptions thrown by a method of a message-driven bean (MDB) with container-managed transaction demarcation (CMT).


Method condition : Bean method runs in the context of a transaction that the Container started immediately before dispatching the method. This case happens with Required attribute.


Method exception


Container's action


SYSTEM exception


        1. LOG the exception or error (to notify SYSTEM Administrator).
2. Rollback the container-started a transaction.
3. DISCARD the instance.



Method condition : Bean method runs with an UNSPECIFIED transaction context. This case happens with the NotSupported attribute.


Method exception


Container's action


SYSTEM exception


        1. LOG the exception or error (to notify SYSTEM Administrator).
2. DISCARD the instance.



Table 12.4. Handling of exceptions thrown by a method of a message-driven bean (MDB) with bean-managed transaction demarcation (BMT).


Bean Method condition : Bean is message-driven bean (MDB)


Bean Method exception


Container's action


SYSTEM exception


1. LOG the exception or error (to notify SYSTEM Administrator).
2. MARK for rollback a transaction that has been started, but not yet completed, by the instance.
3. DISCARD the instance.




If exception happens in callback method (EntityBean.ejbActivate(), EntityBean.ejbLoad(), EntityBean.ejbPassivate(), EntityBean.ejbStore(), EntityBean.setEntityContext(EntityContext), EntityBean.unsetEntityContext(), SessionBean.ejbActivate(), SessionBean.ejbPassivate(), SessionBean.setSessionContext(SessionContext), MessageDrivenBean.setMessageDrivenContext(MessageDrivenContext), SessionSynchronization.afterBegin(), SessionSynchronization.beforeCompletion(), and SessionSynchronization.afterCompletion(boolean)) the Container must handle all exception as follows:

1. LOG the exception or error to bring the problem to the attention of the System Administrator.
2. If the instance is in a transaction, mark the transaction for ROLLBACK.
3. DISCARD the instance.
4. If the exception or error happened during the processing of a client invoked method, throw the java.rmi.RemoteException to the client if the client is a REMOTE client or throw the javax.ejb.EJBException to the client if the client is a LOCAL client. If the instance executed IN the client's transaction, the Container should throw the javax.transaction.TransactionRolledbackException to a REMOTE client or the javax.ejb.TransactionRolledbackLocalException to a LOCAL client, because it provides more information to the client. (The client knows that it is fruitless to continue the transaction.)


If a client makes a call to a SESSION object that has been REMOVED, the Container should throw the java.rmi.NoSuchObjectException (which is a subclass of java.rmi.RemoteException) to a REMOTE client



, or the javax.ejb.NoSuchObjectLocalException to a local client.



________________
Author: Mikalai Zaikin. Please Click Here to visit Authors site for any updates and changes to the study notes.



Read Next: SCBCD Study Notes : Chapter 12 : Exceptions (Part 3)



 

 

Comments



Post Your Comment:

Members Please Login
Your Name:*
e-mail ID:(required for notification)*
Image Verification: 
 
 Subscribe    

Sponsored Links

 

Subscribe via RSS


Get Daily Updates via Subscribe to Exforsys Free Training via email


Get Latest Free Training Updates delivered directly to your Inbox...

Enter your email address:


 

Subscribe to Exforsys Free Training via RSS
 

 
Partners -  Privacy and Legal Policy -  Site News -  Contact   Sitemap  

Copyright © 2000 - 2010 exforsys.com. All Rights Reserved

Page copy protected against web site content infringement by Copyscape