Я бегу веб-приложение, которое имеет передний конец (JSF
, CDI
) и обратно-конец (EJB
, Hibernate
) части приложения, каждый на отдельном WildFly 9.0.1.Final AS
. Front-end связывается с внутренним концом через Remote EJB Client
по именам JNDI.Безгражданства удаленной фасоли нагнетают через @Resource только предоставление одного экземпляра
Некоторые передний конец кода:
@ViewScoped
@Named("ddc")
public class DynamicDatatableController implements Serializable {
@Produces
@Resource(lookup = "ejb:bpm-back-ear/bpm-back-dynamicTable/DynamicTableBean!bc.bpm.dynamicTable.back.beans.remote.DynamicTableBeanRemote")
private DynamicTableBeanRemote dtb;
private Integer tableId;
private DynamicTable table;
@PostConstruct
public void init{
table = dtb.getTable(tableId);
}
}
И некоторые фоновые коды интерфейса:
@Remote
public interface DynamicTableBeanRemote {
List<DynamicTable> getTable(Integer tableId);
}
И некоторый фоновый код фасоли:
@Stateless
@LocalBean
public class DynamicTableBean implements DynamicTableBeanRemote {
final static Logger LOGGER = LoggerFactory.getLogger(DynamicTableBean.class);
@PersistenceContext(unitName = "bpmBeans")
private EntityManager em;
@Override
public List<DynamicTable> getTableList(Integer tableId) {
return em.find(DynamicTable.class, tableId);
}
}
Проблема, что независимо от того, сколько запросов я делаю, с JMeter или обновлением нескольких вкладок браузера, только один экземпляр DynamicTableBean
жив в любой момент времени. Каждый запрос выполняется этим экземпляром компонента в очереди. Как вы понимаете, приложение абсолютно непригодно, потому что это абсолютно однопоточный EJB. В чем может быть проблема?
Пробовал добавлять jboss-ejb3.xml в ejb-jar, где находится Stateless EJB (src/main/resources/META-INF/jboss-ejb3. xml) и WildFly, но результат заключается в том, что теперь создается только один экземпляр, а не уничтожается, но повторно используется для каждого запроса. Выполнение по-прежнему находится в очереди, нет нескольких экземпляров, параллельного выполнения или чего-то еще. – Candyman
Включите ведение журнала jboss для отладки/отслеживания и проверки журналов. Вы должны увидеть журналы, показывающие, что пулы используются. – 6ton
Пул используется, но создается только 1 EJB, независимо от того, сколько запросов вы отправляете. Проверено, что с CLI для этого конкретного компонента. – Candyman