Router field in MSMQT configuration

Sometimes people are puzzled with this field, so here is a short explanation what it does.

In the generic MSMQ infrustructure can use a router when you know that sender and receiver may be unable to connect directly. For example, if they are online at different times. MSMQ router is just an MSMQ machine that can take messages for other machines. In fact, you may have a chain of MSMQ routers, if you want or need to.

So, that's exactly the router that MSMQ configuration screen is asking about. It's just a generic MSMQ router that you may already have in your infrastructure. Do you need it? It depends. There are two major reason why you

The first reason is described above. If BizTalk machine and the machine on another end are online at different times or they cannot see each other for some reason, router will help.

The second reason is addressing. MSMQ has three types of addresses: DIRECT=, PRIVATE= and PUBLIC=. Direct addresses use IP address or machine DNS name and works all the time. For private and public addresses AD resolution takes place to resolve the name of a queue to the specific queue GUID on the target machine. MSMQT has a limited AD support, so public addresses are not published in AD, and hence you cannot send to MSMQT using a public address. MSMQT publishes enough information in AD for private address resolution, so you can send to MSMQT using the private address is AD integration is requested (another checkbox on config screen). MSMQT also does not go to AD to resolve private and public addresses, so this is where router comes to help. With router, MSMQT sends all the messages with piravte or public address to a router, and it resolves them correctly using AD. So, you can only send MSMQ messages with private and public addresses is you have a router.

To clarify, the matrix is:

MSMQ MSMQT Send MSMQT Receive
PUBLIC= ok ok w/router n/a
PRIVATE= ok ok w/router ok
DIRECT= ok ok ok