Quantcast
Channel: SQL Server Replication forum
Viewing all articles
Browse latest Browse all 4054

BusinessLogicModule - How to debug in VS??

$
0
0

I have followed the instructions listed in this https://msdn.microsoft.com/en-us/library/ms365150.aspx MSDN article but cannot get it working.  Can anyone shed some light on how to debug?  I have insalled VS 2015 on the subscriber and have the DLL dropped into the C:\Program Files\Microsoft SQL Server\120\COM folder.  I have my code listed below

    public class ReplicationBusinessLogicModule : BusinessLogicModule
    {
        private string _PublisherName;
        private string _SubscriberName;
        private string _ArticleName;
        private string _ReplicationTime;

        public ReplicationBusinessLogicModule()
        {
            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In ReplicationBusinessLogicModule: " + DateTime.Now);
            sb.AppendLine("-------------------------------------");
            sb.AppendLine();
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());
        }

        public override void Initialize(string publisher, string subscriber, string distributor, string publisherDB, string subscriberDB, string articleName)
        {
            _PublisherName = publisher;
            _SubscriberName = subscriber;
            _ArticleName = articleName;
            _ReplicationTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fffffff", CultureInfo.InvariantCulture);

            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In Initialize: " + DateTime.Now);
            sb.AppendLine("ArticleName: " + _ArticleName);
            sb.AppendLine("-------------------------------------");
            sb.AppendLine();
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());

        }

        public override ChangeStates HandledChangeStates
        {
            get
            {
                return ChangeStates.SubscriberInserts | ChangeStates.SubscriberUpdates | ChangeStates.SubscriberDeletes | ChangeStates.UpdateConflicts |
                    ChangeStates.PublisherInserts | ChangeStates.PublisherUpdates | ChangeStates.PublisherDeletes;
            }
        }

        public override void CommitHandler(SourceIdentifier source, Guid rowGuid)
        {
            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In CommitHandler: " + DateTime.Now);
            sb.AppendLine("Source: " + source.ToString());
            sb.AppendLine("ArticleName: " + _ArticleName);
            sb.AppendLine("RowGuid: " + rowGuid.ToString());
            sb.AppendLine("-------------------------------------");
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());

            base.CommitHandler(source, rowGuid);
        }

        public override ActionOnDataChange InsertHandler(SourceIdentifier insertSource, DataSet insertedDataSet, ref DataSet customDataSet, ref int historyLogLevel, ref string historyLogMessage)
        {
            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In InsertHandler: " + DateTime.Now);
            sb.AppendLine("Source: " + insertSource.ToString());
            sb.AppendLine("InsertHandler: " + _ArticleName);
            sb.AppendLine("-------------------------------------");
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());

            return base.InsertHandler(insertSource, insertedDataSet, ref customDataSet, ref historyLogLevel, ref historyLogMessage);

        }

        public override ActionOnDataChange UpdateHandler(SourceIdentifier updateSource, DataSet updatedDataSet, ref DataSet customDataSet, ref int historyLogLevel, ref string historyLogMessage)
        {

            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In UpdateHandler: " + DateTime.Now);
            sb.AppendLine("Source: " + updateSource.ToString());
            sb.AppendLine("ArticleName: " + _ArticleName);
            sb.AppendLine("-------------------------------------");
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());


            customDataSet = updatedDataSet.Copy();
            customDataSet.Tables[0].Rows[0]["NVarCharColumn"] = string.Format("Repl({0})", _ReplicationTime);

            return ActionOnDataChange.AcceptCustomData;
        }

        public override ActionOnUpdateConflict UpdateConflictsHandler(DataSet publisherDataSet, DataSet subscriberDataSet, ref DataSet customDataSet, ref ConflictLogType conflictLogType, ref string customConflictMessage, ref int historyLogLevel, ref string historyLogMessage)
        {

            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In UpdateConflictsHandler: " + DateTime.Now);
            sb.AppendLine("ConflictLogType: " + conflictLogType.ToString());
            sb.AppendLine("ArticleName: " + _ArticleName);
            sb.AppendLine("-------------------------------------");
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());

            return base.UpdateConflictsHandler(publisherDataSet, subscriberDataSet, ref customDataSet, ref conflictLogType, ref customConflictMessage, ref historyLogLevel, ref historyLogMessage);
        }

        public override ActionOnDataDelete DeleteHandler(SourceIdentifier deleteSource, DataSet deletedDataSet, ref int historyLogLevel, ref string historyLogMessage)
        {
            var sb = new StringBuilder();
            sb.AppendLine("-------------------------------------");
            sb.AppendLine("In DeleteHandler: " + DateTime.Now);
            sb.AppendLine("Source: " + deleteSource.ToString());
            sb.AppendLine("DeleteHandler: " + _ArticleName);
            sb.AppendLine("-------------------------------------");
            System.IO.File.AppendAllText(@"C:\Temp\ReplicationBusinessLogicModule.txt", sb.ToString());

            return base.DeleteHandler(deleteSource, deletedDataSet, ref historyLogLevel, ref historyLogMessage);
        }
    }




Viewing all articles
Browse latest Browse all 4054

Trending Articles