Hallo, wir haben IB6 auf einem Linuxserver SUSE 7.3. und die IBX-Komponenten 4,52.
Die Software soll im Netzwerk für mehrere Benutzer laufen. Und da liegt mein Problem. Als Einzelplatz localinterbase und Einzelplatz auf Linuxserver funktioniert alles einwandfrei, sobald aber ein anderer Benutzer im netzt die Software verwendet bekomme ich Deadlock-Meldungen.
Nun ist das mein erstes Interbase -Projekt (bisher nur lokale Anwendungen unter Paradox) und ich kann in der Literatur kein konkretes Beispiel finden.
Hier mal ein Ausschnitt aus dem verwendeten Quelltext:
Verwendet wird ein Datenmodul vorauf die TIBDatabasekomponente und die TIBTransactionskomponente liegt. Die Transaktionskomponente hat keine weiteren Einstellungen (ich habe auch schon alle versucht - Schnappschuß u.s.w brachte aber auch keinen Erfolg). Auf dieses Datenmodul greifen alle Anderen Formulare mit Ihren TIBDataSet-Komponenten zu. Der CacheUpdate steht auf True. Beim öffnen der Formulare werden die TIBDataSet mit OPEN geöffnet. Und beim Schliessen der Formulare werden die TIBDataSet mit
TIBDataSet.Database.ApplyUpdates(TIBDataSet)geupda tet und mit TIBDataSet.Close geschlossen.
Hier kommt dann die Deadlockmeldung bzw. lock-konflict.
In der Literatur steht was von S-Lock und X-Lock aber wie setzte ich dies in Delphi um. Irgendwie sitze ich nun schon recht lange an diesem Problem und bekomme es nicht geregelt.
mfg Kai Müller
Die Software soll im Netzwerk für mehrere Benutzer laufen. Und da liegt mein Problem. Als Einzelplatz localinterbase und Einzelplatz auf Linuxserver funktioniert alles einwandfrei, sobald aber ein anderer Benutzer im netzt die Software verwendet bekomme ich Deadlock-Meldungen.
Nun ist das mein erstes Interbase -Projekt (bisher nur lokale Anwendungen unter Paradox) und ich kann in der Literatur kein konkretes Beispiel finden.
Hier mal ein Ausschnitt aus dem verwendeten Quelltext:
Verwendet wird ein Datenmodul vorauf die TIBDatabasekomponente und die TIBTransactionskomponente liegt. Die Transaktionskomponente hat keine weiteren Einstellungen (ich habe auch schon alle versucht - Schnappschuß u.s.w brachte aber auch keinen Erfolg). Auf dieses Datenmodul greifen alle Anderen Formulare mit Ihren TIBDataSet-Komponenten zu. Der CacheUpdate steht auf True. Beim öffnen der Formulare werden die TIBDataSet mit OPEN geöffnet. Und beim Schliessen der Formulare werden die TIBDataSet mit
TIBDataSet.Database.ApplyUpdates(TIBDataSet)geupda tet und mit TIBDataSet.Close geschlossen.
Hier kommt dann die Deadlockmeldung bzw. lock-konflict.
In der Literatur steht was von S-Lock und X-Lock aber wie setzte ich dies in Delphi um. Irgendwie sitze ich nun schon recht lange an diesem Problem und bekomme es nicht geregelt.
mfg Kai Müller
Comment