私は、休止状態のSpring Webアプリケーションを持っています。私は開発をほぼ完了しました。ユーザーが同時に同じページに接続した場合に何が起きるかを調べるためにいくつかのストレステストを実行しています。ストレステストでHibernate Session/EntityManagerが閉じられる
私はこれらのエラーを取得するので、私は私のHibernate設定または/およびコードに間違った何かを行っている必要があります。ここでは
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é.
はコードです:
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;
}
誰かが問題がここにあるものを知っています?
接続制限のためにあなたのdatabseで接続が切れている可能性がありますか? – Rjiuk
また、なぜEntityManagerFactoryを使用していますか?正当な理由はありますか?そうでない場合は、@ PersistanceContextを使って問題を解決してください。 – Rjiuk
私はあなたの答えをチェックして、私は後で戻ってきます、コメントありがとう;) –