public void stop ( int mode ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "stop" ) ; super . stop ( mode ) ; // Signal the MQLink component to stop try { if ( _mqLinkObject != null ) _mqLinkObject . stop ( ) ; } catch ( SIResourceException e ) { // No FFDC code needed SibTr . exception ( tc , e ) ; // The MQLink component will have FFDC'd we'll trace // the problem but allow processing to continue } catch ( SIException e ) { // No FFDC code needed SibTr . exception ( tc , e ) ; // The MQLink component will have FFDC'd we'll trace // the problem but allow processing to continue } _mqLinkManager . undefine ( getUuid ( ) ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "stop" ) ; }
This stop method overrides the stop method in BaseDestinationHandler and is driven when the ME is stopped . As well as performing the normal stop processing for the MQLink object it also ensures that the uuid of the the MQLink is undefined from the set managed by the TRM . Otherwise there is the potential to add the uuid of the same MQLink twice .