Andras Hundrieser: Verbindungsabbrüche werden nicht geloggt

Hi @ll,

ich Administriere eine Anwendung die einen Webzugang via Tomcat bereitstellt. Wir haben mit der Applikation an 2Tagen im Monat Probleme (Verbindungsabbrüche) leider werden die Abbrüche nirgends mitgeloggt.

-Wie bringe ich Tomcat dazu Timeouts mitzuloggen ? z.B. wegen Sessiontimeout Verbindung zu 193.47.32.0 geschlossen.

Die Architektur sieht folgendermaßen aus:

Browser --html--> Tomcat---xml--->Windowsapplication---SQL-->DB (Oracle)

Zwischen dem Browser und Tomcat ist meistens noch ein Autentifizierungs Proxy geschaltet der nach ca.3min die MEldung präsentiert :"Sie verlassen die gesicherte Verbindung". Erst wenn sich der Benutzer hier erneut authentifiziert kann die Seite wieder aufgerufen werden und erneut eine Abfrage "zusammengeklickt" werden.

Wenn der User die Meldung erhält das die Verbindung unterbrochen ist sehe ich das die Abfrage noch auf der Oracle DB läuft ?!?!?!

  1. Zugegebener Maßen hab ich nicht genau verstanden, was dein Problem ist, aber wenn es um Verbinungsabbrüche geht fallen mir gleich connection_aborted() und register_shutdown_function() ein. Vielleicht hilft dir folgendes ja weiter: http://selfphp.info/funktionsreferenz/sonstige_funktionen/connection_aborted.php

    1. Hi Raoul,
      vielen Dank für deine Antwort. Leider habe ich keinen Einfluss auf den Sorcecode des Herstellers. Dieser Code ist auch nicht in php sonder in JAVA geschrieben.

      Mein Problem ist das ich nicht weiß welche Komponente die Verbindung trennt obwohl die Abfrage in der DB noch nicht zu ende gelaufen ist.

      Ablauf:

      Client (Browser) klickt Daten zusammen. Diese werden an Tomcat gesendet.

      Tomcat baut aus den Daten XML Abfragen zusammen un sendet die Daten an eine Windows.exe

      Aus den XML Daten macht die exe SQL-Statementes die zur Datenbank gesendet werden.

      Im Normalfall werden die Daten von der DB zur exe zurückgeschickt.

      Die exe baut daraus wieder XML und sendet sie an Tomcat.

      Tomcat wandelt XML in HTTP und gibt die Daten an den Client (Browser).

      Leider fuktioniert das ganze nur wenn die DB performant genug ist. Dauert die DB Abfrage länger als 2-3 Minuten wird dem Client angezeigt, dass die Session geschlossen wurde und er muss sich erneut beim  Tomcat anmelden und die Daten die er braucht müssen erneut zusammenclicken werden.
      Ich kann aber in der DB sehen, das der Abfragejob noch läuft während der Client (Browser) die Meldung bekommt.

      Mein Problem ist das ich in keinem Logfile etwas über den Verbindungsabbruch finde! nicht im Tomcatlog noch im DB-log (Trace) oder in der windows.exe.

      Vielleicht gibt es einen Schalter bei Tomcat der mir das Mitloggen von Verbindungsabbrüchen wegen Timeouts einschaltet ?

      Existieren Heardbeats zwischen Tomcat und Browser oder zwischen Tomcat und der Windows.exe ?

      Wie bekomme ich die Komponete herraus die die Verbindung kappt/schließt ???

      Vielen Dank