Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Миграция с JBoss 4.0.4-GA на JBoss 4.2.0-GA


Автор: JUncle 12.7.2007, 15:53
Здравствуйте!
Собственно, перелезли с 4.0.4 на 4.2.0.

Всплыла следующая ошибка.
Первый запрос к БД из EJB-на проходит нормально, остальные падают, если происходят в этом же соединении. После долгого изучения доступных источников, стало вроде бы понятно что это из-за нового менеджера транзакций. Не особо понятна "физика" явления.
Транзакций в явном виде не используем.

Может кто-то лечил такое?
Подскажите пожалуйста, как лучше всего это сделать.

Автор: mindflyer 12.7.2007, 16:28
Подробнее, плиз. К базе как обращаетесь? hibernate, JDBC,...? Какая СУБД?
Пример EJB тоже не помешает. И сама ошибка вместе со стектрейсом.

Месяц назад сделали такой же переезд, проблем не было. Работаем через hibernate.

Автор: JUncle 17.7.2007, 19:34
mindflyer, виноват, времени не было.
Использован Hibernate.
В том то и было дело. Транзакции были не при чем.
У версии Hibernate в JBoss 4.2.0 изменена работа с параметрами запроса.
Если раньше допускалось, допустим, вместо числового значения подставлять строчку, представляющее это значение, то сейчас такие вольности не прокатывают. Вот и вся трабла.

Автор: JUncle 22.7.2007, 18:37
Цитата(JUncle @  17.7.2007,  19:34 Найти цитируемый пост)
В том то и было дело. Транзакции были не при чем.

Как оказалось, это только в одном проекте.
Если работаешь напрямую с JDBC, получить данные через одно соединение можно лишь однократно, после этого выкидывается исключение. Пришлось в конфиге, предварительно погуглив, выставить allowMultipleLastResources=true.
После этого все работает, но выкидывается куча ворнингов, типа это костыли и лучше так не делать.
Кто-нибудь может объяснить физику явления? И как выглядит штатный вариант?

Автор: mindflyer 23.7.2007, 09:03
Цитата(JUncle @  22.7.2007,  18:37 Найти цитируемый пост)
Если работаешь напрямую с JDBC, получить данные через одно соединение можно лишь однократно, после этого выкидывается исключение. Пришлось в конфиге, предварительно погуглив, выставить allowMultipleLastResources=true.
После этого все работает, но выкидывается куча ворнингов, типа это костыли и лучше так не делать.


Хм, аналогично работаем и через JDBC (логи пишем), проблем нет. Ты всё же покажи, плиз, работающий с базой код и эксепшен. Ну и ворнинги вот эти про костыли.

Автор: JUncle 23.7.2007, 20:54
Цитата(mindflyer @  23.7.2007,  09:03 Найти цитируемый пост)
Ты всё же покажи, плиз, работающий с базой код и эксепшен. Ну и ворнинги вот эти про костыли.

Код показать не могу.
Трейсы тоже будут урезанные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)