Webサービスに接続する送信ポートがあります。一度にWebサービスに送信するリクエストは最大で10個だけにします。これはbiztalkで行うことができますか?うまくいけば、構成を介して?
3 に答える
この正確なシナリオを扱ったRichardSeroterによる投稿があります。
btsntsvc.exe.configファイルで最大接続数を設定する必要があります。
<add address = "*" maxconnection = "2" />
IPアドレスでフィルタリングし、maxconnectionsを必要なものに設定します。
HTTPアダプタに関するMSDNドキュメントから、アドレスはURLまたはIPのいずれかである可能性があると記載されています。設定スニペットの例を以下に示します。
<configuration>
<system.net>
<connectionManagement>
<add address = "http://www.contoso.com" maxconnection = "5" />
<add address = "http://www.northwind.com" maxconnection = "2" />
</connectionManagement>
</system.net>
</configuration>
次に、送信ポートで順序付き配信をオンにして、BizTalk側が制限された接続数にタイムアウトしないようにする必要があります。
これはまさにあなたが望むことをしているように見えますが、これを管理するためのある種のオーケストレーションパターンも検討します。コントローラーオーケストレーションは、一度に実行できる子の「サービスに送信」オーケストレーションの数を制限します。少なくとも私にとっては、外部のドキュメントを必要とせずに、それに従うのは少し簡単でしょう。
内部サイトを使用している場合は、次の構文を追加する必要はありません
たとえば、Webサービスリンクはhttp://example.com/ms/sample.aspx add address = " http://example.com " maxconnection = "5"
デビッドホールの答えについて考慮すべきいくつかのこと
送信ポートで注文配信を設定すると、スループットに大きな影響があります。特に、同じポートに複数のオーケストレーションを呼び出している場合は、オーケストレーションが脱水状態になり、メッセージがポートをオンにするのを待っています。また、Webサービスからの要求応答であるインスタンスと、負荷が高く緊急ではないインスタンスがある場合にも問題が発生します。
これを回避するために、BizTalkオーケストレーションスロットリングパターンを使用しました。これも元々はRichard Seroterによるもので、一度に特定の数の大容量オーケストレーションのみをスピンアップさせ、一部の接続を低遅延の要求/応答呼び出し用に空けておきます。 。
また、maxConnections設定はホストインスタンスごとであるため、同じサーバーへの複数の送信ポートが異なるホストインスタンス上にあることを回避する必要があります。または、グループ内に複数のBizTalkサーバーがあり、それを回避できない場合は、maxConnectionsを設定する必要があります。 =TargetServermaxConnections/ホストインスタンス