public void restoreValue ( SIMPMessage m ) throws SIResourceException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "restoreValue" , m ) ; TickRange tr = null ; long msgStoreId = AbstractItem . NO_ID ; try { if ( m . isInStore ( ) ) msgStoreId = m . getID ( ) ; } catch ( MessageStoreException e ) { // FFDC FFDCFilter . processException ( e , "com.ibm.ws.sib.processor.gd.SourceStream.restoreValue" , "1:1484:1.138" , this ) ; SibTr . exception ( tc , e ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "restoreValue" , e ) ; throw new SIResourceException ( e ) ; } JsMessage jsMsg = m . getMessage ( ) ; long stamp = jsMsg . getGuaranteedValueValueTick ( ) ; long starts = jsMsg . getGuaranteedValueStartTick ( ) ; long ends = jsMsg . getGuaranteedValueEndTick ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { SibTr . debug ( tc , "restoreValue at: " + stamp + " with Silence from: " + starts + " to " + ends + " on Stream " + stream ) ; } synchronized ( this ) { // Now update Value tick to indicate it is now committed tr = TickRange . newValueTick ( stamp , null , msgStoreId ) ; tr . startstamp = starts ; tr . endstamp = ends ; oststream . writeCombinedRange ( tr ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "restoreValue" ) ; }
This method uses a Value message to write a Value tick into the stream . It is called at retore time .