Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / MDB и синхронизация / 8 сообщений из 8, страница 1 из 1
12.04.2007, 17:55:42
    #34457105
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MDB и синхронизация
есть список из 10000 элементов. каждый элемент обрабатывается примерно 1 сек., соответственно обрабатывать их в одном методе не получится - отвалится по таймауту транзакции.
идея такая - создать mdb, он получит 10 записей, ставит им пометку IN_PROGRESS, обработает и отправит сам себе сообщение.

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

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

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

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

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

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


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