Насколько я понимаю, компонент @Stateless
никогда не будет использоваться двумя клиентами одновременно; контейнер просто создаст несколько экземпляров одного и того же компонента, если ему нужно будет обслуживать несколько клиентов.
Что касается @Singleton
bean-компонентов, то spec говорит, что по умолчанию они используют управляемый контейнером параллелизм, где контейнер использует метод Lock s и могут отклонять клиентов с исключением по таймауту синглтон занят.
Редактировать: кроме того, по умолчанию тип @PersistentContext
ограничен транзакцией (в спецификации 16.11.1.1), поэтому все объекты, управляемые EntityManager
, отсоединяются в конце каждой транзакции.