
Илья Сазонов
Axiom JDK
Нам хотелось бы обсудить один вопрос разработки на Spring в связке c JPA.
Одна из самых распространенных проблем производительности здесь — это исчерпание коннекшен пула.
Но как это ни странно, единственный способ управлять жизненным циклом соединения в Spring — это аннотация @Transactional. Ее применение автоматически приводит сразу к трем действиям.
Единственный способ средствами фреймворка сделать разделяемую сессию (то есть EntityManager) без создания транзакции — это OSIV, что признано антипаттерном большинством специалистов. Получается, что проблема исчерпания соединений в связке Spring с JPA есть, а инструментов для тонкого контроля коннекшенов нет.
Если есть такие абстракции, как сессия, соединения и транзакция, странно, что ими нельзя управлять по отдельности. Мы расскажем, как это исправить.
Axiom JDK
OpenIDE