Two-Way Replikation bei einer Datei gestoppt

Advantage Database Server

Moderator: Moderatoren

Antworten
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo,

wir sind kurz vor der Einführung derTwo-Way Replikation bei einem Kunden, der an zwei Standorten arbeitet. Das DataDictionary, Subskription und Publikation sind an beiden Standorten gleich aufgebaut. Zur Zeit ist das ganze noch in der Testphase. Nun zu meiner Frage.

Von den ca. 100 Dateien gibt es eine die nach einer Unterbrechung aktuell nur in eine Richtung repliziert wird.
Ich habe die Publikation dieser Datei mal aus dem DD einfernt und wieder eingefügt, aber der Zustand bleibt wie er war.
Änderungen in dieser Datei am Standort A werden nicht zum Standort B übertragen, umgekehrt schon.

Es sind (bisher) keine Filter, Trigger oder ähnliches installiert.

Hat jemand einen Tipp, wo ich ermitteln kann warum die Replikation dieser Datei von A -> B unterbrochen wurde und nicht wieder startet ?

Die beiden ADS-Server kann ich erst am Wochenende neu starten. Ich fürchte danach wird die Replikation wieder insgesamt arbeiten, aber ich hätte schon gerne gewußt wie ich im laufenden Betrieb auf so eine Situation reagieren kann. Bei einem 24/6 Betrieb kann eine Woche ganz schön lang werden.

Glück Auf!
Udo Raiser
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Marcus Herz »

Man kann ja sehen, welche Sätze zur Replikation anstehen, die Tabelle beginnen mit 2 Undersore. Ein Klick dadrauf öffnet ein Fenster, in welchem die Sätze zu Replikation angezeogt werden, und auch den, an dem es hängen blieb. Mit all den Feldern. Vieleicht hilft dir das weiter.
-Löschen der Repliaktions Queue:

Code: Alles auswählen

execute procedure sp_DeleteReplicationEntry(  Subscription, CiCharacter, 200;   EntryID,INTEGER; )
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Marcus Herz »

Um die Queue wieder zu füllen, hilft es manchmal, ein Feld mit sich selber upzudaten, dann wird ja ein Commit ausgelöst und die Queue initilalisiert:

Code: Alles auswählen

update <table> set <feld> = <feld>
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo Marcus,

danke für deinen Hinweis. Die Replication Queue kann ich natürlich einsehen. Es ist auch schön, dass man sie pausieren lassen kann, um sich anzusehen was so rein kommt. Mein Problem ist aber, dass die Replikation dieser einen Datei in der Richtung von A -> B nicht mehr stattfindet; es werden also keine Daten mehr zu dieser Datei in die Queue geschrieben, wenn ich Daten am Standort A modifiziere. - Sie sehen, sie sehen nichts!

Meine Frage ist, ob ich irgendwo einsehen, nachlesen, abfragen kann, warum?
Wie gesagt, ich vermute, dass nach einen Stopp des ADS Service und Neustart wieder alles gut sein wird (ich werde berichten), aber das ist während des laufenden Betriebs natürlich schlecht und zumindestens "unbefriedigend".

Glück Auf!
Udo
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Marcus Herz »

Wenn du die Repliaktion pausierst, dann bist du dir sicher, dass für diese Datei kein Satz in der Queue steht?
- Vielleicht definierst du die Repliaktion für diese Datei neu?
- Stimmt die Feldstruktur an beiden Seiten überein?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von nightcrawler »

Datei außerhalb des Data Dictionary im Zugriff?
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo,

Ich teste das indem ich auf beiden Servern das DD mit arc und hierin die Tabelle öffne.

Ich ändere und refreshe ein Feld der Tabelle am Standort A - Daten bleiben am Standard B unverändert
Ich ändere und refreshe ein Feld der Tabelle am Standort B - Änderungen sind fast sofort sichtbar.

DD ist auf beiden Server gleich (erzeuge ich mit einem Tool aus meiner eigenen Strukturtabelle)

Publikation der Datei habe ich am Standort A (nachdem ich merkte das die Replikation nicht mehr läuft) einmal herausgenommen und später wieder eingefügt.

Glück Auf!
Udo
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von nightcrawler »

Hallo Udo,
das hört sich jetzt wirklich strange an. Sieht so aus, als ob der ADS nicht weiß, dass die Tabelle an der Replication beteiligt ist. Dies merkt er sich beim Öffnen der Tabelle. Bei ADT wäre ein Öffnen von außerhalb des DD nach der Einbindung nicht mehr möglich. Handelt es sich um DBF? Ist die DBF evtl schon offen, so dass der ADS über die DD-Verbindung diese nicht mehr erneut öffnet (irgendein Dienst, eine Auswertung o.ä.)?
Übrigens: in meinem Umfeld heißt es Glück ab;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo,

