Ich habe eine Spring Web Application mit Hibernate darauf. Ich bin fast mit der Entwicklung fertig und führe einen Stresstest durch, um herauszufinden, was passiert, wenn sich viele Benutzer gleichzeitig auf derselben Seite anmelden.Hibernate Sitzung/EntityManager ist bei Stresstest geschlossen
ich etwas falsch in meiner Hibernate-Konfiguration oder/und Code, weil ich diese Fehler erhalten getan haben muss:
formatedMessage : Session is closed!
Message : Session is closed!
Erreur : java.lang.IllegalStateException: EntityManager is closed
stacktrace : java.lang.IllegalStateException: EntityManager is closed
[...]
formatedMessage : EntityManager is closed
Message : EntityManager is closed
SQL Error: 0, SQLState: 55000
Ce statement a été fermé.
Erreur : org.hibernate.exception.GenericJDBCException: could not extract ResultSet
stacktrace : org.hibernate.exception.GenericJDBCException: could not extract ResultSet
[...]
Caused by: org.postgresql.util.PSQLException: Ce statement a été fermé.
Hier ist der Code:
public class Application
{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "application_seq_gen")
@SequenceGenerator(name = "application_seq_gen", sequenceName = "application_id_seq",initialValue = 1, allocationSize = 1)
private int id;
private String nom;
private Boolean autorise; //Autorise la validation automatique de l'application
private String domaineFonctionnel;
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="applicationMail")
@Column(name="mail")
private Set<String> listMail;
[...]
}
public ArrayList<Application> getListApplication() {
entityManager = entityManagerFactory.createEntityManager();
Session session = entityManager.unwrap(Session.class);
Criteria criteria = session.createCriteria(Application.class);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
ArrayList<Application> listApplication = new ArrayList<Application>();
listApplication.addAll(criteria.list());
entityManager.close();
return listApplication;
}
Jemand wissen, was das Problem hier ist, ?
Vielleicht haben Sie keine Verbindung mehr in Ihrer Datenbank wegen Verbindungslimit? – Rjiuk
Warum verwenden Sie auch EntityManagerFactory? Hast du einen guten Grund? Falls nicht, versuchen Sie es mit @PersistanceContext, um Ihre Probleme zu lösen. – Rjiuk
Ich werde auf Ihre Antworten überprüfen und ich komme später zurück, danke für Kommentare;) –