Qohelet: Seite läd nach Session-Timeout "unendlich" lange

Beitrag lesen

Hallo!

Ich habe ein JSP-Webprojekt, bei dem ich im Hintergrund via JDBC und Hibernate immer wieder Daten aus einer Datenbank hole.

Jetzt ist das Problem: Nach einer gewissen Zeit Abwesenheit, ich denke 30 Minuten führt ein Klick auf einen Button (der leitet nach einer kurzen JS-Überprüfung via ~~~javascript

window.location.href = 'Material.jsp?auswahl=Voriges&Kennnummer=103&position=95';

Firebug meldet keinen JS-Fehler, der Apache Tomcat 7 schreibt keine Error in die Logs. Ich muss die Seite mittels F5 aktualisieren oder oben die URL neu bestätigen, dann will wieder alles. Genau das möchte ich umgehen.  
  
Datenbankverbindung und gecachte Tabellen speichere ich in Java-Beans mit scope="Session". Damit es kein Timeout gibt, solange ein Benutzer angemeldet ist, führe ich via Ajax immer wieder folgende Anfrage an den Server aus:  
  
~~~javascript
  
self.setInterval(function() {  
                    nachhausetelefonieren('<%=session.getId()%>');  
                }, 60000);  

Auf der JSP-Seite dahinter verbirgt sich ein Scriptlet, das einfach einmal "Hallo" zum MSSQL-Server sagt. Ich vermute, dass Hibernate vielleicht der Übeltäter ist und deswegen plötzlich alles stockt:

  
<%@page import="datenbank.Basisverbindung"%>  
<%@page import="java.sql.SQLException"%>  
<%@page import="java.sql.ResultSet"%>  
<%@page import="java.sql.Statement"%>  
<%@page import="java.sql.Connection"%>  
<%@page import="java.util.Date"%>  
<%@page import="java.util.Set"%>  
<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<jsp:useBean class="datenbank.Basisverbindung" id="basis" scope="session"/>  
<jsp:useBean class="datenbankbohnen.Persistenzen" id="persi" scope="session"/>  
<jsp:useBean class="mgmt.Sessioncontainer" id="sess" scope="application"/>  
<%  
    out.println("Sessions angemeldet: " + sess.getSessions().size());  
    out.println("Session ist noch "+session.getMaxInactiveInterval()/60+" Minuten gültig");  
    Connection c=null;  
    Statement s=null;  
    ResultSet rs=null;  
  
    try {  
        c = basis.getConnection();  
        s = c.createStatement();  
        rs = s.executeQuery("SELECT 1");  
  
        if (!c.isClosed()) {  
            out.println("Verbunden");  
            if (rs.next()) {  
                out.write((rs.getInt(1) == 1)?" - und funktioniert":" - funktioniert aber nicht");  
  
            }  
        } else {  
            out.println("Nicht verbunden");  
        }  
  
    } catch (SQLException sqlx) {  
        out.println(sqlx.getMessage());  
    }  
    finally{  
    Basisverbindung.trenne(rs, s, c);  
    }  
  
    HttpSession tsession = request.getSession();  
  
    if (tsession.isNew()) {  
        out.println("Eine neue Session");  
    } else {  
        out.println("Session (hoffentlich) aktualisiet");  
    }  
  
  
%>  

Oder weiß einer von euch, woran das liegt, dass die Seite auf manuellem Wege aktualisiert werden MUSS?
Danke!