private void eventMessageExpiryNotification ( SIMPMessage msg , TransactionCommon tran ) throws SIResourceException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "eventMessageExpiryNotification" , new Object [ ] { msg , tran } ) ; // If a ReportHandler object has not been created yet, then do so. if ( _reportHandler == null ) _reportHandler = new ReportHandler ( messageProcessor ) ; // Generate and send the report under the same transaction as the delete try { _reportHandler . handleMessage ( msg , tran , SIApiConstants . REPORT_EXPIRY ) ; } catch ( SIException e ) { FFDCFilter . processException ( e , "com.ibm.ws.sib.processor.impl.BaseDestinationHandler.eventMessageExpiryNotification" , "1:3778:1.700.3.45" , this ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "eventMessageExpiryNotification" , "SIResourceException" ) ; throw new SIResourceException ( nls . getFormattedMessage ( "REPORT_MESSAGE_ERROR_CWSIP0422" , new Object [ ] { messageProcessor . getMessagingEngineName ( ) , e } , null ) , e ) ; } /** * 463584 * If this message has been restored from msgstore but this destination has been recreated * in admin thus a different destination uuid and diferent BDH instance the stats object will be null. * It only gets initialized during the create/updateLocalisations call. This call will never happen * on this BDH. * Therefore... If a destination has been recreated, the stats on expiry will no longer be valid. */ if ( _protoRealization != null ) _protoRealization . onExpiryReport ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "eventMessageExpiryNotification" ) ; }
This is a callback required for expiry notification . For example we generate a report message here if expiry reports are requested .