Exemple #1
0
        /// <summary>
        /// Closes the import session
        /// </summary>
        /// <param name="importRunStep">The current run step</param>
        /// <returns>Results of the import session close</returns>
        public CloseImportConnectionResults CloseImportConnection(CloseImportConnectionRunStep importRunStep)
        {
            try
            {
                CloseImportConnectionResults results = new CloseImportConnectionResults();

                if (this.importResponse != null)
                {
                    results.CustomData = this.importResponse.Watermark;

                    ImportReleaseRequest request = new ImportReleaseRequest();
                    request.Context           = this.importResponse.Context;
                    request.NormalTermination = importRunStep.Reason == CloseReason.Normal;
                    this.client.ImportEnd(request);
                }

                this.Close();

                Logger.WriteLine("Import Complete");
                Logger.WriteSeparatorLine('*');

                return(results);
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                throw;
            }
        }
        public void ImportEnd(ImportReleaseRequest request)
        {
            try
            {
                CachedImportRequest originalRequest;

                try
                {
                    originalRequest = GetFromCache(request.Context);
                }
                catch (InvalidOperationException)
                {
                    Logger.WriteLine("Could not release the request as it was not found in the cache");
                    return;
                }

                if (originalRequest.HighWatermark != null)
                {
                    if (request.NormalTermination)
                    {
                        ActiveConfig.DB.ClearDeltas(originalRequest.HighWatermark);
                    }
                }

                RemoveFromCache(request.Context);

                MAStatistics.StopOperation();
                Logger.WriteLine(MAStatistics.ToString());
            }
            catch (Exception ex)
            {
                Logger.WriteLine("Could not release the request");
                Logger.WriteException(ex);
            }
        }