Moin Forum,
wir haben immer noch ein Problem mit einem Projekt; die Anwendung friert ab und zu ein. Seltsamerweise scheint das nur zu passieren wenn niemand mehr an dem Programm arbeitet.
Man arbeitet von 6:00Uhr bis 15:00Uhr, das Einfrieren passierte mal um 16:15Uhr, gestern zum Beispiel abends um 19:46Uhr.
Zur Anwendung: Auf dem PC läuft ein Firebird Server, die Anwendung läuft auf dem gleichen PC. Im Mainthread der Anwendung wird über Zeos Komponenten auf die Firebird Datenbank zugegriffen. Im Hintergrund laufen in dieser Anwendung zwei weitere Threads, einer steuert den Zugriff auf eine SPS, der andere greift ebenfalls über (privat deklarierte) Zeos Komponenten auf die Firebird Datenbank zu.
Jetzt habe ich mal ein kleines Überwachungsprogrämmchen geschrieben und auf den PC kopiert. Unsere Hauptanwendung schickt per Findwindow und Postmessage Botschaften an dieses kleine Überwachungsprogramm, so dass wir sehen können wann welche Prozedur bzw. Funktion aufgerufen oder beendet wird.
Und wenn die Anwendung eingefroren ist, kann man folgendes sehen:
- Die beiden Threads im Hintergrund laufen noch und bearbeiten alle Anforderungen
- Im Mainthread ist eine zyklisch gestartete Prozedur gestartet worden, alle von dort aus gestarteten Prozeduren wurden durchlaufen, aber scheinbar wird diese Prozedur nicht beendet. Nach dem letzten Eintrag passiert dort aber nichts mehr, außer daß einem Integer noch ein Wert zugeweisen wird und anschliessend die Botschaft losgeschickt wird daß die Prozedur beendet wurde.
Ich hoffe mich verständlich ausgedrückt zu haben und ganz besonders darauf daß jemand weiterhelfen kann.
Gruß Oliver
_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...