Exception Listeners

Many messaging applications include consumers who receive messages and perform work but never send any JMS messages. Because these clients are only active when a message is delivered, there is no means to notify them when their JMS Server has failed. JMS provides the ExceptionListener facility to deliver these out-of-band exceptions to clients.

A JMS ExceptionListener asynchronously receives connection error exceptions. ExceptionListener only receives exceptions that cannot be thrown to a method call. For instance, a send call on a broken connection will receive a JMSException, but this exception will not be transmitted to the ExceptionListener.

ExceptionListeners implement javax.jms.ExceptionListener that contains the onException(JMSException) method. When an out-of-band exception occurs, the ExceptionListener's onException method receives the raised exception. ExceptionListeners are not written to be thread-safe or reentrant. A new exception will not be delivered until the ExceptionListener's onException method has returned.

public class MyExceptionListener
  implements javax.jms.ExceptionListener
{
  public void onException(javax.jms.JMSException e) {

    ... //handle exception
  }
}

A client registers an ExceptionListener on the JMS connection with the setExceptionListener(ExceptionListener) method.

qConnection.setExceptionListener(new MyExceptionListener());

WebLogic's JMS implementation also enables the ExceptionListener to be registered with the entire JMS session by using WLSession's setExceptionListener(ExceptionListener) method.

import weblogic.jms.extensions.WLSession;

WLSession wlSession = (WLSession) session;

wlSession.setExceptionListener(new ExceptionListener());

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.21.190