Exemple #1
0
        public override void Execute()
        {
            ExTraceGlobals.IncrementalReseederTracer.TraceDebug <Guid>((long)this.GetHashCode(), "SeedPageReaderRollLogFileRequest: databaseGuid ({0}).", base.DatabaseGuid);
            bool            flag            = false;
            ReplayStopwatch replayStopwatch = new ReplayStopwatch();

            try
            {
                SeederPageReaderServerContext seederPageReaderServerContext = base.Channel.GetSeederPageReaderServerContext(this.m_databaseName, this.m_databasePath);
                replayStopwatch.Start();
                seederPageReaderServerContext.DatabaseReader.ForceNewLog();
                SeedPageReaderRollLogFileReply seedPageReaderRollLogFileReply = new SeedPageReaderRollLogFileReply(base.Channel);
                ExTraceGlobals.IncrementalReseederTracer.TraceDebug <Guid>((long)this.GetHashCode(), "SeedPageReaderRollLogFileRequest. Sending the response for {0}.", base.DatabaseGuid);
                seedPageReaderRollLogFileReply.Send();
                flag = true;
            }
            catch (TransientException ex)
            {
                base.Channel.SendException(ex);
            }
            catch (IOException ex2)
            {
                base.Channel.SendException(ex2);
            }
            finally
            {
                ExTraceGlobals.IncrementalReseederTracer.TraceDebug <long, string>((long)this.GetHashCode(), "SeedPageReaderRollLogFile finished rolling a log file after {0} sec. Operation successful: {1}", replayStopwatch.ElapsedMilliseconds / 1000L, flag.ToString());
            }
        }
Exemple #2
0
        public override void Execute()
        {
            ExTraceGlobals.IncrementalReseederTracer.TraceDebug <Guid, uint>((long)this.GetHashCode(), "SeedPageReaderSinglePageRequest: databaseGuid ({0}), pageno ({1}).", base.DatabaseGuid, this.m_pageno);
            bool            flag            = false;
            ReplayStopwatch replayStopwatch = new ReplayStopwatch();

            try
            {
                SeederPageReaderServerContext seederPageReaderServerContext = base.Channel.GetSeederPageReaderServerContext(this.m_databaseName, this.m_databasePath);
                replayStopwatch.Start();
                ExTraceGlobals.IncrementalReseederTracer.TraceDebug <uint, Guid>((long)this.GetHashCode(), "SeedPageReaderSinglePageRequest. Reading page {0} from {1}.", this.m_pageno, base.DatabaseGuid);
                long   lowGeneration;
                long   highGeneration;
                byte[] pageBytes = seederPageReaderServerContext.DatabaseReader.ReadOnePage((long)((ulong)this.m_pageno), out lowGeneration, out highGeneration);
                SeedPageReaderSinglePageReply seedPageReaderSinglePageReply = new SeedPageReaderSinglePageReply(base.Channel);
                seedPageReaderSinglePageReply.PageNumber     = (long)((ulong)this.m_pageno);
                seedPageReaderSinglePageReply.LowGeneration  = lowGeneration;
                seedPageReaderSinglePageReply.HighGeneration = highGeneration;
                seedPageReaderSinglePageReply.PageBytes      = pageBytes;
                ExTraceGlobals.IncrementalReseederTracer.TraceDebug <Guid>((long)this.GetHashCode(), "SeedPageReaderSinglePageRequest. Sending the data for {0}.", base.DatabaseGuid);
                seedPageReaderSinglePageReply.Send();
                flag = true;
            }
            catch (TransientException ex)
            {
                base.Channel.SendException(ex);
            }
            catch (IOException ex2)
            {
                base.Channel.SendException(ex2);
            }
            finally
            {
                ExTraceGlobals.IncrementalReseederTracer.TraceDebug <uint, long, string>((long)this.GetHashCode(), "SeedPageReader finished reading and sending page {0} after {1} sec. Operation successful: {2}", this.m_pageno, replayStopwatch.ElapsedMilliseconds / 1000L, flag.ToString());
            }
        }
        // Token: 0x06000BB4 RID: 2996 RVA: 0x00034570 File Offset: 0x00032770
        public override void Execute()
        {
            SeedPageReaderMultiplePageRequest.Tracer.TraceDebug <Guid, long>((long)this.GetHashCode(), "SeedPageReaderMultiplePageRequest: databaseGuid ({0}), numPages ({1}).", base.DatabaseGuid, this.m_numPages);
            bool            flag            = false;
            ReplayStopwatch replayStopwatch = new ReplayStopwatch();
            Exception       ex = null;
            int             i  = (int)this.m_numPages;

            byte[] array = new byte[4];
            try
            {
                SeederPageReaderServerContext seederPageReaderServerContext = base.Channel.GetSeederPageReaderServerContext(this.m_databaseName, this.m_databasePath);
                replayStopwatch.Start();
                while (i > 0)
                {
                    base.Channel.Read(array, 0, 4);
                    i--;
                    uint   num = BitConverter.ToUInt32(array, 0);
                    long   lowGeneration;
                    long   highGeneration;
                    byte[] pageBytes = seederPageReaderServerContext.DatabaseReader.ReadOnePage((long)((ulong)num), out lowGeneration, out highGeneration);
                    new SeedPageReaderSinglePageReply(base.Channel)
                    {
                        PageNumber     = (long)((ulong)num),
                        LowGeneration  = lowGeneration,
                        HighGeneration = highGeneration,
                        PageBytes      = pageBytes
                    }.Send();
                }
                flag = true;
            }
            catch (JetErrorFileIOBeyondEOFException ex2)
            {
                ex = ex2;
            }
            catch (FailedToReadDatabasePage failedToReadDatabasePage)
            {
                ex = failedToReadDatabasePage;
            }
            catch (NetworkTransportException ex3)
            {
                ex = ex3;
            }
            finally
            {
                SeedPageReaderMultiplePageRequest.Tracer.TraceDebug <long, long, string>((long)this.GetHashCode(), "SeedPageReader finished reading and sending {0} pages after {1} sec. Operation successful: {2}", this.m_numPages, replayStopwatch.ElapsedMilliseconds / 1000L, flag.ToString());
            }
            if (!flag)
            {
                SeedPageReaderMultiplePageRequest.Tracer.TraceError <Exception>((long)this.GetHashCode(), "SeedPageReaderMultiplePageRequest.Execute failed: {0}", ex);
                if (ex is NetworkTransportException)
                {
                    base.Channel.KeepAlive = false;
                    return;
                }
                base.Channel.SendException(ex);
                while (i > 0)
                {
                    base.Channel.Read(array, 0, 4);
                    i--;
                }
            }
        }