Why APM CE (CEM) may not see a SOAP soap+xml request.

Document ID : KB000019247
Last Modified Date : 14/02/2018
Show Technical Document Details


Why can't APM CE (CEM) monitor application/soap+xml requests. How can SOAP transactions be monitored?


APM CE doesn't know anything about SOAP per se, SOAP is based on XML. TIM tries to determine whether a request body is XML based on the first few bytes of data as well as by looking at the Content-Type: header field.

A Soap-request header looks likes this:

POST /My.Test/PolicyManagement.svc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 1150
Expect: 100-continue

If the SOAP application/soap+xml requests are not seen by APM CE, it is because the xml format is not valid.

If the request body is well-formed XML, it should work. Nothing needs to be changed on TIM, TIM Collectors, or MOM's for recognizing valid SOAP transactions.

If the content-type in the first request is not text/xml (i.e. it is application/soap+xml) and the body does not begin with the special "<?xml ..." line that XML documents should start with, TIM will not expect to find XML.

Note that in later releases, APM can recognize the content type:

In 4.5.6/9.0.6 and later, an undocumented feature was added to support content types. All one has to do is add a new content type to the tess-customer.property listed below followed by a space. For example, here we are adding application/x-java-serialized-object to trusted content types. Don't forget to restart the TIM Collector and MOM after making this change.

recorder.mainComponentTrustedContentTypes=x-application/amf text/plain text/html text/xml application/x-java-serialized-object

9.1 and later officially supports two new tess-customer.properties (Requires restart of TIM Collector/MOM.)

The tess-default.properties file uses the recorder.mainComponentTrustedContentTypes - selected content types to use for ALL recordings

These are potential content types that can be used for ALL recordings.