public void close ( int requestNumber ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "close" , requestNumber ) ; // Deregister any error callback created for this connection. if ( asynchReader != null ) { try { mainConsumer . getConsumerSession ( ) . getConnection ( ) . removeConnectionListener ( asynchReader ) ; } catch ( SIException e ) { //No FFDC code needed //Only FFDC if we haven't received a meTerminated event. if ( ! ( ( ConversationState ) getConversation ( ) . getAttachment ( ) ) . hasMETerminated ( ) ) { FFDCFilter . processException ( e , CLASS_NAME + ".close" , CommsConstants . CATSESSSYNCHCONSUMER_CLOSE_01 , this ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEventEnabled ( ) ) SibTr . exception ( this , tc , e ) ; } if ( asynchReader . isCurrentlyDoingReceiveWithWait ( ) ) asynchReader . sendNoMessageToClient ( ) ; } super . close ( requestNumber ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "close" ) ; }
Closes the session . If we are currently doing a receiveWithWait then that will be interrupted and a response will be sent to the client .