Session plötzlich closed?

mario87b

Aktives Mitglied
Hallo.

Ich habe hier ein komisches Problem und komm nicht weiter. Nutze TomCat 7, JSF2.2, JDK7 und Hibernate 3.6

Ich habe mittlerweile eine kleine Anwendung extra zur Fehlersuche gebaut, hier die wichtigstens Stellen.

Ersteinmal ein helper für die Hibernate GEschcihte - so wie ich es gelernt habe:
Code:
public class FileServiceHelper {
final static Logger logger = LogManager.getLogger();
private Session session = null;
    
    public FileServiceHelper () {
        logger.entry();
        this.session = HibernateUtil.getSessionFactory().getCurrentSession();
        logger.info("new Hibernate Session: " + session.isOpen());
    }



public List getAllActivatedShare() {
        List<Share> shares; 
        
        logger.info("Abfrage aller aktiven Shares...");
        session.beginTransaction();
        Query q = session.createQuery("from Share as s where s.isActive=true order by s.bezeichnung");
        shares = (List<Share>)q.list();
        logger.info("...done");
              
        return shares;
    }


public void updateDb () {
        org.hibernate.Transaction tx = session.beginTransaction();
        tx.commit();
        logger.info("tx.commit");
        logger.info("Hibernate Session: " + session.isOpen());
    }


public Session getSession() {
        return session;
    }

    public void setSession(Session session) {
        this.session = session;
    }
}

Dann eine Bean.

Code:
/**
 * ManagedBean zur Hauptseite des Admins.
 * 
 * Die Bean ist viewScope. Man beachte das Package ist javax.faces.view nicht javax.faces.bean
 * 
 */
@Named
//@javax.enterprise.context.SessionScoped
@javax.faces.view.ViewScoped
public class AdminController implements java.io.Serializable {

    final Logger logger = LogManager.getLogger();
    
    private final FileServiceHelper helper;
    private DataModel shares;
    
    private int share_count;
    
    /**
     * Creates a new instance of AdminController
     */
    public AdminController () {
        logger.entry();
        helper = new FileServiceHelper ();
     }


public DataModel getShares() {
        if (shares == null) {
            shares = new ListDataModel (helper.getAllActivatedShare() );
            share_count = shares.getRowCount();
            logger.info( share_count + " Shares");
        }
        
      return shares;
    }


@PreDestroy
    public void disConnect () {
        if ( helper.getSession().isConnected() ) {
            helper.updateDb();
        }
    }
}

Diese Fehlersuchanwendung hat zwei JSF Seiten die über eigene Beans Daten holen und anzeigen. Via Links springe ich nun von der einen Seite auf die anderen - immer hin und her.

Link auf Seite A
Code:
/faces/protected/fileServiceAdmin.xhtml?faces-redirect=true

Link auf Seite B
Code:
/faces/protected/newShareAdmin.xhtml?faces-redirect=true

Das holen der session funktioniert soweit einwandfrei bis dann plötzlich die session zu ist - Log File ganz unten. Dabei ist das Ereignis willkürlich mal nach zweimal hin und her, mal nach 10x hin und her.

Hab das Ganze auf zwei separaten Umgebung versucht (Entwicklerrechner mit lokalem Server und Produktivumgebung). Passiert auf beiden, muss also an der Anwendung liegen, ich seh aber leider den Fehler nicht. Google gibt mir nur Ratschläge in Richtung Hibernate Connection, aber das sieht doch alles ok aus, oder?



Code:
12:09:10 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:10 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:10 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:10 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:15 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:19 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:19 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:19 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:19 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:21 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:23 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:23 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:23 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:23 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:24 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:25 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:25 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:25 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:25 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:26 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:28 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:28 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:28 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:28 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:29 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:29 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:29 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:29 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:29 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:30 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:31 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:31 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:31 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:31 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:32 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:33 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:33 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:33 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:33 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:33 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:34 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:34 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:34 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:34 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:35 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:36 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:36 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:36 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:36 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:36 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:37 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:37 getAllActivatedShare INFO  fileservice.FileServiceHelper - Abfrage aller aktiven Shares...
12:09:37 getAllActivatedShare INFO  fileservice.FileServiceHelper - ...done
12:09:37 getShares INFO  fileservice.controller.AdminController - 2 Shares
12:09:38 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: true
12:09:38 <init> INFO  fileservice.FileServiceHelper - new Hibernate Session: false
 

Ähnliche Java Themen

Neue Themen


Oben