|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
"Mandatory header block not understood" |
« View previous topic :: View next topic » |
Author |
Message
|
petervh1 |
Posted: Mon Nov 08, 2021 5:19 am Post subject: "Mandatory header block not understood" |
|
|
Centurion
Joined: 19 Apr 2010 Posts: 135
|
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 |
|
 |
fjb_saper |
Posted: Tue Nov 09, 2021 5:48 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 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 |
|
 |
timber |
Posted: Tue Nov 09, 2021 6:01 am Post subject: |
|
|
 Grand Master
Joined: 25 Aug 2015 Posts: 1292
|
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 |
|
 |
petervh1 |
Posted: Wed Nov 10, 2021 12:55 am Post subject: |
|
|
Centurion
Joined: 19 Apr 2010 Posts: 135
|
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 |
|
 |
petervh1 |
Posted: Thu Nov 11, 2021 6:25 am Post subject: |
|
|
Centurion
Joined: 19 Apr 2010 Posts: 135
|
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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|