Welcome to MSDN Blogs Sign in | Join | Help

BizTalk Architecture, High Availability and MSMQ Adapters

EldarM on BizTalk Server Engine and Around with a stress on high availability and MSMQ Adapters

Syndication

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.
     

Published Monday, February 21, 2005 12:18 PM by EldarM

Filed under: , ,

Comments

# re: MSMQ Adapter if available now (alternative to MSMQT Adapter) @ Tuesday, February 22, 2005 7:25 AM

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?

David M Martin

# Answering the question above @ Tuesday, February 22, 2005 2:45 PM

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.

Eldar

# re: MSMQ Adapter if available now (alternative to MSMQT Adapter) @ Sunday, February 27, 2005 7:31 PM

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?

Jody

# re: MSMQ Adapter if available now (alternative to MSMQT Adapter) @ Monday, February 28, 2005 7:44 AM

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.

Eldar

# re: MSMQ Adapter if available now (alternative to MSMQT Adapter) @ Tuesday, March 01, 2005 2:05 PM

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.

Jody

# re: MSMQ Adapter if available now (alternative to MSMQT Adapter) @ Tuesday, March 01, 2005 2:10 PM

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.

Eldar

Anonymous comments are disabled
Page view tracker