Problems Accessing WebSphere MQ in BizTalk 2006

Home Page Forums BizTalk 2004 – BizTalk 2010 Problems Accessing WebSphere MQ in BizTalk 2006

Viewing 1 reply thread
  • Author
    Posts
    • #15571

      Hi All!

      This is my first post here, hope you people would help me.

      I've a simple form that makes a WebSphere MQ object and using its WriteString(), method writes the xml message to the queue. That queue is configured in my Biztalk project to receive messages. The problem is when I put a message through this application form Biztalk gives me this errror:

       There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML disassembler" Receive Port: "RecPort" URI: "MQS://127.0.0.1/QM_svctag_2yj4k1s/default" Reason: No Disassemble stage components can recognize the data.

      On the other hand when I put exactly the same message (By copying it), using the WebSphere MQ explorer, directly in the queue, it processes correctly using the same pipeline and orchestration and submits the message to the other WebSphere MQ queue. I am using XMLReceive and XMLTransmit as the pipelines.

      When I look into the properties of the two messages using WebSphere MQ Explorer, I find the message data is exactly the same, so are most of the properties, the only two changes are the change in the application name which put the message (very obvious) and the message size, which in case of my application is exactly double the size, if we compare it to the message directly put in the queue.

      I've wasted quiet a bit of time on this, but couldn't find any solution to this, I just cant understand why an exactly same message is processed by biztalk if it is directly put in the queue and cant be processed if it is done through an application.

       

      Plz Help me, I'll be very grateful 🙂

       

       

      Regards,

      Sajid.

       

       

    • #15585

      Typically when this message occurs BizTalk cannot recognize what message type the message belows to.  I typically attempt to write a pipeline component to debug the message going thru the pipeline by writing the message to the event log.  I almost always find that the messages I'm comparing are 'slightly' off, either missing a namespace or BOM's are different.

      • #15591

        Thanx for the reply,

        I now understand that it has to do with the way I write the message to the queue. I make an XMLDocument and then use the queue objects WriteString(xmldoc.InnerXml) method to write my xml to the queue.

        I tried the same thing using the MSMQ, it didn't work. But when I used its send method to pass on the entire XmlDocument object it worked alright.

        like MessageQueue.Send(XmlDoc). The send method takes an argument of type of 'object', It worked alright without any errors.

        But when I try passing xmldocument using the WebSphere MQ object.

        MQMessage.WriteObject(xmldoc) or even tried explictly by casting it MQMessage.WriteObject((object)xmldoc), it gives me this error.

        Type 'System.Xml.XmlDocument' in Assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.

        I just cant understand why writting a same XmlDocument object to an MSMQ send method didn't gave any error, while this is giving it.

        Both take object type as their argument.

        Any help, would be really appreciated.

        Regards,

        Sajid.

         

         

         

        • #15593

          Sajid,

           

          Instead of XmlDoc.InnerXml use OuterXml which will contain a more complete message.  Just a thought. 

Viewing 1 reply thread
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.