I have two simple JBI components A & B; B sends (synchronously) a
message to A in its start() method.

 

When using ST or SEDA flow there are no problems - the flow completes.
When I use JMS flow, however, B blocks when sending synchronously. I can
see that A is started messages before B is started - it just seems A
never gets the message.

 

Reading the code it seems JMSFlow will route a requests even before it
is started by creating a queue and placing a message on it. Because it
hasn't been started, however, it won't have a queue listener in place to
respond for that queue and so a sync message will just timeout without
response.

 

By simply switching the order of flow.start() and registry.start() in
Broker.start() I was able to get the desired behaviour for my situation
but I think this may actually introduce other bugs (e.g. JMS flow
accepting remote messages when some or all components have not yet been
started).

 

Can anyone give guidance on what should be the expected behaviour here?
Should I raise a JIRA issue? I'm running M1 BTW.

 

Michael.

Reply via email to