wie ich es schon "befürchtet" habe, läuft die Replikation, nachdem ich den ADS auf beiden Servern angehalten und neu gestartet habe, als wäre nichts gewesen. Gut wir sind noch im Test, aber sehr nah dran am Live Betrieb. Die Replikation ist, wenn sie läuft, ein echter Gewinn.
Was mir noch fehlt ist ein "Warnsystem" bei auftretenden Problemen. Vom ADS ist man Stabilität gewohnt; unsere System laufen weitgehend klaglos ohne weiteren Support so vor sich hin.
Bei der Two-Way Replikation stellt man sich schon die Frage, ob das so stabil läuft, dass die Daten konsistent beiben?

Glück Auf!
Udo

@Joachim, ein "Glück ab" müßtest du im Pott lange erklären....
... und dabei würden wohl mehr als nur ein paar Bier geleert werden (müssen).
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Marcus Herz »

Wie Joachim schon erwähnte, die Datei muss neu geöffnet werden (ähnliches Problem bei Änderung von Triggern)
Wenn die in der App immer offen bleibt, zieht eine Änderung nicht.
Ich hab es mir abgewöhnt, eine Datei global im Main für alle späteren Vewrwendungen offen zu halten.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von nightcrawler »

Udo hat geschrieben: So, 09. Jan 2022 19:01 @Joachim, ein "Glück ab" müßtest du im Pott lange erklären....
... und dabei würden wohl mehr als nur ein paar Bier geleert werden (müssen).
https://de.wikipedia.org/wiki/Schlachtr ... Bundeswehr
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo,

und wieder ist die Replikation "einseitig" für bestimmte Dateien stehen geblieben!

Joachims Hinweis: Datei außerhalb des Data Dictionary im Zugriff?, hat mich noch mal grübeln lassen.
Es gibt einen Thread im Programm, bei dem eine Tabelle für die Produktionsplanung der Woche erzeugt wird.
Diese 'wöchentliche' Tabelle kann natürlich nicht im DataDictionary(DD) eingetragen sein/werden. Daher habe ich diesem Thread eine und eine 'normale' Connection (ohne DD) zum ADS geöffnet. Ich vermute das stoppt dann die Replikation; OHNE Fehlermeldung!

Ich habe das jetzt umgeschrieben, erst öffne ich die DD Tabellen, dann erzeuge ich eine neue ADS-Connection ohne DD und weise sie oAds2 zu. Damit öffne ich dann die Wochentabelle als freie Tabelle, aber über den ADS. Bis jetzt funxt das so.
Folgendes macht mich jedoch stutzig:
Beim Schließen der ADS-Connection am Ende des Threads reicht ein disconnect() um die ADS Connection zu beenden. Bedeutet das die zweite Connection oAds2 zum ADS hat die erste (mit DD) ersetzt, aber die über das DD gebundenen Tabellen bleiben weiterhin geöffnet.

Was mich zu der Frage führt:
Ich will/darf/muss DD gebundenen und ‚freie‘ Tabellen in einem Thread gleichzeitig öffnen. Wie mache ich das richtig?

Glück Auf!
Udo
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von nightcrawler »

Der ADS kann gesichert natürlich nur Daten replizieren, welche innerhalb des Dictionaries geändert werden. Warum kann Dein anderer Prozess das Dictionary nicht verwenden?
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Udo
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Do, 18. Okt 2007 15:37

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von Udo »

Hallo Joachim,

ich hatte gehofft, das erklärt zu haben, die wöchentliche Planungstabelle bekommt immer einen neuen Dateinamen, daher kann sie nicht im DD stehen. So wie ich das schreibe fallen mit natürlich gleich Wege ein, dass zu ändern - keine Frage.

Aber ich habe es jetzt wohl verstanden.
Ich kann diverse DacSession zum ADS aufmachen;
z.B. oADS1 mit der Connection zum DD und
oAds2 zum ADS ohne Connection zum DD - für 'freie' Tabellen
und die beim Öffnen der Dateien einfach mitgeben z.B. ... VIA oAds2
Die Liste der Session bekomme ich mit DacSession():SessionList()
und wenn ich neugierig bin, kann ich mir auch die Connection genauer ansehen: DacSession():SessionList()[1]:getConnectionString()

Beim Beenden des Thread die DacSessionList() in ein Array schreiben und dann alle gefunden Session disconnecten
aeval( aDacListe, {|o| o:Disconnect()} )

Danke für die Hilfe und

Glück Auf!
Udo
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Two-Way Replikation bei einer Datei gestoppt

Beitrag von UliTs »

Udo hat geschrieben: Mi, 12. Jan 2022 13:16 die wöchentliche Planungstabelle bekommt immer einen neuen Dateinamen, daher kann sie nicht im DD stehen.
Abgesehen davon, dass es natürlich viel besser ist, nur eine Tabelle zu verwenden, könntest Du beim Erstellen der Tabelle selbige auch ins Data Dictionary aufnehmen 😊.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten