private void SyncAgentTest_ExecuteCode(object sender, EventArgs e) { SyncAgent agent = new SyncAgent(); agent.Local = new SyncDatabase( new FbConnection( "Database=fdb:/var/db/ch_bl_s.fdb;User=SYSDBA;Password=3Ky1u6nd;Charset=WIN1251")); agent.Remote = new SyncDatabase( new FbConnection( "Database=fdb:/var/db/ch_bl_s2.fdb;User=SYSDBA;Password=3Ky1u6nd;Charset=WIN1251")); agent.LocalToRemoteLinkId = 0; try { agent.Execute(); } catch { } }
private void Synchronize() { if (log.IsDebugEnabled) { log.Debug("Synchronize:begin"); } if (!CheckConnection(localConnection, "Local")) { return; } if (!CheckConnection(remoteConnection, "Remote")) { return; } log4net.GlobalContext.Properties["test"] = "123"; syncAgent = new SyncAgent(); syncAgent.Local = localConnection.GetSyncDatabase(); syncAgent.Remote = remoteConnection.GetSyncDatabase(); syncAgent.LocalToRemoteLinkId = linkInfo.LocalId; syncAgent.RemoteToLocalLinkId = linkInfo.RemoteId; syncAgent.StateChanged += new SyncAgentStateChangedHandler(syncAgent_StateChanged); syncAgent.LocalFilters.AddRange(linkInfo.LocalFilters); syncAgent.RemoteFilters.AddRange(linkInfo.RemoteFilters); syncAgent.Name = linkInfo.Name; syncAgent.Order = linkInfo.Order; //syncAgent.Local.Name = string.Format("{0} ({1})", linkInfo.Name, syncAgent.Local.Name); //syncAgent.Remote.Name = string.Format("{0} ({1})", linkInfo.Name, syncAgent.Remote.Name); syncAgent.SetLoggerName(log.Logger.Name); bool executionResult = syncAgent.Execute(); if (executionResult) { log.Info("Сеанс синхронизации прошел успешно"); if (failedCount > 0) { // восстановление после ошибки thread.Delay = linkInfo.SyncDelay; } failedCount = 0; // сброс счетчика ошибок } else { failedCount++; if (failedCount < linkInfo.LinkRetries) { log.WarnFormat("Сеанс синхронизации завершен с ошибкой. Это {0} ошибочный сеанс. По достижении {1} ошибочных сеансов связь будет приостановлена.", failedCount, linkInfo.LinkRetries); } else if (failedCount >= linkInfo.LinkRetries) { log.ErrorFormat("Сеанс синхронизации завершен с ошибкой. Попытка связи № {0}. Связь приостановлена.", failedCount); thread.Delay = linkInfo.RetryAfterErrorsDelay; } } if (log.IsDebugEnabled) { log.Debug("Synchronize:end"); } }