Datenaustauschformat Client Server

Peter Parker

Mitglied
Hi,

ich arbeite mit VB.NET und einer Oracle Datenbank. Bei meinem Programm herrsch folgender Ablauf:
Im Client (.NET) selektiere ich meine gewünschten Daten. Diese Daten übergebe ich per Remote Procedure Call an einen Server (C Programm auf Linux). Der RPC auf dem Server generiert mir ein SQL Statement, selektiert die Daten aus der Datenbank und schreibt die Ergebnissmenge in eine temporäre Tabelle. Dann erfolg ein Commit auf die Datenbank und der Client erhält die Antwort von der RPC. Nach erhalt der Antwort des RPC-Aufrufes liest der Client die Daten direkt aus der temporären Tabelle. Diese Vorgäng sind mir fest vorgegeben und kann ich leider nicht ändern.
Da das Auslesen der Daten aus der Datenbank und das Schreiben in die temporäre Tabelle so lange dauert, wird die Ergebnissmenge zudem auch noch in eine seperate Datei gespeichert. Auf diese Datei greife ich dann vom Client sofort nach Erstellung darauf zu. Während diesem Zugriff (lesend) des Clients,werden weitere Ergebnissdaten in die Datei geschrieben.

Der Weg mit der Datei hat den Sinn, das der Client bereits vor vollen Abarbeitung der RPC auf die Ergebnisdaten zugreifen kann.

Ist ein bischen komisch das ganze aber so sind meine vorgaben von der Firma aus!

Hat vielleicht jetzt jemand ne Empfehlung was für ein Dateiformat ich verwenden soll? xml?
Problem ist dabei nur, wenn der Client auf die xml Datei zugreift und zufällig der Server noch kein abschließendes Tag eingefügt hat, der Client einen Lesefehler bekommt.
Gibt es vielleicht einen anderen Weg erste Teilergebnisse zu erhalen?

Bin dankbar über jede Info.
Gruß
 
Also ich würde in diesem Fall einfache Textdateien verwenden (CSV) dann kannst Du leicht zeilenweise lesen (Zeile=Datensatz)
Hängt natürlich ein wenig mit den verwendeten Datentypen zusammen aber ist aber wohl das schnellste.

vop
 
Oder kannst Du nicht bereits aus der temporären Tabelle lesen?

Wie sieht die denn aus?

vop
 
Txt Datei habe ich mal implementiert aber ist zu einfach. Man kann einem Kunde ja nicht sagen das man die Daten über ein Txt Format aus tauscht. XML Habe ich auch versucht, da ist aber das Problem, daß bei einem lese Zugriff auf die XML Datei ggf. das abschließende Tag noch nicht vom Server geschrieben wurde und es dann zu Fehlern kommt.

THX

Mit der temporären Tabelle wird es bisher gemacht, dass Problem ist nur, dass ein Commit erst am Ende des Funktionsaufrufes statt findet. Solange aber kein Commit stattgefunden hat kann ich auf die Daten nicht zugreifen und das commit muss laut der Firma am Ende sein.
 
Zuletzt bearbeitet:
Hallo VOP
das mit csv ist mal nicht schlecht habe es ausprobiert. Klingt besser als txt-Datei. Aber mal ein sehr guter Anfang. Zudem benötige ich kein abschließendes Tag.

THX
 
Zurück