private void emergencyClose ( ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "emergencyClose" ) ; try { if ( coreConsumerSession != null ) coreConsumerSession . close ( ) ; } catch ( SIException e ) { // No FFDC code needed // d238447 FFDC review - ok FFDCFilter . processException ( e , "com.ibm.ws.sib.api.jms.impl.JmsMsgConsumerImpl" , "emergencyClose#1" , this ) ; } finally { // d245254 - set the consumer session to null so that subsequent stop/close calls // don't generate exceptions. coreConsumerSession = null ; // set the closed flag so that the majority of methods calls will generate an appopriate exception // Note that this is not synchronized on the closeLock as we don't want to risk this blocking. closed = true ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "emergencyClose" ) ; }
Provides a minimalist abrupt shutdown of the consumer . This method is used from the async delivery code and its primary purpose is to prevent further message loss in the face of unrecoverable errors during message delivery .