Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Connect SOAP 'Message Transmission Optimization Mechanism' issue

SA-3264

Summary



Connect SOAP rule with MTOM (Message Transmission Optimization Mechanism) enabled is not functioning as expected. There are 2 issues:

1. If 'SOAP 1.1 Encoding' on the XML stream rule is disabled, the xsi:type="xsd:base64Binary" declaration is omitted and MTOM is not triggered (refer InvokeAxis2 activity step 13)
2. If 'SOAP 1.1 Encoding' is enabled, MTOM is triggered however does not construct a valid request (element containing binary is not replaced with the required href reference to the binary attachment, the actual binary remains)

An additional issue with enabling 'SOAP 1.1 Encoding' (to enforce the xsi:type="xsd:base64Binary" declaration and hence trigger MTOM), results in a fault at provider due to invalid 'Type' declarations. 



Error Messages



N/A


Steps to Reproduce



1. Configure Connect-SOAP rule as per documentation.
2. Attach binary attachment to pyRequestAttachmentPage page
3. Create SOAP request mappings (including mapping base64 encoded binary to specific Document element)
4. Configure Service rule (Axis2, SOAP 1.2, HTTP 1.1, Enable MTOM)
5. Run connector activity to test (binary passed as input)


Root Cause



The root cause of this problem is a defect in Pegasystems’ code/rules. 


1) SOAP 1.1 encoding flag is not enabled for a few required stream XML rules. With type substitutions enabled in customer's data model, it is a bit tricky to find out exactly which rules requires this flag to leverage MTOM feature. 
2) pyRequestAttachmentPage standard clipboard page is populated along with mapping the same contents to a node in stream XML rule. pyRequestAttachmentPage shouldn't present in such case.



Resolution



The issues are resolved through the following local changes: 
Issue 1:


1) Enable SOAP 1.1 encoding flag for the required stream XML rules. 
2) Remove the pyRequestAttachmentPage standard clipboard page as the same contents were maaped to a node in stream XML rule, which is sufficient to optimize the binary data using Connect-SOAP MTOM feature.

Issue 2:
Customize the XML stream rule (override auto generated XML) so that only the document element xsd:base64Binary includes the encoding so that it is picked up as part of MTOM processing.

Published January 31, 2016 - Updated October 8, 2020

Was this useful?

50% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us