
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.03.2012, 21:34:54
|
|||
|---|---|---|---|
|
|||
JTA, Jboss, Spring |
|||
|
#18+
Имеется следующая задача: В одной транзакции надо вызывать 3-4 вебсервиса а также инсертить в 3 датабазы некоторые данные. С ролбеком датабаз проблем нету. Все это делается при помощи JTA транзакций. но, как ролбекать вебсервисы? Конечно можно написать баянчик типо стека куда закидывать ролбек команды, и в случае ексепшена - ролбекать по стеку, но выглядит это как-то крайне некрасиво. Бегло прочитал в интернетах на счет транзакционного JMS. Но чтобы читать углубленно - к превеликому сожалению нету времени. Вопрос следующий: можно ли организировать закидывание месейджей в топик\очередь в транзакции? Тобиш если я закину в очередь, чтобы листенер не начинал обрабатывать пока не будет комит. И чтобы если случится ролбек - месейдж ролбекнулся с очереди. Так же если случится ошибка в лисенере при чтении месейджа, чтобы он вкидывал этот месейдж обратно в очередь, а не просто забывал о нем? На сколько это возможно? И на сколько это сложно реализировать? Или мб для моей задачи подойдут другие получше механизмы которые может предоставить Spring\Jboss ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2012, 21:58:26
|
|||
|---|---|---|---|
|
|||
JTA, Jboss, Spring |
|||
|
#18+
JMS хорошее решение для вашей задачи. JTA - нет. Подумайте что будет если веб сервисы в какой-то момент не отвечают. А у вас там socket timeout на 30 секунд. В результате транзакции в базе данных висят несколько минут. Транзакции в базе держат локи, вешая другие транзакции. В результате неболшие тормоза на уровне работы с WS у вас убивают производительность системы напрочь. Поэтому работу с удаленными WS надо выности за транзакцию и отдельно обрабатывать ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2012, 22:34:15
|
|||
|---|---|---|---|
|
|||
JTA, Jboss, Spring |
|||
|
#18+
Да, но насколько реально сделать закидывание сообщений в очередь транзакционно? Тобиш если после того как я закину сообщение в очередь чтонибудь пойдет не так - надо чтобы сообщение удалилось с очереди. И чтобы до момента комита транзакции оно не начало обрабатыватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2132281]: |
0ms |
get settings: |
21ms |
get forum list: |
26ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
61ms |
get topic data: |
19ms |
get forum data: |
4ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 379ms |
| total: | 593ms |

| 0 / 0 |
