2009-03-12 2 views
4

Мы разрабатываем сайт, который предназначен, чтобы иметь несколько запросов в second.-OptimisticLockException при попытке получить данные из PostGreSQL

нашей среды является JavaEE, JBoss 4.2.3, Struts2 для MVC, JPA в спящем режиме, как ORM и Postgres as DB.-

Это сценарий: всякий раз, когда запрос поступает на любую из страниц, некоторые действия проверяют информацию в БД для заполнения запрошенной страницы (эта информация состоит из нескольких объектов, некоторые из них с картографическими картами, некоторые ленивые, некоторые стремятся); все работает нормально, пока мы не получим несколько (не много ... 2 достаточно XD) одновременных запросов, а затем hibernate выбрасывает «OptimisticLockException» при получении этой информации.

Самое смешное в этом состоит в том, что мы читаем только информацию! никогда не писал!

Возможно, мы упустили что-то или что-то в этом роде ... любая помощь будет оценена.

Заранее спасибо.

+0

Любой исходный код? Если вы не пишете исключение OptimisticLockException, не следует бросать. Таким образом, это может быть ошибка в коде. – Timo

+0

Это исключение вызывается спящим режимом, и, к сожалению, это происходит на многих страницах с различным кодированием. Звучит гораздо больше похоже на транзакцию или доступ к данным для конфигурации ... = ( –

ответ

3

Возможно, ваше управление транзакциями неисправно. Если вы используете open-session в представлении, обязательно установите транзакцию только для чтения, иначе, если вы выполните obj.setXX(), она поднимет изменение, а спящий режим попытается обновить таблицу.

Ознакомьтесь также с конфигурациями стратегии изоляции транзакций.

Finnaly, убедитесь, что правильно реализованы атрибут версии, а также его отображение; и equals и hashcode (особенно при использовании коллекций).

+1

Звучит довольно вероятно, что происходит ... Я начинаю ненавидеть JPA ... Мне кажется, что это пара гробов плюс цепочка с сверхбезопасные замки, а также находящиеся в тюрьме, в том, что я могу сделать с подключением к базе данных и запросами ... –