Hallo,
aus der Meldung bekommst du nicht raus,
wer getrennt hat.
Sie besagt lediglich, dass das aktuelle
Handle der Connection nicht mehr funktioniert.
Der Server checkt (in einer einstellbaren Zeit), ob alle Clients noch am Leben sind,
deshalb heisst das auch treffend
staying alive Ping.
(Mit Ping ist nicht wörtlich der Internet-Ping gemeint.)
Antwortet der Client nicht, probiert das
FB noch 2mal,
sonst wird die Verbindung getrennt.
Zeos macht da gar nichts (IBDac hatte wohl was dazu drin).
Du musst einfach damit rechnen, dass die Verbindung wegsein kann.
Lösung1:
DummyPacketInterval in der Firebird.conf bearbeiten
Aber les dir dazu die Infos genau durch.
Lösung 2:
Jeder Befehl baut eine neue Verbindung zum Server auf und führt dann den Befehl aus,
und löst die Verbindung wieder (sowas ähnliches wie ConnectionPooling in .Net).
Das verlangsamt natürlich das Programm, sollte also nur als Not-Option bei Problemrechnern angeknipst werden.
Lösung 3:
MiddleWare bauen, dort kann aber auch Lösung 2 mit eingebaut werden.
Heiko