public static void staticHandleControlMessage ( ControlMessage cMsg ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "staticHandleControlMessage" , new Object [ ] { cMsg } ) ; ControlMessageType type = cMsg . getControlMessageType ( ) ; if ( ( type == ControlMessageType . NOTFLUSHED ) || ( type == ControlMessageType . CARDINALITYINFO ) || ( type == ControlMessageType . DURABLECONFIRM ) ) { // See if the request ID is pending and wakeup the waiter long reqID = 0 ; if ( cMsg instanceof ControlNotFlushed ) reqID = ( ( ControlNotFlushed ) cMsg ) . getRequestID ( ) ; else if ( cMsg instanceof ControlCardinalityInfo ) reqID = ( ( ControlCardinalityInfo ) cMsg ) . getRequestID ( ) ; else if ( cMsg instanceof ControlDurableConfirm ) reqID = ( ( ControlDurableConfirm ) cMsg ) . getRequestID ( ) ; // Now wakeup any waiters. If this is a stale reply, then it's ignored. wakeupWaiter ( reqID , cMsg ) ; } else { // unknown type, log error SIErrorException e = new SIErrorException ( nls . getFormattedMessage ( "INTERNAL_MESSAGING_ERROR_CWSIP0001" , new Object [ ] { "com.ibm.ws.sib.processor.impl.DurableInputHandler" , "1:245:1.52.1.1" } , null ) ) ; // FFDC FFDCFilter . processException ( e , "com.ibm.ws.sib.processor.impl.DurableInputHandler.staticHandleControlMessage" , "1:252:1.52.1.1" , DurableInputHandler . class ) ; SibTr . error ( tc , "INTERNAL_MESSAGING_ERROR_CWSIP0001" , new Object [ ] { "com.ibm.ws.sib.processor.impl.DurableInputHandler" , "1:258:1.52.1.1" } ) ; SibTr . exception ( tc , e ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "staticHandleControlMessage" ) ; }
This is the only message handling method which should be invoked on the DurableInputHandler . This method will receive control messages giving the status of durable subcription creation or deletion as well as stream creation requests .