Bei meinem Streßtest haben sich am Ende durchschnittlich über 80% der Callbacks verabschiedet (reagierten einfach nicht mehr), bei Vielen kamen nichtmal alle Messages an.
Da die (internen) DBXCommands "standardmäßig" nur am Anfang erstellt werden, bei der ersten Benutzung, bekommen sie es nicht mit, wenn die SQLConnection neu verbunden wurde.
Für die DBXConnection enthalten sie dann noch die alten Objektzeiger, zur alten und nicht mehr existierenden DBXConnection ... die Folge sind Exceptions.
Ein Rücksetzen ist nicht vorgesehn. Meine einzige Lösung, für die automatisch generierten Klientklassen > das ganze Datenmodul freigeben und neu erstellen.
Bricht die Verbindung zusammen (z.B. Netzwerkproblem) dann bekommt das der Server und der Klient nicht mit.
Die Connection Der Channel bleibt im Server erhalten > Speicherleck.
Werden dabei registrierte Callbackverbindungen getrennt, ohne daß sie sich ordentlich abmelden konnten, bleiben sie im Server zurück.
Ein Runterfahren des Servers kannst'e dann vergessen, da er dabei oftmals hängen bleibt.
Das Neustarten des Servers kannst'e vergessen, ohne daß danach alle Klienten ebenfalls neu gestartet werden müssen. (genauso, wie bei einer getennten Verbindung)
Um die Verbindungsprobleme zu minimieren: (Lösung für die automatischen Klassen)
- keine Heavyweight Callbacks (die kleinen Callbacks, wärend eines Funktionsaufrufes ausgeschlossen)
- die Verbindung nach jedem Funktionsaufruf trennen (
oh, geht ja nicht, ohne das Datenmodul neu zu machen)
- bei einem Verbindungsproblem das Datenmodul zerstören und ein Neues erstellen
Und alleine die 3 Punkte wiedersprechen
IMHO einem professionellen Einsatz.
Durch eine standardmäßig auf
Localhost festgelegte Verbindung, "lokale" Tests auf unserem Server und durch eine mangelnde Dokumentation hatten wir uns einige nette Problemchen eingehandelt, welche sich erst im realen Einsatz (beim Kunden) zeigten ... das kommt super an
Wir haben es jetzt seit knapp einem Jahr im Einsatz und immernoch nicht alle Probleme beseitigt.
Zum Glück wurden inzwischen einige Dinge gelöst (mehr/neue Infomationen (Bücher) sind im Umlauf, aber nicht die von Emba).