private void CleanupCompletedJob(TransactionalRequestJob requestJob, RequestJobProvider rjProvider) { DateTime t = requestJob.TimeTracker.GetTimestamp(RequestJobTimestamp.DoNotPickUntil) ?? DateTime.MaxValue; if (DateTime.UtcNow < t) { return; } MrsTracer.Service.Debug("Cleaning up expired completed job '{0}' on queue '{1}'", new object[] { requestJob, this.RequestQueueGuid }); rjProvider.Delete(requestJob); CommonUtils.CatchKnownExceptions(delegate { ReportData reportData = new ReportData(requestJob.IdentifyingGuid, requestJob.ReportVersion); reportData.Delete(rjProvider.SystemMailbox); }, null); CommonUtils.CatchKnownExceptions(delegate { rjProvider.DeleteIndexEntries(requestJob); }, null); requestJob.RemoveAsyncNotification(); MailboxReplicationService.LogEvent(MRSEventLogConstants.Tuple_RemovedCompletedRequest, new object[] { requestJob.ToString(), this.RequestGuid.ToString(), requestJob.WorkItemQueueMdbName }); }