Websphere 7 - BMP Entity Bean - ejbStore вызывается в конце транзакции, а не после метода установки - PullRequest
0 голосов
/ 20 июня 2011

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

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

-Dcom.ibm.ws.pm.deferredcreate = ложь -Dcom.ibm.ws.pm.batch = ложь

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

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

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

1 Ответ

2 голосов
/ 20 июня 2011

Существуют декларативные опции для 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

...