Announcement

Collapse
No announcement yet.

Zugriffsverletzung in gds32.dll

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriffsverletzung in gds32.dll

    Hallo,
    <P>
    Ich habe ein Problem mit der gds32.dll
    <P>
    Zur Beschreibung meines Programmes sind zwei Sequenzdiagramme als JPEG-Bilder unter:
    <P>
    www.qutronic.de/MsgRcv.jpg <P>
    wo ich glegentlich folgende Meldung in meinem logfile finde:
    11:48:25-E: Exception in TDDb.InsertKeyMsg:Zugriffsverletzung bei Adresse 4053D17A in Modul 'gds32.dll'. Lesen von Adresse 00000050
    <P>
    und
    <P>
    www.qutronic.de/MsgProcessing.jpg
    <P>
    wo ich glegentlich folgende Meldung in meinem logfile finde:
    12:57:04-E: Exception in TDDb.TlgStreamToDb:Zugriffsverletzung bei Adresse 4053D17A in Modul 'gds32.dll'. Lesen von Adresse 00000024
    <P>
    hinterlegt. Der Ort des Geschehens ist rot umrandet.
    Das Programm arbeitet in einem eigenständigen Thread, da es später als NT-Dienst eingesetzt werden soll. Es empfängt UDP-Nachrichten, wertet diese aus und trägt das Ergebnis der Auswertung in einer Interbase Datenbank ein.
    Einträge in die Datenbank finden zu asynchronen Zeitpunkten statt.
    <P>
    1. Für den Empfang der UDP-Nachrichten läuft ein separater Thread der mit dem Empfang einer Nachricht die OnUdpRcv Methode des Arbeitsthreads aufruft. Zwecks späterer Diagnosemöglichkeiten wird an dieser Stelle die UDP-Nachricht als BLOB in die Datenbank geschrieben. Anschließend wird die Nachricht „vorverdaut“ in einer EmpfangsQueue abgelegt und ein Windows Event ausgelöst. <P>
    2. Das unter 1. ausgelöste Event wird in der Execute Methode meines Workerthreads via WaitForMultipleObjects erkannt, woraufhin die vorverdaute Nachricht analysiert und das Ergebnis der Analyse in die Datenbank geschrieben wird.
    <P>
    Auf verschiedenen Hinweise in der Borland Newsgroup habe ich bereits folgende Maßnahmen getroffen:
    <P>
    - Die verwendeten IBX Komponenten werden zur Laufzeit mit Create inherhalb der Execute Methode instanziert, also im Kontext des Workerthreads. <P>
    - Die Verbindung zur Datenbank wird Remote aufgebaut : Server: c:\... <P>
    - Der Zugriff auf die IBX-Instanzen ist durch TCriticalSection geschützt. <P>
    <P>

    Wenn ich den Aufruf von “TDDb.TlgStreamToDb” unterbinde habe ich kein Problem mehr mit der gds32.dll !
    <P>
    Was mache ich falsch?
    <P>
    Besten Dank für Euere Hilfe im Voraus
    <P>
    Rainer
Working...
X