В одном из приложений я увидел, что Entity Manager создан "для пользователя HttpSession", а EntityManagerFactory создается только один раз.
Spring или EJB НЕ используется в приложении. Менеджер сущности кэшируется в сеансе http и закрывается, когда сеанс недействителен.
public EntityManager getEntityManager() {
//Logic to get entity manger from session
//If its present , then return
//Else create new one , entityManagerFactory.createEntityManager();
//Put it into session and then return.
//Returned entity manager is not closed by dao methods ,
//but clear() is invoked
}
- Каковы потенциальные проблемы с этим дизайном.
- Что делать, если пользователи 100K вошли в приложение одновременно, не закончится ли соединение jdbc?
- У каждого менеджера объектов есть отдельное соединение JDBC, связанное с ним?