powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / MDB и синхронизация
8 сообщений из 8, страница 1 из 1
MDB и синхронизация
    #34457105
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть список из 10000 элементов. каждый элемент обрабатывается примерно 1 сек., соответственно обрабатывать их в одном методе не получится - отвалится по таймауту транзакции.
идея такая - создать mdb, он получит 10 записей, ставит им пометку IN_PROGRESS, обработает и отправит сам себе сообщение.

проблема в том, что через некоторое время начинаются сыпаться ошибки из за того что идет попытка обработать одни и те же данные.
то есть я думаю, выглядит примерно так: бин отправляет сообщение, после этого контейнер передает управление новому экземпляру, не заканчивая выполнение предыдущего (то есть транзакция действует и не комитит изменения). Новый экземпляр не видит, что данные IN_PROGRESS, и обрабатывает их же.

соответственно проблема - как сделать так, чтоб работал всего 1 бин. поискал на тему семафоров - глухо.
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34457232
exppfromstd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
однако квадратный пробка для круглый дырка. Плохая идея использовать JMS. Просто увеличте таймаут для этой операции на необходимое для неё время. скорее всего у вас сервер посылает сообщение на обработку второй раз недождавшись acknoledgment. либо пофиксите отправку ackn....
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34457276
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exppfromstdоднако квадратный пробка для круглый дырка. Плохая идея использовать JMS. Просто увеличте таймаут для этой операции на необходимое для неё время. скорее всего у вас сервер посылает сообщение на обработку второй раз недождавшись acknoledgment. либо пофиксите отправку ackn....

про подтверждение - понятно, что оно именно так и происходит, я проверил, запихивая в текст письма данные и проанализировав лог.

данных может быть ОЧЕНЬ много (это типа очереди необработанных данных), а таймаут бесконечно увеличивать не хочется. к тому же, если не ошибаюсь, таймаут настраивается глобально.

еще думал как-нибудь таймеры прикрутить. или отрубить транзакцию для mdb и весь код вынести в session с атрибутом TransactionAtributeType.REQUIRED
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34458365
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опишите плиз задачу подробнее откуда берутся данные и как. может каждую заявку отправлять отдельным сообщением? или я что то не понял. про авторставит им пометку IN_PROGRESS, обработает и отправит сам себе точно не воткнул. зачем
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34458550
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть контора, торгующая книгами. раз в месяц ей приходит от поставщиков список новых книг. от поставщика, допустим, 10000 книг за раз. формат: csv файл.

есть web интерфейс с формой для заливки файла. при загрузке файла все записи помещаются в таблицу META_DATA. далее запускаем процесс парсинга, на обработку каждой записи уходит примерно секунда. то есть обработка всего за раз - 10000 секунд. чтобы не манипулировать со временем транзакции, обрабатываем данные кусками. ну, собственно, далее см пост 1.
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34458592
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем так мудрить с MDB? Почему не сделать все как обычно, для обработки одного сообщения создается отдельный экземпляр MDB?
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34458639
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очередь из 10000 сообщений для MDB? опыт подсказывает, что это все быстро падает.
ЗЫ юзаю JBOSS 4.0.4.GA + MySQL
...
Рейтинг: 0 / 0
MDB и синхронизация
    #34458668
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал stateless бин, посадил его на таймер. вроде все отрабатывает.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / MDB и синхронизация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]