Внедрение Hornetq

Мне нужна ясность относительно правильного подхода к реализации JMS в нашей системе.

В настоящее время у нас есть два сервера JBoss с балансировкой нагрузки для целей транзакций конечных пользователей, мы расширяем функции уведомлений на основе различных событий в транзакции. Чтобы заставить его работать, решили использовать следующий подход: hornetQ будет встроен в серверы транзакций Jboss, а MDB будет подключен к тому же серверу JBoss для прослушивания и вызова другого сервера JBoss, который будет иметь некоторый бизнес-код для категоризации отправляемых пользователей и, наконец, этот сервер будет звонить на сервер XMPP с соответствующими пользователями.

Здесь я сомневаюсь, что развертывание MDB (потребитель событий) на сервере транзакций JBoss является хорошим подходом или перемещением MDB на сервер JBoss, предназначенный для целей уведомления. Пожалуйста, подкиньте какую-нибудь идею для лучшего подхода.

С уважением, Вайрам.


person vairam    schedule 06.08.2011    source источник


Ответы (2)


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

поэтому всегда лучше развертывать MDB для обработки транзакций, а не использовать базу данных напрямую, поскольку вы собираетесь выполнять TX асинхронно.

Когда вы отправляете данные из одного MDB на другой сервер приложений, вы можете выполнять обе операции как часть одного и того же TX, поэтому вы можете использовать XA, чтобы убедиться, что процесс сообщения и все, что делается после него (еще одно сообщение отправляется, другое Вызов EJB или другая операция БД) будет выполняться как часть того же TX.

Если вам нужна дополнительная помощь, отредактируйте свой вопрос, убедившись, что вы используете правильную терминологию. Я не думаю, что у вас языковой барьер... вы просто используете неправильные термины... например, вы не можете встроить HornetQ в транзакцию, этого просто не существует.

person Clebert Suconic    schedule 11.08.2011
comment
Можете ли вы отредактировать свой первоначальный вопрос, пожалуйста? возможно, я смогу помочь тебе лучше - person Clebert Suconic; 29.08.2011

Ваш вопрос немного сбивает с толку, чтобы его понять. Как вы можете развернуть MDB в транзакции? Вы развертываете MDB на сервере приложений.

Ваш вопрос не имеет особого смысла. Возможно, это языковой барьер?

person Clebert Suconic    schedule 08.08.2011
comment
2 сервера приложений Jboss для транзакций (допустим jb1), он обрабатывает запросы, связанные с транзакциями, т. е. создает новые заказы, редактирует и сохраняет действия в бронированиях. мы развернем MDB на том же сервере, если придет какой-либо запрос jms, он будет доставлен в MDB, MDB вызовет другой сервер jboss (jb2) для обработки деталей, то есть получения деталей, связанных с заказами + список пользователей для доставки сообщения. в случае каких-либо сбоев транзакций в jb2 или jb2 не работает, эти сценарии будут обрабатываться управлением транзакциями MDB. Будет ли такая установка хороша для реализации. - person vairam; 09.08.2011
comment
Нет такой вещи, как управление транзакциями MDB. На сервере приложений есть диспетчер транзакций. Кроме того, вы сказали, что вызовете другой сервер jboss, но не сказали, как... Это может означать N вещей... На самом деле нет такой вещи, как вызов другого сервера jboss. Вы можете вызвать EJB на другом сервере, вы можете послать сообщение на другой сервер... и т.д... Кажется, вам нужно усвоить несколько концепций разработки приложений. В любом случае, диспетчер транзакций должен управлять несколькими ветвями XA, которые у вас есть, если вы правильно его настроите. - person Clebert Suconic; 09.08.2011