Failed to register WCF message body

I am using a 32 bit BizTalk 2013r1 host instance to send an insert request to Oracle via a LOB adapter.

I need to trace the message body sent. I configured the btsntsvc.exe.config file as follows:

<configuration>
<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging" switchValue="Verbose, ActivityTracing">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
        <source name="System.Runtime.Serialization" switchValue="Verbose">
            <listeners>
                <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                    <filter type="" />
                </add>
                <add name="xml">
                    <filter type="" />
                </add>
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add initializeData="C:\logs\WCFTrace2.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" traceOutputOptions="LogicalOperationStack">
            <filter type="" />
        </add>
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>

<system.serviceModel>
    <client>
        <remove contract="IMetadataExchange" name="oracledb" />
        <endpoint binding="oracleDBBinding" contract="IMetadataExchange"
name="oracledb" />
    </client>
    <diagnostics>
        <messageLogging logEntireMessage="true" logMalformedMessages="true"
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
        <endToEndTracing activityTracing="true" messageFlowTracing="true" />
    </diagnostics>
</system.serviceModel>

      

My problem is that even though the message header is being logged, the body is simply written as "... stream ..."

<MessageLogTraceRecord>
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing"      xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action     s:mustUnderstand="1">http://Microsoft.LobServices.OracleDB/2007/03/BTS/Table/FOOTFALL/Insert</a:Action>
<a:MessageID>urn:uuid:5925f3c6-7670-4eaf-843f-df18a609a4fd</a:MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
</s:Header>
<s:Body>... stream ...</s:Body>
</s:Envelope>
</MessageLogTraceRecord>

      

Can someone please tell me what I need to do to get the message body log?

+3


source to share


1 answer


Creating another send port using the FILE adapter is fairly straightforward.

  • Install a filter to catch the same messages as in Oracle
  • Add the same cards


It will then write a file somewhere for each request and contain the same message body content that will be sent to the Oracle adapter.

0


source







All Articles