Problem with routing messages between 2 SwiftMQ routers

View: New views
3 Messages — Rating Filter:   Alert me  

Problem with routing messages between 2 SwiftMQ routers

by nortonb :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

We have 2 SwiftMQ routers, routerA and routerB.  The following queue is defined in both...

Queue: testQueue
FlowControl: -1
MaxMessages: -1

We've setup a job on routerB to move messages from its testQueue to routerA's testQueue.  Lately we've been noticing that the messages from routerB are not getting moved over as quickly as they use to.  The messages seem to get backed up in routerB's rt$routerA queue and take a long time to clear out of there. We have not adjusted the settings for that rt$routerA queue so the defaults for flow control and queue size are still in place.

We've had this setup for some time, but haven't seen messages getting backed up in rt$routerA on routerB until recently.  Should we try to adjust the flow control settings on rt$routerA? Are there other settings we need to look at?


Thanks

Re: Problem with routing messages between 2 SwiftMQ routers

by IIT Software :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

As mentioned in the other thread: I can't help any further without having a deeper look so you might file a support incident.

Re: Problem with routing messages between 2 SwiftMQ routers

by IIT Software :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

You might also check this thread. If you move messages that has been routed between different routers already, e.g. move A->B, B->A, it turns into a ping/pong between the 2 routers, consumes bandwidth and slows down the other message transfer. This could be one reason. You should notice a high bandwidth usage on the routing connection in both directions without consuming the queue's backlog.

To solve the ping/pong problem:

1) Disconnect the routing connection (disable the connector).

2) On both routers:

a) Set the Scan Interval of XA Resource Manager Swiftlet to 1000.
b) Under XA Resource Manager Swiftlet/Usage/Prepared XA Transactions rollback all entries (right click, "Rollback").
c) Open message viewer on the rt$<router> queue and deleted those messages which are responsible for the ping/pong.
d) Reset the Scan Interval back to 120000.

3) Enable the connector.