Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Mehrere DB-Verbindungen aus Dienst überfordern Firebird

  Alt 6. Mär 2009, 14:08
@neo4All:

Es sind definitiv keine Trigger oder SP's involviert !!!

@hoika:
Die BDE Einstellungen stehen auf "Shared No autocimmit".
StartTransaction, Commit, Rollback verwende ich nur expilzit innerhalb der User-App bei längeren Operationen.

Um etwas Licht ins dunkle zu bringen:

Ich habe eine Datenbank, wo die "wirklichen" Daten der Applikation enthalten sind,
zusätzlich gibt es in dieser DB noch eine Tabelle "SQL_TRANSFER" in der ich
jedes Änderungsstatement(Insert, Update, Delete) speichere(zur Syncronisierung mit einer DB im RZ).
Normalegröße: 2MB - 40 MB.

Dann gibt es eine 2te Datenbank die Daten aus einem Kassensystem via Exportfile importiert,
da steht dann jeder "Sch.." Bon, Artikel und Tastendruck eines Kellners drin.
Der Import läuft innerhalb eines Dienstes(innerhalb eines Timers, wenn Exportdatei vorhanden).
Der Dienst hat eine Verbindung zu DB1 und zu DB2,
um in DB2 die Kassendaten zu schreiben und in DB1 die "SQLs zu locken".

Ein Thread innerhalb des Dienstes syncronisiert dann via Internet die SQLS mit einem Server im RZ.


Konflikte könnte es geben:

- Wenn die Exportdatei importiert wird und eine User die GUI App nutzt, schreiben beide(Dienst und App)
in "SQL_Transfer"(App nur schreiben und Dienst schreiben und Lesen)

- Wenn der Dienst fertig mit import ist schreibt er 1 SQL zur Änderung in in DB1(Update auf den Umsatz eines Tages),
theoretisch könnte ein User mit der Gui auch gerade diesen Tag bearbeiten.

Ich weiß eine sehr seltsame Konstruktion, aber das System ist seit Jahren gewachsen.
Früher hatte ich die SQL-Syncronisation auch einfach via File-Transfer an den Server gemacht(komplette DB) und
der Server hat das ganze dann mit BatchMove gemerged.
Das geht jetzt aber nicht mehr, weil die Kassendaten auch in RZ sollen und da reden wir von Daten zwischen 200 MB bis 1 GB.
Deshalb die Idee mit dem SQL locken und transferieren, aber seitdem gibt es halt die bEschriebenen Probleme aber auch nur sporadisch und nicht in allen Läden.

Hoffe Ablauf ist klar geworden,

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat