Websphere 7 - BMP Entity Bean - ejbStore вызывается в конце транзакции, а не после метода установки

Мы переходим с Weblogic на Websphere 7. Это устаревшее приложение, содержащее компоненты EJB 2.0. Бобы Entity имеют BMP. Фасадные компоненты сеанса обновляют компоненты, но обновления сохраняются в базе данных (вызов методов ejbStore() для компонентов) в конце транзакции, что вызывает проблему, поскольку обновления не видны другому клиенту, поддерживающему транзакцию. В Weblogic есть параметр "delay-updates-before-end-t-tx", который может быть установлен в false. Это приводит к тому, что обновления сохраняются, не дожидаясь окончания транзакции. Я читал, что стандартное поведение Websphere - не ждать окончания транзакции, но, похоже, это не так.

Я также попытался установить следующие аргументы JVM:

-Dcom.ibm.ws.pm.deferredcreate = false -Dcom.ibm.ws.pm.batch = false

Это тоже не помогло.

Любая помощь по этому вопросу будет принята с благодарностью.

Спасибо, Дикшит

1 ответ

Решение

Существуют декларативные варианты для CMP, но я не верю, что есть варианты для BMP. Должна быть возможность использовать метод расширения EJBContextExtension.flushCache() WebSphere Application Server, чтобы программно заставить контейнер хранить / очищать все ожидающие объекты:

http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/websphere/ejbcontainer/EJBContextExtension.html

Другие вопросы по тегам