![]() |
Re: Datentransfer von mehreren Clients an einen Server über
Hallo Tempdir
schau Dir dochmal Copycat an. ![]() Zitat:
Manfred |
Re: Datentransfer von mehreren Clients an einen Server über
Zitat:
|
Re: Datentransfer von mehreren Clients an einen Server über
Zitat:
Die Empfänger-Anwendung kann dann vom Messagebroker die Daten abholen und weiter verarbeiten. Zur Lastverteilung können auch mehrere Empfänger Anwendungen parallel laufen. Der Broker wird die Daten dann gleichmäßig auf die Empfänger verteilen. Kostenlose Open Source Implementierungen wie z.B. Apache ActiveMQ sind bereits sehr leistungsfähig, es existieren Clients für viele verschiedene Programmiersprachen, daher sind sie auch sehr gut für die Verbindung bestehender Systeme geeignet. |
Re: Datentransfer von mehreren Clients an einen Server über
|
Re: Datentransfer von mehreren Clients an einen Server über
Danke für die vielen Tipps!
@Manfred: Die komponente sieht gut aus, allerdings fehlt der Support für D2009 und es sieht so aus als sei das ganze etwas eingeschlafen (letzter Release Ende 2007). Da das ganze aber für ein kleines Projekt in einer Firma sein soll, ist diese somit eher unbrauchbar (Support). @Bernhard: Wie sieht sowas genau aus? Eine Software die der Datenbank beiliegt bzw. heruntergeladen werden kann? @mjustin Danke, ich werde mich darüber informieren. Was haltet ihr von folgender Idee: Auf jedem PC-Client läuft z.B. ein Firebird SQL-Server. Jetzt schreib ich in Delphi ein Programm mit den IB-Datenbankkomponenten, welches sich automatisch mit dem jeweiligen Client verbindet, und die neu hinzugekommenen Daten abholt. Dass sie neu sind erkennt das Programm daran, indem die Datensätze die noch nicht abgeholt wurden ein Feld enthalten das z.B. den Wert FALSE (= noch nicht abgeholt) hat. Somit könnte ich über eine SQL-Query einen Eintrag auslesen, und dann den Wert TRUE (=abgeholt) in das Feld schreiben. Die IPs der Clients werden in einer Liste angegeben, welche das Programm zyklisch abarbeitet. Bitte um eure Kommentare - vielen vielen Dank! |
Re: Datentransfer von mehreren Clients an einen Server über
Dann wäre doch der andere Weg sinnvoller: Der Client verbindet sich mit einem zentralen FireBird Server und gleicht lokalen Bestand ab.
|
Re: Datentransfer von mehreren Clients an einen Server über
Aber dann hätte ich wiederum das "Problem", dass sich mehrere Clients gleichzeitig verbinden und gleichzeitig Daten senden (ok ist eigentlich auch Sinn und Zweck eines DB-Servers - aber ich weiß nicht ob und was da schief gehen könnte).
Und ich wüsste nicht ob die Daten in der Firebird-DB gespeichert wurden? Höchstens ich mach eine erneute Anfrage, ob die Daten drin sind. Ich sollte noch erwähnen, dass auf der Client-Seite die CPU-Last möglichst gering sein sollte. Serverseitig ist es egal. |
Re: Datentransfer von mehreren Clients an einen Server über
Zitat:
Zitat:
|
Re: Datentransfer von mehreren Clients an einen Server über
Guten Morgen,
also wenn ich die Methode mit dem zentralen Server machen würde, so hätte ich den Vorteil dass ich auf der Client-Seite nur eine Exe starten müsste (welche die DB des Clients ausliest und versendet). Und auf der Empfangsseite (Server) müsste ich einen SQL-Server installieren der die Daten "einsammelt". Bei dieser Variante könnte man auf dem Server die SQL-Datenbank nicht einfach "anschauen" mit z.B. Notepad. Bei der anderen Variante, wo auf jedem Client ein SQL-Server ist, könnte ich auf der Serverseite die Daten z.B. in ein DataBase File oder CSV speichern. Spricht viel gegen meine erste Variante von Seite 1 ? |
Re: Datentransfer von mehreren Clients an einen Server über
Wie schaut die Verbindung zwischen Clients und Server aus? LAN?
Wir haben eine ähnliche Problemstellung so gelöst: - Die Tabellen, die übertragen werden sollen haben einen Trigger der bei Inserts, Updates und Deletes anspringt - Dieser Trigger schreibt einen Datensatz in eine Replikationstabelle mit Operation, Tabelle, Primärschlüssel - Auf dem Server läuft ein Programm, dass zyklisch bei allen Clients diese Informationen ausliest und entsprechende Selects durchführt - Die Datensätze werden in einer Zwischendatenbank gepuffert, falls der Zielserver nicht erreichbar ist - Ist er erreichbar wird die gleiche Operation auf der Zieldatenbank ausgeführt. Das Zwischenpuffern in der DB ist u.U. nötig da wir sämtliche Datenbanken vollständig untereinander synchronisieren. Fertige Lösung haben wir damals ein oder zwei ausprobiert, aber da hat es uns ein bisschen an Flexibilität gefehlt. Vorteil der Lösung: An den Clients muss (bis auf die Trigger) überhaupt nichts geändert werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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 by Thomas Breitkreuz