Autor Thema: Datenverteilung  (Gelesen 3405 mal)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Datenverteilung
« am: 20.12.11 - 13:53:36 »
Hey zusammen,

ich hänge immer noch an dem Problem fest, Änderung an einem Dokument in Datenbank A an alle Dokumente in Datenbank B weiterzugeben, die von der Änderung betroffen sind.

Wie bereits hier geschildert läuft es momentan so, dass nach der Änderung in Datenbank A , ein temporäres Dokument mit sowohl den alten, als auch den neuen Feldwerten erstellt wird und per Mail an Datenbank B geschickt wird. Datenbank B hat wiederum den Agent "nach Eingang neuer Mail" und verarbeitet entsprechend das eingegangene Änderungsdokument. Je nach Tageslaune, wird der Agent aber schon nach 30 Sekunden vom Server abgebrochen.

Ich habe jetzt schon mehrere Tests mit Agenten "nachdem Dok. erstellt/geändert wurden", bzw. "nachdem Dok. eingefügt wurden" hinter mir.

Der Trigger "nachdem Dok. erstellt/geändert wurden" hat den Nachteil, dass der Agent permanent losgetreten wird, zum Einen weil zig Dokumente täglich dazu kommen/geändert werden, zum Andern führen auch die programmatisch erzeugten Reports zum Start des Agenten. Das wiederum geht ja dann endlos so weiter, wenn der Agent selbst wieder Reports erzeugt.

Der Trigger "nachdem Dok. eingefügt wurden" scheint nur zu ziehen, wenn im Frontend eingefügt wird. Ein .CopyToDatabase löst leider keinen Agentstart aus.

Welche Möglichkeiten habe ich, damit der User nicht so lange warten muss, bis im Hintergrund alle Dokumente verarbeitet wurden und die Änderungen trotzdem zeitnah verarbeitet werden?

Gruß
Demian
Gruß
Demian

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Datenverteilung
« Antwort #1 am: 27.12.11 - 10:17:07 »
Schick dein Mail mit einen definierten FeldWert "UpdateX" in einem bestimmten Feld los. Lass den Agent nur über alle Dokumente laufen die diesen Feldwert haben. Mach das Ganze auf der Empfängerseite zeitgesteuert alle fünf Minuten. Damit solltest du allen Schwierigkeiten die du hier geschildert hast aus dem Weg gehen können.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Datenverteilung
« Antwort #2 am: 29.12.11 - 15:10:57 »
Hallo Thomas,

also das mit der Mail hätte ich auch so beibehalten und dann halt eine Extra-Ansicht für gebastelt.

Die Idee mit dem alle 5 minuten hatte ich auch schon, weiß aber nicht, ob man wirklich so vorgehen sollte.

Zum einen rennt der Agent dann 288 x am Tag, ob er was zu tun hat oder nicht. Zum andern bräuchte ich diesen Agenten dann in allen DB's die untereinander kommunizieren. Momentan wären das 4. Also würde das dazu führen, dass es 1.152 Agentenläfue am Tag gibt, von denen vielleicht 100 wirklich etwas zu verarbeiten haben. 

Das war halt der Vorteil bei "nach Eingang neuer Mail". Der Agent ist nur dann gerannt, wenn eine Änderungsmail eingegangen ist und der User war davon völlig losgelöst.  :(

Ansonsten wünsche ich allen vorab schonmal einen guten Start ins neue Jahr, viel Glück, Gesundheit, neue Aufträge und keine Bugs (auch selbstprogrammierte  :o  ;D).
Gruß
Demian

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Datenverteilung
« Antwort #3 am: 28.04.12 - 16:02:08 »
Moin zusammen,

also ich habe mir jetzt nochmal ein paar Gedanken dazu gemacht:

- Die Datenbanken in denen die Dokumente geändert werden schicken weiterhin die Mail mit den alten und neuen Werten an die betroffenen DB's.
- In einer neuen separaten DB läuft dann alle 5 Minuten ein Agent der alle Datenbanken auf eingegangene Mails prüft.
- Sollten in einer DB neue Mails vorhanden sein, wird dort ein Agent losgetreten der die Mails dann verarbeitet.

Somit wäre es dann nur noch die eine DB in der Agent alle 5 Minuten rennt und die Kommunikation der DB's untereinander überwacht/anstößt.

Ist diese Vorgehensweise zu empfehlen, oder eher nicht?  :-:

Beste Grüße
« Letzte Änderung: 30.04.12 - 08:08:16 von Demian »
Gruß
Demian

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datenverteilung
« Antwort #4 am: 29.04.12 - 16:15:45 »
Ja, diese Vorgehensweise ist zu empfehlen: Du arbeitest nu noch mit einer Daten-Instanz (als bestimmender Faktor) und einem Agent, der sich auch nicht "gegenseitig" ins Gehege kommen kann. Du hast nur einen zu überwachenden  Punkt etc. pp.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz