2016-11-15 9 views
1

Я запускаю интеграционный тест, используя Arquillian в EAR-файле, который использует CDI и JMS, где я зависим от результатов JMS-событий для тестов интеграции. Я обнаружил, что я не могу контролировать, когда происходит событие JMS. Иногда события JMS возникают до начала конкретного теста, который является результатом, который я хочу. Но иногда я обнаруживаю, что событие JMS происходит после теста. Есть ли способ сообщить JMS, что он должен начинаться в определенное время или заканчиваться конкретным временем? Есть ли способ спросить JMS о том, произошло ли какое-то конкретное событие или нет? Есть ли способ сказать тест в Аркиллиан, чтобы дождаться завершения JMS до запуска?Любой способ обеспечить событие JMS eventing или сообщить JMS eventing для запуска и завершения в определенное время?

ответ

1

Как я решил эту проблему, чтобы добавить следующий вызов после отправки моего события JMS:

try { 
    Thread.sleep(4000); 
} catch (InterruptedException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

С выше кодой троеборье JMS может завершить до начала следующего испытания. Это работает последовательно.

0

No.

По существу то, что вы просите за это синхронное поведение с асинхронной технологии.

Я не верю, что когда-либо видел гарантированную своевременность в спецификациях JMS, поэтому, пока сообщения будут доставлены, это зависит от поставщика JMS и слушателя, получающего сообщения о том, когда это происходит на самом деле.

С точки зрения попытки завершить в определенное время, после того, как сообщение будет доставлено, ваша обработка зависит от того, насколько коротка или длительна обработка. Помимо того, что JMS сама по себе не использует свою логику таймаута, она не собирается этого делать.

Я задам реальный основной вопрос: действительно ли JMS правильная технология для того, что вы пытаетесь сделать?

+0

Можете ли вы предложить несколько альтернатив JMS? – user840930

+0

Похоже, вам нужен ESB какой-то, даже что-то легкое, как Mule, может обеспечить необходимую функциональность. –

 Смежные вопросы

  • Нет связанных вопросов^_^