<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Ponton</title>
        <link>http://geekswithblogs.net/PsudoKnowledgeBase/category/9095.aspx</link>
        <description>A common application used in the paper manufaturing world to integrate PAPINet messages.</description>
        <language>en-CA</language>
        <copyright>Geordie</copyright>
        <managingEditor>Martin.palmer@mjpalmer.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Notes on Resolving BizTalk Connectivity Issues with Ponton clients</title>
            <link>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx</link>
            <description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Notes on Resolving Connectivity Issues&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;During the first stage of the Integration project a number of challenges were encountered. Some of these obstacles could have been avoided but we chose to resolve them so that we would have a solid solution for further development.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Challenges Encountered&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;Server 500 error when posting messages to customer with a static port configuration and document that worked for other customers.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;Ponton responds with an ‘Internal Storage’ Error.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;The dynamic port fails with either a 500 server error or a 204 (StatusDescription=No Content) server error.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 1&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;After a lot of work and Microsoft’s help we tracked the first error down to the customer’s server being unable to process HTTP 1.1 messages. The customer is currently running iPlanet 6 SP 10 on a Solaris 8 with a Ponton application server running WebLogic 8.1 SP6 also running on Solaris 8. &lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;HTTP 1.1 includes chunking of messages at the HTTP level. In this case the customer’s server could not recombine the chunked message and failed with a 500 error. By default the HTTP chunking is turned on when a new static HTTP port is created in BizTalk. To turn this off click on the Configuration button in the Transport section of the Send Port’s General Property page. Under the Destination URL field there is a check box labeled ‘Enable chunked encoding’. By clearing this check box the HTTP 1.1 chunking feature will be disabled.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;NOTE:  While we were trying to resolve this issue the Microsoft tech ask me to run Microsoft Network Monitor 3.0 (NetMon) to capture the traffic so that we could determine if there was an obvious message problem. Due to the process used by NetMon it could not capture the HTTP traffic. It could however capture the HTTPS traffic. I’ve not sure why this is but it is worth noting.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 2&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;The second issue was resolved with the assistance of Ponton. Our current customers use older versions of Ponton . Our new customer uses the 2.4 version of this product. It turned out that the use of the ‘Content-Disposition: attachment; filename="=?utf-8?B?QXR0YWNobWVudDF=?="’ property in the document header changed in the newer version. Older versions ignored this property. When we deleted this line from the header the ‘internal storage’ error was no longer raised by the Ponton server.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;u&gt;Issue 3&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Finally when we tried to move the solution to a more dynamic design the customers server started to respond with 500 server errors again. Since the integration with our customer is over an SSL connection we contacted Ponton to see if they had a test server that uses HTTP for our analysis. When we connected with this server (Apache running on Linux) we received 204 server errors. If we tested the dynamic port with the same message against a BizTalk server running on a windows 2003 server it processed successfully.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;The Microsoft Tech again tried to use NetMon to monitor the traffic with the same results. As a result several other techniques where used to capture the traffic to understand the differences in the messages.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;By adding the following XML to the BTSNTSvc.exe.config file and running Sysinternals &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx"&gt;Debug Viewer&lt;/a&gt; we were able to monitor the traffic as it was generated in BizTalk.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&amp;lt;configuration&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;    &amp;lt;system.diagnostics&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;        &amp;lt;trace autoflush="true" /&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;sources&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;source name="System.Net"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;source name="System.Net.HttpListener"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;               &amp;lt;source name="System.Net.Sockets"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                               &amp;lt;source name="System.Net.Cache"&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;listeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add name="System.Net"/&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                        &amp;lt;/listeners&amp;gt;&lt;/div&gt;
&lt;div style="TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;/source&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;                &amp;lt;/sources&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;   &amp;lt;sharedListeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                &amp;lt;add&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 name="System.Net"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 type="System.Diagnostics.TextWriterTraceListener"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                  initializeData="System.Net.trace.log"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                 traceOutputOptions = "DateTime"&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;                /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;/sharedListeners&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;switches&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.Sockets" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.Cache" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;        &amp;lt;add name="System.Net.HttpListener" value="Verbose" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal"&gt;    &amp;lt;/switches&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;    &amp;lt;/system.diagnostics&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&amp;lt;/configuration&amp;gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The first thing that was determined through this process was the default settings for a HTTP static port are not the same as those of the dynamic port. These settings were modified in an orchestration message assignment shape with the code shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;font size="2"&gt;
&lt;p&gt;PontonMessage(HTTP.EnableChunkedEncoding) = false;&lt;br /&gt;
PontonMessage(HTTP.ContentType) = "multipart/related; type=\"text/xml\"; start=ebxml-header; boundary=\"_00000000-0000-0000-0000-000000000000_\"";&lt;br /&gt;
PontonMessage(HTTP.UseHandlerProxySettings) = true;&lt;br /&gt;
PontonMessage(HTTP.AuthenticationScheme) = "Anonymous";&lt;/p&gt;
&lt;/font&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Addressing these differences was the first place that we tried to resolve the issue. Unfortunately this did not resolve the problem.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The final test we did was to use a network sniffer called 'WireShark' to monitor the traffic. This allowed the text comparison of a static and a dynamic message. From this comparison the only differences were the date stamps, unique ID and the quotes around the content type parameters as shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Dynamic Message:&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;Content-Type: multipart/related; type=’text/xml’; start=ebxml-header; boundary=’_00000000-0000-0000-0000-000000000000_’&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;The non Windows server required the quotes to be double quotes and could not process the message if single quotes were used. As a result the code int the Orchestration expression shape was changed as shown below.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;From:&lt;br /&gt;
PontonMessage(HTTP.ContentType) = “multipart/related; type=’text/xml’; start=ebxml-header; boundary=’_00000000-0000-0000-0000-000000000000_’”;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;To:&lt;br /&gt;
PontonMessage(HTTP.ContentType) = "multipart/related; type=\"text/xml\"; start=ebxml-header; boundary=\"_00000000-0000-0000-0000-000000000000_\"";&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;I hope this helps other people.  This has been an interesting ride for me.  Integration with non Microsoft systems can result in some unexpected problems.&lt;/div&gt;
&lt;div style="LINE-HEIGHT: normal"&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/PsudoKnowledgeBase/aggbug/127040.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Geordie</dc:creator>
            <guid>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx</guid>
            <pubDate>Fri, 14 Nov 2008 19:00:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/PsudoKnowledgeBase/comments/127040.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/PsudoKnowledgeBase/archive/2008/11/14/notes-on-resolving-biztalk-connectivity-issues-with-ponton-clients.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/PsudoKnowledgeBase/comments/commentRss/127040.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
