Friday, December 18, 2009

Creating a routed queue between two Tibco EMS Servers with Authorization enabled

Imagine a scenario of creating a routed queue between two Tibco EMS servers A and B with home queue on B. Pretty simple right,

On server A, just define

create queue Q1@B secure, failsafe, global

Not so simple with Authorization enabled on the two servers. For messages to flow on routed queue, ServerA has to have ServerB as an authorized user to receive and ServerB has to have ServerA as an authorized user to send. So to setup the route properly with Authorization enabled the following has to be worked upon. This assumes that the route is already in place and the user ServerB is created on ServerA and the user ServerA is created on ServerB and Q1 is setup as a global queue on Server B.

Routing between two servers A and B

Q1 is on B (home queue) and we need to create a routed queue on A and send to B

On server A

create queue Q1@B secure, failsafe, global
grant queue Q1 user=ServerB receive

On Server B

grant queue Q1 user=ServerA send


atulya9 said...

You don't explain here why Server A needs "send", and why Server B needs "receive" . For me thats the confusing part since I always think it should be the other way around.

Karthik said...

That's because they act as proxies when routes are involved. A needs to send to B and B needs to receive. So, when user B acts as proxy receiver on A, it needs receive on A. When A is trying to send to B, user A proxy on B needs send on B.