ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » "Mandatory header block not understood"

Post new topic  Reply to topic
 "Mandatory header block not understood" « View previous topic :: View next topic » 
Author Message
petervh1
PostPosted: Mon Nov 08, 2021 5:19 am    Post subject: "Mandatory header block not understood" Reply with quote

Centurion

Joined: 19 Apr 2010
Posts: 122

Hi

I'm getting this Failure message back from my SOAP call in my flow:

Quote:
Mandatory header block not understood


I've built a blank soapenv:Header and a populated soapenv:Body in my ESQL.

If I run what I think is the same SOAP message through SOAPUI I get a valid response with the expected data.

Here's my SOAPUI input:

Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abc="http://www.xxxxxx.com">
   <soapenv:Header/>
   <soapenv:Body>
      <abc:cubiscan_soap>
        <prod_id>nnnnnn</prod_id>
      <outer_uom>aaa</outer_uom>
      <inner_uom>bbb</inner_uom>
      </abc:cubiscan_soap>
   </soapenv:Body>
</soapenv:Envelope>


The WSDL does not contain any mustUnderstand parms on any elements.

Can someone please explain why I'm getting this error in my flow?

TIA
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Nov 09, 2021 5:48 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

The xsd says you have a mandatory header block like must understand etc... and it is obviously missing in your instance data.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
timber
PostPosted: Tue Nov 09, 2021 6:01 am    Post subject: Reply with quote

Grand Master

Joined: 25 Aug 2015
Posts: 1280

Please can you quote the entire error message. You may need to take a user trace to get all of the details. Those details will probably be required to diagnose the problem accurately.
Back to top
View user's profile Send private message
petervh1
PostPosted: Wed Nov 10, 2021 12:55 am    Post subject: Reply with quote

Centurion

Joined: 19 Apr 2010
Posts: 122

Quote:
The xsd says you have a mandatory header block like must understand etc... and it is obviously missing in your instance data


I've checked my XSD - the only hit for mustUnderstand is in the generated soapenv11.xsd, and that's an attribute definition.

I solved the issue by checking the "Use HTTP asynchronous request-response" box in the HTTP Transport parms for the SOAP Asynchronous Request node. At least the SOAP response returns through the Out terminal now.

It seems like the problem has moved, however. I hope it's OK to post this issue in the same thread, as it's related to the original problem. Here goes:

My flow is:

HTTPInput -> Aggregate Control -> Compute1 -> AsyncSOAPReq1 -> Agg Req1
Compute2 -> AsyncSOAPReq2 -> Agg Req2
SOAPAsyncResp1 -> Agg Reply -> Compute3
SOAPAsyncResp2 ->

Although I'm getting a reply through the Out terminal of the SOAPAsync nodes, I don't see the data.

A trace node after Agg Req1 shows:
Code:
DATESTAMP=2021-11-10 09:52:00.505145
ENVIRONMENT=( ['MQROOT' : 0x7fb7ff1c9f90]
  (0x01000000:Name):ComIbmAggregateRequestNode = (
    (0x01000000:Name):AggregationHTTPAsync = (
      (0x01000000:Name):Backend1 = (
        (0x03000000:NameValue):replyIdentifier = '534f415000000000f548577d374c00000500000000000000' (CHARACTER)
        (0x03000000:NameValue):replyProtocol   = 'SOAP-AXIS2' (CHARACTER)
      )
    )
  )
)
ROOT=( ['WSRoot' : 0x7fb7ff1b1530]
  (0x01000000:Name  ):Properties        = ( ['MQPROPERTYPARSER' : 0x7fb7ff182d70]
    (0x03000000:NameValue):MessageSet             = NULL
    (0x03000000:NameValue):MessageType            = NULL
    (0x03000000:NameValue):MessageFormat          = NULL
    (0x03000000:NameValue):Encoding               = NULL
    (0x03000000:NameValue):CodedCharSetId         = NULL
    (0x03000000:NameValue):Transactional          = NULL
    (0x03000000:NameValue):Persistence            = NULL
    (0x03000000:NameValue):CreationTime           = NULL
    (0x03000000:NameValue):ExpirationTime         = NULL
    (0x03000000:NameValue):Priority               = NULL
    (0x03000000:NameValue):ReplyIdentifier        = NULL
    (0x03000000:NameValue):ReplyProtocol          = 'SOAP-HTTP' (CHARACTER)
    (0x03000000:NameValue):Topic                  = NULL
    (0x03000000:NameValue):ContentType            = NULL
    (0x03000000:NameValue):IdentitySourceType     = NULL
    (0x03000000:NameValue):IdentitySourceToken    = NULL
    (0x03000000:NameValue):IdentitySourcePassword = NULL
    (0x03000000:NameValue):IdentitySourceIssuedBy = NULL
    (0x03000000:NameValue):IdentityMappedType     = NULL
    (0x03000000:NameValue):IdentityMappedToken    = NULL
    (0x03000000:NameValue):IdentityMappedPassword = NULL
    (0x03000000:NameValue):IdentityMappedIssuedBy = NULL
  )
  (0x01000000:Name  ):HTTPRequestHeader = ( ['WSREQHDR' : 0x7fb8305a6010]
    (0x03000000:NameValue):contractid = 'nnnnn' (CHARACTER)
  )
  (0x01000000:Folder):XMLNSC            = ( ['xmlnsc' : 0x7fb832a9c960]
    (0x01000000:Folder)http://www.w3.org/2003/05/soap-envelope:Envelope = (
      (0x01000000:Folder)http://www.w3.org/2003/05/soap-envelope:Body = (
        (0x01000000:Folder)urn:sap-com:document:sap:soap:functions:mc-style:ZhrfEmployeeExtractIn = (
          (0x01000000:Folder     ):CostCntr    = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):EmpGroup    = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):EmpNum      = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):EmpStatus   = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):EmpSubgroup = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):IdNum       = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):PayArea     = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):PersArea    = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):PersSubarea = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x01000000:Folder     ):Position    = (
            (0x03000000:PCDataField):item = '' (CHARACTER)
          )
          (0x03000000:PCDataField):VendorId    = 'C4C' (CHARACTER)
        )
      )
    )
  )
)
LOCALENVIRONMENT=( ['MQROOT' : 0x7fb7ff178bb0]
  (0x01000000:Name):Destination                = (
    (0x01000000:Name):SOAP = (
      (0x01000000:Name):Request = (
        (0x01000000:Name):Transport = (
          (0x01000000:Name):HTTP = (
            (0x03000000:NameValue):WebServiceURL = 'http://nnnn.com/qa/wyztalk/employee/service' (CHARACTER)
          )
        )
      )
    )
  )
  (0x01000000:Name):ComIbmAggregateControlNode = (
    (0x03000000:NameValue):aggregateName = 'AggregationHTTPAsync' (CHARACTER)
    (0x03000000:NameValue):aggregateId   = 'e482351641fa11ec8f7a0a0ffd1100000000000000000000' (CHARACTER)
  )
  (0x01000000:Name):WrittenDestination         = (
    (0x01000000:Name):SOAP = (
      (0x01000000:Name):Request = (
        (0x01000000:Name):WSA       = (
          (0x03000000:NameValue):To        = 'http://nnnn.com/qa/wyztalk/employee/service' (CHARACTER)
          (0x03000000:NameValue):ReplyTo   = 'http://www.w3.org/2005/08/addressing/anonymous' (CHARACTER)
          (0x03000000:NameValue):MessageID = 'urn:uuid:C56FB2827586D86BE61636530671763' (CHARACTER)
          (0x03000000:NameValue):Action    = 'http://nnn.com/cubiscan_soapPortType/cubiscan_soap' (CHARACTER)
        )
        (0x01000000:Name):Transport = (
          (0x01000000:Name):HTTP = (
            (0x03000000:NameValue):WebServiceURL   = 'http://nnnn.com/qa/wyztalk/employee/service' (CHARACTER)
            (0x03000000:NameValue):MessageCorrelId = X'534f415000000000f548577d374c00000500000000000000' (BLOB)
          )
        )
      )
    )
  )
)



Questions:

1. At what point should I be able to see the data returned from the SOAP call in the ComIbmAggregateReplyBody folder?

2. When I debug the flow, it seems to stop after the second SOAP call returns a reply - it does not proceed to the SOAPAsyncResp1/2 nodes. I have checked that the AggregateName in the Aggregate Control and Aggregate Reply nodes matches. I've also checked that the Unique identifier in the SOAPAsyncReq and SOAPAsyncResp nodes matches.

TIA
Back to top
View user's profile Send private message
petervh1
PostPosted: Thu Nov 11, 2021 6:25 am    Post subject: Reply with quote

Centurion

Joined: 19 Apr 2010
Posts: 122

I solved the issue. I had not set the Web service URLs in the SOAP Asynchronous nodes correctly.

The documentation on this is, in my opinion at least, not very clear.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » "Mandatory header block not understood"
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.