public void destroy ( ) throws ResourceException { if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . entry ( this , TRACE , "destroy" ) ; } // In the event of an error the connection manager may call destroy // without calling cleanup. We need to do the cleanup logic without // calling cleanup as we could throw an exception from cleanup. // Invalidate any currently associated connections for ( Iterator iterator = _connections . iterator ( ) ; iterator . hasNext ( ) ; ) { final SibRaConnection connection = ( SibRaConnection ) iterator . next ( ) ; connection . invalidate ( ) ; } try { // 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 ( SIException exception ) { FFDCFilter . processException ( exception , "com.ibm.ws.sib.ra.impl.SibRaManagedConnection.destroy" , FFDC_PROBE_2 , this ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEventEnabled ( ) ) { SibTr . exception ( this , TRACE , exception ) ; } throw new ResourceException ( NLS . getFormattedMessage ( "CONNECTION_CLOSE_CWSIV0402" , new Object [ ] { exception } , null ) , exception ) ; } catch ( SIErrorException exception ) { FFDCFilter . processException ( exception , "com.ibm.ws.sib.ra.impl.SibRaManagedConnection.destroy" , FFDC_PROBE_8 , this ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEventEnabled ( ) ) { SibTr . exception ( this , TRACE , exception ) ; } throw new ResourceException ( NLS . getFormattedMessage ( "CONNECTION_CLOSE_CWSIV0402" , new Object [ ] { exception } , null ) , exception ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && TRACE . isEntryEnabled ( ) ) { SibTr . exit ( this , TRACE , "destroy" ) ; } }
Destroys this managed connection . Invalidates any current connection handles and closes the core SPI connection .