The log file that describes the rollover process so if the service crashes during the rollover process, it can properly be recovered from.
Example #1
0
 /// <summary>
 /// Creates a stage writer.
 /// </summary>
 /// <param name="settings">the settings for this stage</param>
 /// <param name="archiveList">the archive list</param>
 /// <param name="rolloverLog">the rollover log</param>
 public CombineFiles(CombineFilesSettings settings, ArchiveList <TKey, TValue> archiveList, RolloverLog rolloverLog)
     : base(MessageClass.Framework)
 {
     m_settings = settings.CloneReadonly();
     m_settings.Validate();
     m_archiveList                      = archiveList;
     m_createNextStageFile              = new SimplifiedArchiveInitializer <TKey, TValue>(settings.ArchiveSettings);
     m_rolloverLog                      = rolloverLog;
     m_rolloverComplete                 = new ManualResetEvent(false);
     m_syncRoot                         = new object();
     m_rolloverTask                     = new ScheduledTask(ThreadingMode.DedicatedForeground, ThreadPriority.BelowNormal);
     m_rolloverTask.Running            += OnExecute;
     m_rolloverTask.UnhandledException += OnException;
     m_rolloverTask.Start(m_settings.ExecuteTimer);
 }
Example #2
0
        /// <summary>
        /// Creates a <see cref="WriteProcessor{TKey,TValue}"/>.
        /// </summary>
        /// <param name="list">the master list of archive files</param>
        /// <param name="settings">the settings</param>
        /// <param name="rolloverLog">the rollover log value</param>
        public WriteProcessor(ArchiveList <TKey, TValue> list, WriteProcessorSettings settings, RolloverLog rolloverLog)
            : base(MessageClass.Framework)
        {
            m_settings = settings.CloneReadonly();
            m_settings.Validate();

            m_stagingRollovers   = new List <CombineFiles <TKey, TValue> >();
            m_firstStageWriter   = new FirstStageWriter <TKey, TValue>(settings.FirstStageWriter, list);
            m_isMemoryOnly       = false;
            m_prebuffer          = new PrebufferWriter <TKey, TValue>(settings.PrebufferWriter, m_firstStageWriter.AppendData);
            m_transactionTracker = new TransactionTracker <TKey, TValue>(m_prebuffer, m_firstStageWriter);
            foreach (CombineFilesSettings rollover in settings.StagingRollovers)
            {
                m_stagingRollovers.Add(new CombineFiles <TKey, TValue>(rollover, list, rolloverLog));
            }
        }