unroutable messages with local composite queue

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

unroutable messages with local composite queue

TheQL
Hello,

we have messages in "unroutable" which seem to appear there after a router start, although the target queue is a local composite queue.

JMS_SWIFTMQ_UR_REASON java.lang.String com.swiftmq.swiftlet.queue.UnknownQueueException: queue 'Inbox@router' is unknown

Is there a possible delay after router start that composite might not yet be available, although a producer was already able to connect to the router?
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

IIT Software
Administrator
The Routing Swiftlet is started after the Queue Manager Swiftlet which creates all queues during its startup so the queues must be available once the Routing Swiftlet becomes active. I have to check that...
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

TheQL
I am not sure the Routing Swiftlet is involved here, as the composite queue is locally defined on the same router as the producer connects to, so Queue Manager and JMS Swiftlet are the only relevant swiftlets from my point of view, but you are more qualified to evaluate that. Thanks for looking into it.
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

IIT Software
Administrator
Queue "unroutable" is the dead letter queue of the Routing Swiftlet. Let me test this...
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

IIT Software
Administrator
In reply to this post by TheQL
Works here. Sending from one router while the other is down. When it comes up it is delivered to the composite queue.

If there are messages in queue "unroutable" then these are always from the Routing Swiftlet. It receives messages from a routing connection and if it is not able to deliver it (because the queue doesn't exists), it stores it to unroutable.

May be you did not save the config and the comp queue wasn't defined?
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

TheQL
I am as astonished as you are, that the message ended up in "unroutable".

The setup is old, no changes to it. Only thing that happened was a halt of the entire HA router, after the restart I later on noticed that there was exactly one new message in unroutable - there was one in there from April for the same composite queue which I didn't notice. If I checked I might find out that the router was down in April as well, but I cannot say that for sure right now. All messages afterwards could obviously be delivered without hassle.

The setup itself is as follows, although it might not be entirely sensible, it is as it is.

I will try to draw it in ASCII art here, with arrows showing the actual queue targets of the composite queues (CQueue).

Remote Router                    Local Router

---------                         ---------	
|       |                         |       |         producer
|CQueue |                         |CQueue | <-------   @
|   @   |   --------------- >     |  @    |          local
|remote |                         | local |
|       |                         |       |
---------                         ---------
       ^                          /        \
       |                         /          \
       |                        /            \
    producer                   /              \
       @                      /                \
     remote                  v                  v
                          ---------       ---------       ------------
                          |       |       |       |       |unroutable|
                          |Target1|       |Target2|       |    @     |
                          |   @   |       |   @   |       |  local   |
                          | local |       | local |       | -------  |
                          |       |       |       |       |(JMS Msg.)|
                          ---------       ---------       ------------

It would probably make more sense to have the remote producer write directly to the "local" composite queue, but there is in fact routing involved and I can't tell if the JMS Msg., which appeared in "unroutable" at the location I named "local", was produced by the local producer or if it was produced at the remote producer to the remote composite queue which sole queue target is the composite queue at the local router. Anyway, the message ended up in unroutable and the config itself works fine and continues to do so. Only incident of importance was the shutdown of the "local" router.

All routers have static routes defined, by the way.
Reply | Threaded
Open this post in threaded view
|

Re: unroutable messages with local composite queue

IIT Software
Administrator
The message was produced by producer@remote, that's for sure. For whatever reason the comp queue was unknown to the Queue Manager Swiftlet @local when the message arrived on the routing connection.