JBoss EAP 6 EJB – как синхронно ждать ответа от JMSJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JBoss EAP 6 EJB – как синхронно ждать ответа от JMS

Сообщение Anonymous »

Я хочу отправить сообщение в AMQ и дождаться синхронного ответа, в случае ошибки приложение выдает исключение.
У меня есть 3 решения:
< ol>
[*]MessageReceiver.receive() (ждет бесконечно, текущая реализация. Но это не рекомендуемый способ получения сообщений от AMQ; на самом деле я вижу застрявшие сообщения в очереди. Но я могу свободно выдавать исключение приложения после линии get() и все тесты пройдены)

[*]Bean, управляемый сообщениями + некоторый локальный кеш: отправитель сообщения отправляет сообщение, затем вводит его цикл while(), проверяющий кэш-компонент, пришел ли ответ. Цикл может быть с Thread.sleep() или без него. Тем временем MDB получает сообщение и помещает ответ в кэш-компонент. Поэтому я использую этот кэш-компонент для синхронизации.


Он работает, и MDB — рекомендуемый способ получения сообщений в EJB, но я либо ввожу while() миллион раз в течение двух секунд ожидания (я вижу это запах кода), либо управляю потоком самостоятельно(

Код: Выделить всё

Thread.sleep()
), что противоречит рекомендациям EJB. Кроме того, в потоке MDB я не могу выдать исключение приложения, так как это рабочий поток, а не основной поток; и подпись onMessage() не допускает исключения приложения, поэтому тест не пройден; Мне нужно включить основной поток, когда придет ответ.
  • решение 1), но с @Asynchronous я вижу это похожее как 1), потому что Future.get() будет блокироваться на неопределенный срок, а получение сообщений без MDB не рекомендуется, но я сам не управляю потоком. Я также могу свободно бросать.
Я не использую JBoss 7, поэтому у меня нет доступа к ManagedExecutorService.
Что мне делать?

Подробнее здесь: https://stackoverflow.com/questions/792 ... y-from-jms
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JBoss EAP 6 EJB – как синхронно ждать ответа от JMS
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Мул 4.9 jms Приложение Ошибка: Модули javax.jms.api и jakarta.jms.api Экспортный пакет javax.jms to module org.eclipse.s
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Мул 4.9 jms Приложение Ошибка: Модули javax.jms.api и jakarta.jms.api Экспортный пакет javax.jms to module org.eclipse.s
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Исключение при использовании EJB jboss.naming.context.java.jboss.exported.global
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Исключение при использовании EJB jboss.naming.context.java.jboss.exported.global
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»