Timeout vom Router verhindern
-
hi,
ich habe eine db anwendung geschrieben, die es ermöglicht über tcp/ip auf die einzelnen db´s zu zugreifen. das funtkioniert auch wunderbar bis ich mir einen router zugelegt habe.
jetzt wird nach einer bestimmten zeit, wenn ich mit einer db im netz verbunden bin und nichts mache also die software ruhen lasse, wird die verbindung zur db beendet und es gibt eine fehlermeldung.
ich habe gesehen das es an der idl time meines routers liegt. wenn ich diese hochsetze auf 10 min würde rst dann die verbindung gekappt. jetzt habe versucht das ganze folgendermaßen zu lösen.
ich habe in die anwendung eine funktion integriert, die alle 12 sec. einen sql string zum server sendet. leider verhindert es die beendigung der verbindung auch nicht. wie könnte ich das lösen? werden hier vielleicht verschiedene kanäle genutzt?
danke!
-
keiner schrieb:
jetzt wird nach einer bestimmten zeit, wenn ich mit einer db im netz verbunden bin und nichts mache also die software ruhen lasse, wird die verbindung zur db beendet und es gibt eine fehlermeldung.
Das ist ja wohl nur ein Nebeneffekt der Tatsache, dass der Router die DSL-Verbindung beendet hat.
Mit den Keep-Alive-Anfragen bist du schon auf dem richtigen Weg, eigentlich sollte das funktionieren.
Evtl. hilft es ja, den Server eine Antwort schicken zu lassen. Am einfachsten wäre das wohl, wenn du statt deines eigenen Strings ein Standard-Ping sendest.
-
hi,
eigentlich wird ein eintrag in die db gesetzt ein timestamp. das sollte eigentlich ja reichen. denn wie macht dies der internet explorer? das prnzip sollte ähnlich sein.
weiterhin habe ich ein abfrage drin welcher benutzer an der db angemeldet ist. dann kriege ich einen wert zurück. das wäre die antwort vom server.
-
Aufrufe per z.B. per IE verhindern die Verbindungstrennung?
Wenn nicht, dann dürfte das Problem wohl allein bei deinem Router liegen. Warum deaktivierst du die Idle-Funktion nicht einfach komplett oder setzt sie auf einen Wert grösser 24h (T-Offline Zwangstrennung)?
Ansonsten: versuch's halt mal mit dem Ping.
-
hi,
vielleicht hätte ich erwähnen sollen, dass die software irgendwann mal verkauft werden soll, so dass ich die routereinstellungen beim kunden nicht verändern kann bzw. verändern möchte.
mit dem ie meinte ich das deiser ja auch irgendwie so arbeiten muss. wenn ich über den ie eine seite aufrufe oder diesen minutenlang nicht nutze und dann eine andere seite aufrufen geht das ja auch und ich bekomme keine fehlermeldung. an t-online sollte es nicht liegen. denk ich....
ich werde das mit dem ping aber mal probieren.
-
*g*
Wenn du den IE ruhen läßt lange und du dann wieder surfst.
Schickt der IE ein frage an den Router, mit der Adresse wohin du surfen willst.Der Router geht dann wieder online und schickt die anfrage weiter.
Der IE macht nix.. Der schickt keine Ping oder sonst was.Wie Jansen dir schon sagte ist schon 99%ig richtig.
Schick ping inst internet...du kannst ja die adresse/ip von dem DB-Server anpingen und du bleibst ja online..
Jansen hat dein Problem schon gelöst....
-
Vielleicht liegt das Problem einfach an der Verzögerungzeit, bis der Router die DSL-Verbindung wieder aufgebaut und Windows sie auch wieder erkannt hat. Ggf. hilft es ja, in deine Abfrage eine Timeout-Funktionalität zu integrieren. Also z.B. 5 oder 10 Sekunden lang die Fehlermeldungen intern abzufangen und weiter zu versuchen, die Verbindung herzustellen, und dann erst den User über den Fehlschlag zu informieren.
So wie's Browser in so einem Fall halt auch machen. Dass Netzwerkverbindungen nunmal nicht absolut zuverlässig sind musst du bei deinem Programmentwurf unbedingt berücksichtigen.