Pages

Showing posts with label MSMQ. Show all posts
Showing posts with label MSMQ. Show all posts

Solved : MSMQ Error Rcv Pipeline No Disassemble stage components can recognize the data & A message received by adapter "MSMQ" on receive location is suspended.

Friday, September 30, 2011
Q:

When I try process a file, I receive the following two errors - 
There was a failure executing the receive pipeline:  Receive Port: : No Disassemble stage components can recognize the data.

and 


A message received by adapter "MSMQ" on receive location  is suspended.

Error details: There was a failure executing the receive pipeline: Source: "Flat file disassembler" Receive Port:  URI: "FORMATNAME: DIRECT=OS: " Reason: No Disassemble stage components can recognize the data.
MessageId: {77F9D67C-3575-4993-926E-BDD24B020C89}
InstanceID: {B72BA496-9194-4003-84FF-83070DB5941B}

Input file is Flat file and the receive pipeline has a Flatfile disassembler. Also configured the flat file disassembler with the Document schema.

Any help appreciated?

sol:
This problem frequently occurs because of header or extra format information that is added to an MSMQ message. If you open up the MSMQ service uinder Administrative Tools \ Computer Management \ Services, you can see the MSMQ messages that are in the queue. I would stop your BizTalk application and then send in a message. You can see the body value of the message and determine whether extra characters are being added to the message before BizTalk receives it and tries to parse it
Also check the MSMQ.BodyType context property which will determine how the Biztalk will handle the message.
References:
and




Read more ...

Sending text for an MSMQ message body using the .NET namespace System.Messaging XmlMessageFormatter to BizTalk || Use of ActiveXMessageFormatter

Friday, September 30, 2011
Recently I was asked to send an MSMQ message which only contained the data from a flat file. The reason for this was the need to simply relay messages that came in through MSMQ onto a distant trading partner using MQSeries. Through BizTalk this is made possible through send port filters which can essentially query messages coming into the BizTalk MessageBox database through receive locations and then forward them onto the send ports based on the filters. So in this scenario the goal was to reduce latency as much as possible by simply forwarding the message received through BizTalk to the distant partner. The challenge is in getting the format of the MSMQ message body to simply be the flat file string.

Sending text for an MSMQ message body using the .NET namespace System.Messaging will by default use the XmlMessageFormatter in the body of the message. Switching over to the BinaryMessageFormatter will almost accomplish this goal but you will see some extra characters in the body if you look at the body contents as shown here for an MSMQ message (the desired message does not begin until the 0120 on the fourth line):




One formatter that accomplishes these objectives but does receive much written about it is the ActiveXMessageFormatter (in System.Messaging), which will serialize a string exactly like you would expect it to w/o any additional header or wrapping content. This is very useful when you want to send something across to MSMQ without any extra wrapping or header content.
Read more ...