Hallo allerseits
Ich bin etwas ratlos ...
Habe eine Web-Anwendung mit JSF 2.x impelementiert und das funktioniert. Für die Persistierung wird JPA mit Hibernate eingesetzt, als Db wird PostgreSQL 9.x verwendet. Allerdings erlebe ich immer wieder, dass die Verbindung zur Datenbank nicht aufgebaut werden kann!
Die Anwendung läuft auf einem separaten Server, auf dem sowohl Tomcat 7.0.16 (Servlet-Container) als auch PostgreSQL 9.x installiert sind. Wenn Tomcat neu gestartet wird, funktioniert es einwandfrei und ich kann problemlos alle Aktionen ausführen, die in der Anwendung verfügbar sind. Vergeht aber eine gewissen Zeit (kann nicht exakt sagen, wie lange es gehen muss), werde ich schon beim Versuch, mich anzumelden, mit folgender Meldung verabschiedet:
[XML]
javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
at ch.hslu.suj.rooms.dao.PersonDAO.getAll(PersonDAO.java:141)
[/XML]
Die Methode getAll sieht wie folgt aus:
Wenn ich Tomcat wieder neu starte, funktioniert alles einwandfrei.
Bevor ich da weiter suche: hat jemand solche Erfahrungen schon gemacht und woran könnte es liegen? Könnte es sein, dass die Verbindung zur Db (über PersistenceUnit) nach einer Zeit abgebaut wird (aus Sicherheitsgründen oder was auch immer)? Oder, könnte dies mit Konfigurationen des Servers zu tun haben (dieser wird nicht von mir administriert)?
Danke für jeden Tipp.
Ich bin etwas ratlos ...
Habe eine Web-Anwendung mit JSF 2.x impelementiert und das funktioniert. Für die Persistierung wird JPA mit Hibernate eingesetzt, als Db wird PostgreSQL 9.x verwendet. Allerdings erlebe ich immer wieder, dass die Verbindung zur Datenbank nicht aufgebaut werden kann!
Die Anwendung läuft auf einem separaten Server, auf dem sowohl Tomcat 7.0.16 (Servlet-Container) als auch PostgreSQL 9.x installiert sind. Wenn Tomcat neu gestartet wird, funktioniert es einwandfrei und ich kann problemlos alle Aktionen ausführen, die in der Anwendung verfügbar sind. Vergeht aber eine gewissen Zeit (kann nicht exakt sagen, wie lange es gehen muss), werde ich schon beim Versuch, mich anzumelden, mit folgender Meldung verabschiedet:
[XML]
javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
at ch.hslu.suj.rooms.dao.PersonDAO.getAll(PersonDAO.java:141)
[/XML]
Die Methode getAll sieht wie folgt aus:
Java:
public static List<Person> getAll() throws Exception {
List<Person> userList = null;
EntityManager em = null;
try {
em = HibernateUtil.getEntityManagerFactory().createEntityManager();
TypedQuery<Person> q = em.createQuery(
"SELECT u FROM Person u ORDER BY u.id", Person.class);
userList = q.getResultList(); // Zeile 141
} catch (Exception e) {
logger.error("Fehler beim Holen aller User-Objekte: ", e);
throw e;
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
if (userList != null) {
return userList;
} else {
return new ArrayList<Person>();
}
}
Wenn ich Tomcat wieder neu starte, funktioniert alles einwandfrei.
Bevor ich da weiter suche: hat jemand solche Erfahrungen schon gemacht und woran könnte es liegen? Könnte es sein, dass die Verbindung zur Db (über PersistenceUnit) nach einer Zeit abgebaut wird (aus Sicherheitsgründen oder was auch immer)? Oder, könnte dies mit Konfigurationen des Servers zu tun haben (dieser wird nicht von mir administriert)?
Danke für jeden Tipp.
Zuletzt bearbeitet: