public void sendAckExpectedMessage ( long ackExpStamp , int priority , Reliability reliability , SIBUuid12 stream ) // not used for ptp throws SIResourceException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "sendAckExpectedMessage" , new Object [ ] { new Long ( ackExpStamp ) , new Integer ( priority ) , reliability } ) ; if ( routingMEUuid != null ) { ControlAckExpected ackexpMsg ; try { ackexpMsg = cmf . createNewControlAckExpected ( ) ; } catch ( Exception e ) { // FFDC FFDCFilter . processException ( e , "com.ibm.ws.sib.processor.impl.PtoPOutputHandler.sendAckExpectedMessage" , "1:733:1.241" , this ) ; SibTr . exception ( tc , e ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "sendAckExpectedMessage" , e ) ; SibTr . error ( tc , "INTERNAL_MESSAGING_ERROR_CWSIP0002" , new Object [ ] { "com.ibm.ws.sib.processor.impl.PtoPOutputHandler" , "1:744:1.241" , e } ) ; throw new SIResourceException ( nls . getFormattedMessage ( "INTERNAL_MESSAGING_ERROR_CWSIP0002" , new Object [ ] { "com.ibm.ws.sib.processor.impl.PtoPOutputHandler" , "1:752:1.241" , e } , null ) , e ) ; } // As we are using the Guaranteed Header - set all the attributes as // well as the ones we want. SIMPUtils . setGuaranteedDeliveryProperties ( ackexpMsg , messageProcessor . getMessagingEngineUuid ( ) , targetMEUuid , stream , null , destinationHandler . getUuid ( ) , ProtocolType . UNICASTINPUT , GDConfig . PROTOCOL_VERSION ) ; ackexpMsg . setTick ( ackExpStamp ) ; ackexpMsg . setPriority ( priority ) ; ackexpMsg . setReliability ( reliability ) ; // SIB0105 // Update the health state of this stream SourceStream sourceStream = ( SourceStream ) sourceStreamManager . getStreamSet ( ) . getStream ( priority , reliability ) ; if ( sourceStream != null ) { sourceStream . setLatestAckExpected ( ackExpStamp ) ; sourceStream . getControlAdapter ( ) . getHealthState ( ) . updateHealth ( HealthStateListener . ACK_EXPECTED_STATE , HealthState . AMBER ) ; } // If the destination in a Link add Link specific properties to message if ( isLink ) { ackexpMsg = ( ControlAckExpected ) addLinkProps ( ackexpMsg ) ; } // If the destination is system or temporary then the // routingDestination into th message if ( this . isSystemOrTemp ) { ackexpMsg . setRoutingDestination ( routingDestination ) ; } // Send ackExpected message to destination // Using MPIO mpio . sendToMe ( routingMEUuid , priority , ackexpMsg ) ; } else { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Unable to send AckExpected as Link not started" ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "sendAckExpectedMessage" ) ; }
sendAckExpectedMessage is called from SourceStream timer alarm