MSMQ Adapter if available now (alternative to MSMQT Adapter)


BTW, MSMQ adapter for BizTalk 2004, that I referred to before, is now available for download at http://www.microsoft.com/downloads/details.aspx?FamilyID=cba87d07-7f50-4d7b-a888-388d123f736e&DisplayLang=en

That's the same adapter, I previously referred to as "MSMQ/C". This is a pretty good alternative to MSMQT adapter shipped in-box. Here are just few thinmgs that differs between MSMQ/T and MSMQ Adapters:

If you want to... MSMQ/T Adapter (in-box) MSMQ Adapter (new)
Run other applications that use MSMQ API (or simply use MSMQ API at all.) Only if you install Windows message queuing (MSMQ) side by side with MSMQT. Automatically granted, in fact, MSMQ Adapter itself is using Windows MSMQ API.
     
Deliver messages reliably and in order to the BizTalk application (orchestration). Example, when you may need it: financial applications, where customer orders must be executed in the same order as they are received. That's what MSMQ/T is for. In fact, that's the only way to reliably do that in BizTalk 2004, short of implementing your own application level protocol. No, you cannot use MSMQ Adapter for that in BizTalk 2004.
     
Reliably push as many messages onto the BizTalk machine as possible (but not yet into BizTalk per se). Example, when you need it: sending messages from an unreliable machine that may go down for a significant period of time. Tough, MSMQ/T submits messages directly into BizTalk, hence it gets messages from the network only as fast as BizTalk can consume them. Perfect. Messages are accumulated on the local disk of BizTalk machine in MSMQ queue with usual MSMQ throughput (huge one). Then BizTalk picks it up from the local queue at its own pace.
     
Pass huge messages (see BizTalk docs for the exact numbers) Good. MSMQ/T has everything streamed, so for large messages there is no single moment in time when the whole message must be in memory. As a result, MSMQ/T messages by design should be only limited by the size of your database. Keep in mind, however, that it is only supported to a certain limit stated in the documentation. Also, if your database has 2Gb of a disk space, it may be not quite a bright idea to fill it with 1Gb blobs. You still can pass pretty large messages, however, MQRTLARGE.DLL that is utilized by MSMQ Adapter, accumulates the whole message in memory, effectively limiting the size of a message you can pass through.
     
Comments (6)
  1. Just a question on your second bullet item:

    You said _delivery_ of the messages to the orchestration will be in order, but then you also used an example where the _execution_ must complete in order.

    Is there any way to guarantee that the _execution_ of the orchestration will complete in order?

    I.e. Doc A is received, then Doc B is received. Delivery to the orchestration occurs in order, but Doc A requires more processing, so Doc B might complete before Doc A?

  2. Eldar says:

    If you send messages to two independent orchestration instances, processes or servers, there is, of course, no guarantee that these instances, processes, or servers will perform processing in any order, unless you ensure it somehow manually using communications between them.

    In-order delivery (and processing) is assured when you deliver to the same instance of an orchestration or to the same send port. In this case, messages are actually executed (or sent outside, if transport supports that) in the same order as they were sent to BizTalk.

  3. Jody says:

    Is it possible to install BizTalk 2004 in a way where you on have one IP address and only the MSMQ Adapter running on MSMQ stack?

  4. Eldar says:

    Sure, just install BizTalk, do _NOT_ add MSMQT adapter, install MSMQ adapter, and you will only have MSMQ adapter running on all addresses, you have on the machine (one, if you have only one).

    Of course, I answered a different question — "Can I have only MSMQ adapter?" Your question taken literally describes the situation which is always true — MSMQT adapter does not use Windows MSMQ stack at all, it has a separate codebase.

  5. Jody says:

    I think you answered my question in the first line. By Add MSMQt adapter, do you mean ‘Register MSMQt in the BizTalk Administrator Tool’? During BizTalk Configuration Wizard, you are asked to configure MSMQt, but I assume this is deferred until MSMQt Adapter is officially registered. Also, too bad for existing servers that MSMQt registration is non-reversible.

  6. Eldar says:

    Yes, you can configure it all right, just don’t add in the Admin.

    The reason is that if you do, it becomes part of the BizTalk start-up process and grabs the port for itself. That’s where all this side-by-side stuff becomes necessary. If you don’t add it, it is never activated.

Comments are closed.

Skip to main content