Представьте себе интенсивно используемый сервисный объект, который реализован как EJB 2.1 SLSB, и который сам по себе является поточно-ориентированным благодаря отсутствию состояния вообще. Все его открытые методы являются транзакционными (через CMT), наиболее просто требующими транзакции, но некоторые требуют новой транзакции.
Если я преобразую этот SLSB в подлинный одноэлементный POJO (например, с использованием инфраструктуры DI), как это повлияет на масштабируемость приложения? Когда сервис представлял собой SLSB, контейнер EJB управлял пулом экземпляров, из которых каждый клиент получал свою собственную копию, поэтому мне интересно, будет ли превращение его в одноэлементный POJO вызвать какой-то конфликт для этого единственного экземпляра.
FWIW, ни один из методов этой службы не является synchronized
.
Разъяснение: моя мотивация для преобразования SLSB в POJO - это простота как жизненного цикла объекта (истинный синглтон по сравнению с управлением контейнером), так и самого кода (один интерфейс и один аннотированный POJO, по сравнению с тремя интерфейсами, одним классом бина, и куча XML в ejb-jar.xml).
Кроме того, FWIW, рассматриваемая служба является одним из компонентов совместно размещенного веб-приложения, работающего на JBoss 3.x.