AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL Replikation

Ein Thema von haentschman · begonnen am 10. Mär 2022 · letzter Beitrag vom 15. Apr 2022
Antwort Antwort
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
641 Beiträge
 
Delphi XE6 Enterprise
 
#1

AW: MSSQL Repikation

  Alt 10. Mär 2022, 15:55
Kann man bei Identity eine Art Startwert vorgeben? Dann addiere doch eine sehr hohe Zahl oben drauf, und zwar auf jede zu mergende Tabelle einen anderen. Ich nehme mal an, das sind BigInt, also 64 Bit Integer? Dann auf eine Tabelle 1.000.000.000.000 draufaddieren, bei der nächsten 2.000.000.000.000 usw. Die Ids zählen dann nicht 1, 2, 3, ... usw sondern halt 1.000.000.000.001, 1.000.000.000.002, 1.000.000.000.003, ...usw. - und es gibt keine Konflikte beim Mergen.

Wenns sich um Filialen handelt, wäre auch die Filial-ID möglich, vorausgesetzt, das ist ne Zahl...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.466 Beiträge
 
Delphi 12 Athens
 
#2

AW: MSSQL Repikation

  Alt 10. Mär 2022, 16:19
Zitat:
und es gibt keine Konflikte beim Mergen.
...dafür ist die Sperrtabelle da. Damit nur einer schreiben kann. Bei Mergerepikation könnte es vorkommen, das 2 dann den DS offen haben...
Zitat:
1.000.000.000.003, ...usw. - und es gibt keine Konflikte beim Mergen
Wenn 2 die 1.000.000.000.003 schreiben könnte das auch zu Konflikten führen.

Geändert von haentschman (11. Mär 2022 um 05:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.234 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MSSQL Repikation

  Alt 10. Mär 2022, 16:22
Wenn 2 die 1.000.000.000.003 schreiben könnte das auch zu Konflikten führen.
Filiale 1 bekommt Nummernbereich 1.000.000.000.000 bis 1.999....
Filiale 2 bekommt Nummernbereich 2.000.000.000.000 bis 2.999....

Theoretisch gibts keine Überschneidungen.
Praktisch sind bei uns 2 Hersteller von CRMs an genau diesem Problem gescheitert...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.466 Beiträge
 
Delphi 12 Athens
 
#4

AW: MSSQL Repikation

  Alt 10. Mär 2022, 18:12
Zitat:
Wenn 2 die 1.000.000.000.003 schreiben könnte das auch zu Konflikten führen.
...wenn aber 2 Niederlassungen oder der Hauptsitz gleichzeitig, was möglich ist, am Beleg arbeiten, hast du trotzdem evt. Konflikte...unabhängig von der ID des Datensatzes...weil die ID ist in diesem Falle gleich!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.234 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: MSSQL Repikation

  Alt 12. Mär 2022, 11:37
...wenn aber 2 Niederlassungen oder der Hauptsitz gleichzeitig, was möglich ist, am Beleg arbeiten, hast du trotzdem evt. Konflikte...unabhängig von der ID des Datensatzes...weil die ID ist in diesem Falle gleich!
Gleiche schon existierende ID.
Das ist eigentlich immer das "kleinere Problem", da hierfür entweder die Anwendung eine Konflikt-Wizward anbieten muss/wird oder das über die DB-Tools der Hersteller läuft.

Unsere Anwendung läuft auch bei einem Kunden mit zwei großen Standorten mit Merge-Replikation.
Auch wenn unsere Anwendung nicht für Replikation ausgelegt ist, funktioniert es. Aber auch nur weil die Nummernbereiche getrennt sind und praktisch der o.g. Fall nicht vorkommen sollte. Und falls doch ist der en IT so fähig die Merge-Konflikte selbständig zu lösen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.466 Beiträge
 
Delphi 12 Athens
 
#6

AW: MSSQL Repikation

  Alt 12. Mär 2022, 16:43
Hallöle...
Zitat:
die Anwendung eine Konflikt-Wizward anbieten muss
...ich stelle sicher, daß nur einer im "System" diesen DS schreiben kann. Alle anderen kennen die Sperre, weil sie ist auf der "Masterdatenbank" eingetragen. Jeder Client setzt beim Bearbeiten die Sperre "zentral"...und nimmt sie auch wieder raus.

Klar kann trotzdem noch einiges schiefgehen. Sowas wie: Sperre kann nicht entfernt werden...weil Internet kaputt. Dafür kann man die Sperre im Notfalle manuell entfernen.

...aber wenigstens keine überschriebenen Daten.

Danke an Alle...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.466 Beiträge
 
Delphi 12 Athens
 
#7

AW: MSSQL Repikation

  Alt 5. Apr 2022, 08:05

[neue Frage]
Ich habe auf dem Live System NUR eine Veröffentlichung erstellt. Der Snapshot wird aller 5 Minuten ausgeführt...ohne Probleme.
An dieser Veröffentlichung hängt noch kein Abonnent dran.

Fehler beim normalen Speichern (SQL) eines komplexen Objektes innerhalb einer Transaktion:
Zitat:
exception message : [FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Ein Rollback für SP_3 kann nicht ausgeführt werden. Es wurde keine Transaktion oder kein Sicherungspunkt mit diesem Namen gefunden.
vereinfacht:
Delphi-Quellcode:
begin
  Qry := CreateQuery;
  try
    Transaction := TFDTransaction.Create(nil);
    try
      Transaction.Connection := FConnection;
      Qry.Transaction := Transaction;

      Transaction.StartTransaction;
      try
        case Receipt.State of
          sdsModified:
          begin
            Qry.SQL.Text := GetSQLByName('XXX_UPDATE_ID');
            Qry.ParamByName('ID').AsInteger := Receipt.ID;
            FillParameters;
            Qry.ExecSQL;
            WriteLists; //wieder SQL für Detail Objekte
          end;
        end;
        Transaction.Commit;
      except
        Transaction.Rollback;
      end;
    finally
      Transaction.Free;
    end;
  finally
    Qry.Free;
  end;
end;
PS: es gibt keine SP_3. In Fehlermeldungen später war es auch u.a. SP_2.

..nach Entfernung der Veröffentlichung wird wieder normal gespeichert.

Nach was muß ich suchen?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.234 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: MSSQL Repikation

  Alt 10. Mär 2022, 16:20
Kann man bei Identity eine Art Startwert vorgeben?
Kann man.

Wir hatten zwei CRM-Systeme, welche laut Feature-Matrix Replikation bei MS SQL Unterstützten.
Beide haben nach kurzer Zeit die Replikation nicht mehr unterstützt, da trotz dieser Möglichkeiten die ganzen Filialen doch irgendwann mal Replikations/Merge-Probleme zeigten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz