@ Override final public void destroy ( ) throws ResourceException { if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . entry ( this , TRACE , "destroy" ) ; } // Invalidate all of the sessions for ( final Iterator iterator = _sessions . iterator ( ) ; iterator . hasNext ( ) ; ) { final Object object = iterator . next ( ) ; if ( object instanceof JmsJcaSessionImpl ) { final JmsJcaSessionImpl session = ( JmsJcaSessionImpl ) object ; session . invalidate ( ) ; } } // Empty the set _sessions . clear ( ) ; try { // Deregister the connection listener _coreConnection . removeConnectionListener ( _connectionListener ) ; // Close the core connection // when destroy calls close connections then connection cannot be reset for future usage so force close by passing boolean true. - PM39926 _coreConnection . close ( true ) ; } catch ( final SIConnectionLostException exception ) { // No FFDC code needed // d352473 // We are remote to the ME and the ME connection has been lost // we shall surpress this exception as we want the destroy to complete } catch ( final SIConnectionDroppedException exception ) { // No FFDC code needed // d352473 // We are remote to the ME and the ME connection has been dropped // we shall surpress this exception as we want the destroy to complete } catch ( final SIException exception ) { FFDCFilter . processException ( exception , CLASS_NAME + "destroy" , "1:408:1.91" , this ) ; throw new ResourceException ( NLS . getFormattedMessage ( "EXCEPTION_RECEIVED_CWSJR1110" , new Object [ ] { exception , "createManagedConnection" } , null ) , exception ) ; } catch ( final SIErrorException exception ) { FFDCFilter . processException ( exception , CLASS_NAME + "destroy" , "1:416:1.91" , this ) ; throw new ResourceException ( NLS . getFormattedMessage ( "EXCEPTION_RECEIVED_CWSJR1110" , new Object [ ] { exception , "createManagedConnection" } , null ) , exception ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . exit ( this , TRACE , "destroy" ) ; } }
Destroys this managed connection . Called when a connection error has occurred or the managed connection has timed out in the free pool . Marks any associated sessions as invalid . Closes the associated core connection .