![]() |
Datenbank: ? • Version: ? • Zugriff über: Anydac
WANTED: DB für schlechte Netzwerke
Welche Datenbank muss ich nehmen um FatClients in einem NICHT Administrierten Netzwerk zu betreiben...
(Der Netzwerk Admin ist verwand mit dem Besitzer und unfehlbar...) Gehen wir einfach davon aus das vorliegende Netzwerk ist lahm. Und der Flaschenhals nicht direkt auffindbar Virenscanner, Firewalls, Switche, Netzwerkkarten.... Wenige große Datenpackete sind schnell übertragen aber viele kleine Datenpakete dauern.... das Programm setzte ausschließlich "Select, insert , update, delete" statements ab. In der Regel Prepared und Parametrisiert. Ich habe schon festgestellt das MSSQL unter genannten bedingungen um längen besser funzt als Firebird Wer hat solche Erfahrungswerte für andere Paarungen beizusteuern? |
AW: WANTED: DB für schlechte Netzwerke
Sorry, das klingt etwas drollig. Ich würde versuchen, das Netz rund zu bekommen, aber Du musst ja mit den Gegenenheiten "arbeiten".
Ich kann eigentlich keine spezifischen Rankings liefern, nur ein paar allgemeine Gedanken. Fat Clients sind ja offenbar sehr geschwätzig (verglichen mit WEB basierten Systemen). In Deinem Problembereich (Symptome) sehe ich die Netzwerkschwächen dann offenbar im Bereich Routing, Adressierung, Namensauflösung, nicht in der Bandbreite. Sprich, der DB Client ist vorwiegend damit beschäftigt, auf Antworten von DNS und Co zu warten. Große Pakete gibt es glaub ich weniger in dem Bereich. Bei MS (in einem MS Netzwerk) gibt es ja gefühlt 50 weitere Protokolle neben DNS und DHCP), dass MS Produkte da verhältnismäßig gut mit klarkommen, ist nicht verwunderlich. Meine Strategie wäre: Das eigentliche Netzwerkproblem rausfinden (schlechter DNS, lokale DNS Einstellungen nach außen und vlt sogar falsche DNS Angaben, alte Protokolle, z.B. NetBUI oder wie das hies, usw.) Dann ein entsprechendes Arangement bilden. GGf. Namensauflösung vermeiden (also Clientconfig IP basiert) oder sogar Fat Client "vermeiden". Ich weiß janicht, wie frei Du ansonsten in der "Wahl der Waffen" bist, aber mit dem Fat Client etwas näher an eine Webarchitektur zu rücken, wäre vielleicht einen Test wert. Dabei denke ich an sowas wie mORMot. Hab's noch nicht genutzt, aber wird hier gelegentlich genannt. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Zitat:
Nur unsere Anwendung ist langsam...also ist das aus Adminsicht ganz klar unser Problem, auch wenn wir wissen das es etliche Firmen gibt bei denen es gefühlt 15 mal schneller ist. Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Irgendwo muss es doch Rankings zu Geschwätzigkeit von geben. |
AW: WANTED: DB für schlechte Netzwerke
Man könnte den Verkehr bündeln/komprimieren
![]() ![]() Damit bekommet man sogar (FireBird-)Verkehr über das Internet gehandelt. ![]() |
AW: WANTED: DB für schlechte Netzwerke
Das Firebird-Remote-Protokoll ist bekannt "geschwätzig". Siehe auch den Lesestoff hier:
![]() ![]() ![]() Wenn man sich aber in einem LAN befindet, dann sollte das nicht so viel ausmachen. Vorausgesetzt natürlich, dass netzwerktechnisch sowohl hardware-, als auch softwareseitig (DNS-Auflösung etc.) die Sache einigermaßen im grünen Bereich ist. Interessant ist auch, was denn der Fat-Client so treibt. Ich hab client-seitig im Umfeld von Firebird schon viel gesehen und performancetechnisch wundert mich da manchmal gar nichts mehr. :-D Ev. liegt ja Optimierungspotential im Fat-Client und der zugrundeliegenden Firebird Datenbank (Konfiguration, Indexes etc.) |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Z.B. einen Client Zugriff auf Basis der IP adresse statt DNS Name aufsetzen und Performance Tests machen. Außerdem kann man einfach mittels Taskmanager / Netzwerktraffic sehen(!), was die Anwendung selbst für Last produziert bzw. welche Grundlast ohne Eure Anwendung da ist. Jenach Technology oder verwendeten Kompos (alà "ultimativeTreeviewKomponente", die die halbe DB in den Tree saugt) hat man schnell mal eine riesige Tabelle im Hintergrund geöffnet und erst später den gewollten Filter appliziert. (Frage von Event Reihenfolge, usw.) Soetwas fällt häufig nicht im Entwicklersystem auf, da dort die echten Datenmengen fehlen. Also vor Ort testen und Netzwerkmoni beobachten. Zitat:
Zitat:
>Ein< geschwätziger Fat Client plus ein paar Missgriffe in der anwendung selbst sind ja nicht schlimm, aber 100, .. ? |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Traffic und prozessorlast habe ich gemessen. Prozessorlast immer unter 2% und traffic wenige KB/s Bandbreite in den spitzen. Ich wünschte ja es wäre mehr! Er soll sich die Bandbreite und Rechenzeit nehmen...er tut es nur nicht. Habe die Ursache schon soweit eruiert das die Latenz das Problem ist. Leider ist FB auch besonders anfällig für schlechte Latenz weil viel über ping pongs läuft. Zitat:
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Sofern die existierende Lösung auf Firebird und im speziellen auf 2.5 basiert, dann wirf mal die Trace API an, um ein Gefühl dafür zu bekommen, was client-seitig so abgesetzt wird.
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Gibts Datenbanken die von natur aus weniger geschwätzig sind? |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Ist die 64Bit Variante (ja die soll ja auch noch langsamer sein....als die 32Bit Version) Ich weiß das FB geschwätzig ist... Wonach soll ich in dem Trace suchen? Wir kennen in etwa die Probleme mit dem Protokoll...(warum z.B. ein Prepare echt viel Zeit kosten kann.....&c.) Aber so eine DB die ein bisschen besonders wenig anfällig für latenz ist (wenige ping pongs) kennst du nicht? |
AW: WANTED: DB für schlechte Netzwerke
Also, die 2(!) Fat-Clients und der Webserver greifen im LAN (mit geringer Latenz) auf die Datenbank zu? Wenn ja, auf die Gefahr hin, dass ich mich wiederhole, aber da liegt mit ziemlicher Sicherheit die Spaßbremse in der Client-Anwendung und nicht im Remote-Protokoll. Was war nochmal dein ursprüngliches Problem? Einfach nur schlechte Performanz?
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Da FB unterschiedliche Ports unterstützt, würde ich es einmal mit einem versuchen, der normalerweise von einem SQL-Server benutzt wird. Vielleicht kann man Problem und Admin damit umgehen. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Ich teste es aber direct auf dem Server mit einem Fatclient...die sind nicht an während ich teste... Die Fatclients laufen absolut flüssig...überall...bei vielen Kunden...nur bei einem nicht. Bei besagtem Kunden gehen 3 von 4 pings verloren!!!! Deine Folgerung daraus :"An dem Netzwerk liegt es nicht sondern am Fatclient" .... OK ^^ |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Wenn Du dabei bist, kannst du ja auch mal named pipe connect versuchen (zumindest falls das angesagt ist unter fb)
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Aber da Du ja ohnehin mal eben das DB-System wechseln kannst, macht es auch nichts, wenn Du einem ausgewiesenen FB-Experten wie Thomas symbolisch an's Bein pinkelst. - Nun, vielleicht kommt bei Dir mit den Jahren zur Erfahrung auch noch besseres Benehmen hinzu, vielleicht. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Kennst du eine DB die damit zumindest besser als FB klar kommt? Wenn ja dann habe ich das in deinem Beiträgen überlösen. Ja das im kommerziellen Bereich. Delphi wäre als Hobby doch recht Teuer. Zitat:
Wir liefern aber nur in FB/Interbase/MSSQL/Oracle aus. (kaum einer braucht Oracle.....) Zitat:
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Was neo4a meint ist, dass es wenig klug wäre das DBMS zu wechseln, nur weil bei einem Kunden die zu erwartenen Mindestvoraussetzungen an ein Netzwerk nicht erfüllt sind. Wenn das Wechseln so einfach ist, werden die verwendeten DBMS auch nicht richtig unterstützt, d.h. es ist nicht für diese optimiert. den diese unterscheiden sich im Detail doch sehr, auch wenn sie im ersten Blick den Standard unterstützen. Ich würde an deiner Stelle vielleicht nur 2 DBMS unterstützen ( z.B. MSSQL, wenn Kunde bereit ist für das DBMS zu zahlen und FB, wenn es kostenlos sein soll), diese aber dann optimal ausnutzen. |
AW: WANTED: DB für schlechte Netzwerke
Als Vergleich würde ich neben MSSQL mal Interbase testen, da hier wohl keine Veränderungen im Code gemacht werden müßten.
Und ich neige dazu mal einen Test mit verschiedenen Datenzugriffskomponenten zu machen. Wenn kleine Datenpakete verlorengehen und große problemlos laufen, dann geht irgendeine Komponente im Netz zwischendurch schlafen. Entweder Ihr findet den Schuldigen durch geduldige Pingtest, oder Ihr baut schlicht eine Pingkomponente in Euer Programm ein, damit der Schlaf keine Chance hat. Und bei der kommerziellen Variante sehe ich das wie Markus. Grüße // Martin |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Deine restlichen Einlassungen lasse ich unkommentiert. @mkinzler: War meine Meinung wirklich so offensichtlich ;) Und wo doch MS-SQL in diesem Netzwerk rennt und sogar noch von der fraglichen FAT-APP supportet wird: Warum dann noch FB? Aber ich will mal nicht zu laut denken, sonst gibt's wieder Noten vom TE - und wer will das schon?! |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Nachtreten bringt auch nichts!
Bitte fangt hier keinen Schlagabtausch auf persönlicher Ebene an. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
In sofern hast du recht, das wir das Problem lösen könnten in dem wir die Logik weitestgehend in stored procedures legen würden. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Genau das passiert auch so...sogar unsere Händler sind der meinung das wir selbst für Backup,Sicherheit, &c. zuständig sind...nun...Backup während des Betriebs ist tatsächlich jetzt für alle plattformen möglich....man kann es sogar auf einer anderen Plattform und an einem Anderen Server wieder herstellen....so funktioniert es auch als Umzugskarton..... Hast du Erfahrungen was schlechte Netzwerke und verschiedene DBs angeht? |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Innere Eigenschaften wie optimales Routing (kleinster Preis vs. kürzester Weg) oder tatsächliche Kosten fehlen absichtlich. Mein Beileid zum Admin des Kunden. Eine Ping Fehlerrate von 75% als normal zu bezeichnen disqualifiziert ihn eigentlich vom Begriff des Administrators. Liebe Grüße, Valentin |
AW: WANTED: DB für schlechte Netzwerke
Puh, da ist was los. Ist man mal ein paar Stunden weg ...
@QuickAndDirty: Auf deine mehrfach gestellte Frage: Zitat:
Darum wünsch ich dir Alles Gute bei der Problem- und Lösungsfindung, die für dich und deine(n) Kunde(n) letztendlich zufriedenstellend ist. Und das meine ich nicht ironisch! :thumb: |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Dann ist dann eine sehr geringe Latenz ja ein Merkmal für ein sehr gutes, und gar keine Latenz bringt mir mein brutalst-mö... SCNR. |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Es wäre so schön wenn sich Leistungserschleichungen dieser Art umgehen lassen würden.... |
AW: WANTED: DB für schlechte Netzwerke
Zitat:
|
AW: WANTED: DB für schlechte Netzwerke
Zitat:
Probleme ohne Ende mit der Verbindung zum MS SQL Server. Ursache war: der "schlaue" Admin hat in den Server 2 Netzwerkkarten eingebaut. Die IP-Adressen waren im gleichen Segment. Dann hat er beide Netzwerkkarten mit dem gleichen Switch verbunden in der irrigen Annahme seine Netzwerkanbindung wäre jetzt 200MBit statt nur 100MBit. :wall: |
AW: WANTED: DB für schlechte Netzwerke
Und dazu noch ein dummer Switch, der die Loop nicht bemerkt
|
AW: WANTED: DB für schlechte Netzwerke
Moin,
hier noch mal einen kleinen Denkanstoß zum eigentlichen Thema. Wir hatten vor einiger Zeit mal ähnliche Konstellation und haben dann einfach auf Firbeird basierend einen minimale API realisiert, die nicht anderes ist als eine Stored procedure, der man den auszuführenden Befehl als Blob übergibt und die dann ggf sich daraus ergebende Resultsets in einem Blob zurückgibt. Hier der Quellcode der SP
Code:
Wie benutzt man die dann? Auch recht simpel, z.B.
create or alter procedure BRPAPI (
CMD blob sub_type 1 segment size 80) returns ( RES blob sub_type 1 segment size 80) as declare variable RESLINE blob sub_type 1 segment size 80; begin if (cmd starting with 'SELECT') then begin res=''; for execute statement :cmd into :resline do res=res||' '||resline; end else begin execute statement :cmd; res='EXECUTED'; end suspend; end
Code:
Die Antwortmenge wird durch das SQL einfach schon mal als CSV Format vorgegeben, damit müsste dann ggf der Client klar kommen.
select res from brpapi('SELECT ID||'';''||TXT FROM KUNDE')
Hier für Interessierte ein Protokoll aus dem TCPIPExpert Tool mit dem gesamten TCP/IP Traffic zu einer SQL Abfrage mit Übergabe der Ergebnismenge (Ausführung war hier mit isql.exe)
Code:
hier noch mal mit anderem SQL
## 18:59:59:136 Channel 1; DATA (Client -> Server): Length= 8
00 00 00 5B 00 00 00 02 [ ## 18:59:59:435 Channel 1; DATA (Client -> Server): Length= 124 00 00 00 3E 00 00 00 00 00 00 00 44 00 00 00 02 > D FF FF FF FF 00 00 00 03 00 00 00 3A 73 65 6C 65 :sele 63 74 20 72 65 73 20 66 72 6F 6D 20 62 72 70 61 ct res from brpa 70 69 28 27 53 45 4C 45 43 54 20 49 44 7C 7C 27 pi('SELECT ID||' 27 3B 27 27 7C 7C 54 58 54 20 46 52 4F 4D 20 4B ';''||TXT FROM K 55 4E 44 45 27 29 00 00 00 00 00 19 15 04 07 09 UNDE') 0B 0C 0D 0E 10 11 12 13 08 05 07 09 0B 0C 0D 0E 10 11 12 13 08 00 00 00 FF FF 80 00 ## 18:59:59:464 Channel 1; DATA (Server -> Client): Length= 156 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 5A 15 04 00 01 00 00 00 04 07 04 00 01 Z 00 00 00 09 04 00 01 00 00 00 0B 04 00 09 02 00 00 0C 04 00 01 00 00 00 0D 04 00 04 00 00 00 0E 04 00 08 00 00 00 10 03 00 52 45 53 11 06 00 42 RES B 52 50 41 50 49 12 06 00 53 59 53 44 42 41 13 03 RPAPI SYSDBA 00 52 45 53 08 05 07 04 00 00 00 00 00 01 00 00 RES 00 00 00 01 00 00 00 00 00 00 00 00 ## 18:59:59:466 Channel 1; DATA (Client -> Server): Length= 56 00 00 00 3F 00 00 00 03 00 00 00 01 00 00 00 00 ? 00 00 00 00 00 00 00 00 00 00 00 41 00 00 00 03 A 00 00 00 0C 05 02 04 00 02 00 09 00 07 00 FF 4C L 00 00 00 00 00 00 0A A8 ## 18:59:59:496 Channel 1; DATA (Server -> Client): Length= 68 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 01 00 00 00 00 B 00 00 00 33 00 00 00 00 00 00 00 42 00 00 00 64 3 B d 00 00 00 00 ## 18:59:59:503 Channel 1; DATA (Client -> Server): Length= 20 00 00 00 38 00 00 00 00 00 00 00 01 00 00 00 00 8 00 00 00 33 3 ## 18:59:59:530 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ## 18:59:59:532 Channel 1; DATA (Client -> Server): Length= 16 00 00 00 24 00 00 00 04 00 00 40 00 00 00 00 00 $ @ ## 18:59:59:562 Channel 1; DATA (Server -> Client): Length= 216 00 00 00 09 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 B6 A0 00 0D 0A 34 30 30 30 30 30 31 39 40000019 33 37 34 3B 42 61 72 0D 0A 34 30 30 30 30 30 31 374;Bar 4000001 39 34 30 38 3B 47 65 6D 65 69 6E 64 65 20 48 75 9408;Gemeinde Hu 64 65 0D 0A 34 30 30 30 30 30 31 39 36 32 31 3B de 40000019621; 57 53 0D 0A 34 30 30 30 30 30 31 39 38 30 38 3B WS 40000019808; 2D 0D 0A 34 30 30 30 30 30 32 30 36 39 33 3B 4B - 40000020693;K 61 72 73 74 65 6E 20 44 69 65 72 73 20 47 6D 62 arsten Diers Gmb 48 0D 0A 34 30 30 30 30 30 32 33 34 30 36 3B 46 H 40000023406;F 6C 6F 72 65 73 20 41 70 6F 74 68 65 6B 65 0D 0A lores Apotheke 34 30 30 30 30 30 32 39 37 35 34 3B 44 52 4B 20 40000029754;DRK 48 75 64 65 0D 0A 12 00 34 30 30 30 30 30 33 30 Hude 40000030 38 36 31 3B 5A 6F 72 62 61 73 00 00 00 00 00 01 861;Zorbas 00 00 00 00 00 00 00 00 ## 18:59:59:571 Channel 1; DATA (Client -> Server): Length= 36 00 00 00 27 00 00 00 04 00 00 00 5B 00 00 00 01 ' [ 00 00 00 43 00 00 00 03 00 00 00 01 00 00 00 5B C [ 00 00 00 01 ## 18:59:59:598 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00
Code:
und hier mal als Update statement
## 19:00:40:601 Channel 1; DATA (Client -> Server): Length= 144
00 00 00 5B 00 00 00 02 00 00 00 44 00 00 00 02 [ D 00 00 00 03 00 00 00 03 00 00 00 4F 73 65 6C 65 Osele 63 74 20 72 65 73 20 66 72 6F 6D 20 62 72 70 61 ct res from brpa 70 69 28 27 53 45 4C 45 43 54 20 49 44 7C 7C 27 pi('SELECT ID||' 27 3B 27 27 7C 7C 54 58 54 20 46 52 4F 4D 20 4B ';''||TXT FROM K 55 4E 44 45 20 57 48 45 52 45 20 49 44 3D 34 30 UNDE WHERE ID=40 30 30 30 30 32 30 36 39 33 27 29 00 00 00 00 19 000020693') 15 04 07 09 0B 0C 0D 0E 10 11 12 13 08 05 07 09 0B 0C 0D 0E 10 11 12 13 08 00 00 00 FF FF 80 00 ## 19:00:40:631 Channel 1; DATA (Server -> Client): Length= 156 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 5A 15 04 00 01 00 00 00 04 07 04 00 01 Z 00 00 00 09 04 00 01 00 00 00 0B 04 00 09 02 00 00 0C 04 00 01 00 00 00 0D 04 00 04 00 00 00 0E 04 00 08 00 00 00 10 03 00 52 45 53 11 06 00 42 RES B 52 50 41 50 49 12 06 00 53 59 53 44 42 41 13 03 RPAPI SYSDBA 00 52 45 53 08 05 07 04 00 00 00 00 00 01 00 00 RES 00 00 00 01 00 00 00 00 00 00 00 00 ## 19:00:40:633 Channel 1; DATA (Client -> Server): Length= 56 00 00 00 3F 00 00 00 03 00 00 00 01 00 00 00 00 ? 00 00 00 00 00 00 00 00 00 00 00 41 00 00 00 03 A 00 00 00 0C 05 02 04 00 02 00 09 00 07 00 FF 4C L 00 00 00 00 00 00 0A A8 ## 19:00:40:661 Channel 1; DATA (Server -> Client): Length= 68 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 01 00 00 00 00 B 00 00 00 3F 00 00 00 00 00 00 00 42 00 00 00 64 ? B d 00 00 00 00 ## 19:00:40:669 Channel 1; DATA (Client -> Server): Length= 20 00 00 00 38 00 00 00 00 00 00 00 01 00 00 00 00 8 00 00 00 3F ? ## 19:00:40:697 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ## 19:00:40:698 Channel 1; DATA (Client -> Server): Length= 16 00 00 00 24 00 00 00 04 00 00 40 00 00 00 00 00 $ @ ## 19:00:40:727 Channel 1; DATA (Server -> Client): Length= 68 00 00 00 09 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 24 02 00 0D 0A 1E 00 34 30 30 30 30 30 $ 400000 32 30 36 39 33 3B 4B 61 72 73 74 65 6E 20 44 69 20693;Karsten Di 65 72 73 20 47 6D 62 48 00 00 00 01 00 00 00 00 ers GmbH 00 00 00 00 ## 19:00:40:734 Channel 1; DATA (Client -> Server): Length= 16 00 00 00 27 00 00 00 04 00 00 00 5B 00 00 00 01 ' [ ## 19:00:40:735 Channel 1; DATA (Client -> Server): Length= 20 00 00 00 43 00 00 00 03 00 00 00 01 00 00 00 5B C [ 00 00 00 01 ## 19:00:40:760 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00
Code:
Du siehst das jeder Befehl ca. 10 Datenpaket generiert, 5 vom client zum Server und 5 vom Server zum Client.
## 19:01:49:811 Channel 1; DATA (Client -> Server): Length= 156
00 00 00 5B 00 00 00 02 00 00 00 44 00 00 00 02 [ D 00 00 00 03 00 00 00 03 00 00 00 5A 73 65 6C 65 Zsele 63 74 20 72 65 73 20 66 72 6F 6D 20 62 72 70 61 ct res from brpa 70 69 28 27 55 50 44 41 54 45 20 4B 55 4E 44 45 pi('UPDATE KUNDE 20 53 45 54 20 54 58 54 3D 27 27 4B 41 52 53 54 SET TXT=''KARST 45 4E 20 44 49 45 52 53 20 47 6D 62 48 27 27 20 EN DIERS GmbH'' 57 48 45 52 45 20 49 44 3D 34 30 30 30 30 30 32 WHERE ID=4000002 30 36 39 33 27 29 00 00 00 00 00 19 15 04 07 09 0693') 0B 0C 0D 0E 10 11 12 13 08 05 07 09 0B 0C 0D 0E 10 11 12 13 08 00 00 00 FF FF 80 00 ## 19:01:49:907 Channel 1; DATA (Server -> Client): Length= 156 00 00 00 09 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 5A 15 04 00 01 00 00 00 04 07 04 00 01 Z 00 00 00 09 04 00 01 00 00 00 0B 04 00 09 02 00 00 0C 04 00 01 00 00 00 0D 04 00 04 00 00 00 0E 04 00 08 00 00 00 10 03 00 52 45 53 11 06 00 42 RES B 52 50 41 50 49 12 06 00 53 59 53 44 42 41 13 03 RPAPI SYSDBA 00 52 45 53 08 05 07 04 00 00 00 00 00 01 00 00 RES 00 00 00 01 00 00 00 00 00 00 00 00 ## 19:01:49:908 Channel 1; DATA (Client -> Server): Length= 56 00 00 00 3F 00 00 00 03 00 00 00 01 00 00 00 00 ? 00 00 00 00 00 00 00 00 00 00 00 41 00 00 00 03 A 00 00 00 0C 05 02 04 00 02 00 09 00 07 00 FF 4C L 00 00 00 00 00 00 0A A8 ## 19:01:49:967 Channel 1; DATA (Server -> Client): Length= 68 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 01 00 00 00 00 B 00 00 00 80 00 00 00 00 00 00 00 42 00 00 00 64 B d 00 00 00 00 ## 19:01:49:975 Channel 1; DATA (Client -> Server): Length= 20 00 00 00 38 00 00 00 00 00 00 00 01 00 00 00 00 8 00 00 00 80 ## 19:01:50:042 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ## 19:01:50:044 Channel 1; DATA (Client -> Server): Length= 16 00 00 00 24 00 00 00 04 00 00 40 00 00 00 00 00 $ @ ## 19:01:50:087 Channel 1; DATA (Server -> Client): Length= 44 00 00 00 09 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0A 08 00 45 58 45 43 55 54 45 44 00 00 EXECUTED 00 00 00 01 00 00 00 00 00 00 00 00 ## 19:01:50:092 Channel 1; DATA (Client -> Server): Length= 36 00 00 00 27 00 00 00 04 00 00 00 5B 00 00 00 01 ' [ 00 00 00 43 00 00 00 03 00 00 00 01 00 00 00 5B C [ 00 00 00 01 ## 19:01:50:177 Channel 1; DATA (Server -> Client): Length= 32 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 Wenn du dir eine geeignete clientseitige API aufbaust, die dann eben mit der Serverapi klar kommt, dann hast du den Vorteil, auch aus langsamen Netzen alles rausholen zu können und verzichtest trotzdem nicht auf die ganzen Firebird Möglichkeiten. wenn du den ganzen Dataset schnickschnack mit im Grid editieren usw. haben willst, dann ist das ziemlich aufwändig, eine eigene Middleware auf der o.a. Technik aufzusetzen, aber das werden dir auch andere Datenbanken kaum schneller liefern können. Gruß Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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-2025 by Thomas Breitkreuz