メモリ不足の例外は、ガベージコレクタが要求された割り当てを実行するのに十分なメモリを解放できなかった場合にのみ発生します。これは、メモリリークがある場合に発生します。これは、ガベージコレクションされたプラットフォームでは、オブジェクト参照が必要以上に長く保持されることを意味します。頻繁なリークの原因は、グローバルデータ(静的変数)を保持するオブジェクトです(シングルトン、キャッシュ、参照を長時間保持するプールなど)。
GC.Collectを明示的に呼び出すと、暗黙的な収集が失敗したのと同じ理由でメモリが解放されません。したがって、GC.Collectを呼び出すと、オーケストレーションが遅くなるだけです。
あなたのオーケストレーションから.NETクラスを呼び出す場合、私は
(何のBizTalkが関与していない)純粋な.NETアプリケーションから同じクラスを呼び出すことによって、問題を特定しようと提案することが、何のリークはありませんということも可能です各インスタンスが同時に多くのメモリを消費していることを示します。 BizTalkは通常、オーケストレーションが必要であると判断するとオーケストレーションを脱水できますが、オーケストレーションのステップ(またはアトミックスコープの大きいもの)が実行に時間がかかりすぎると、BizTalkがその操作を行うことを防ぐことができます。
1400 mbも、15個の同時インスタンスに対して大きく見えます。あなたはオーケストレーションの大きなメッセージの操作をしていますか?その場合、メッセージ全体を強制的にメモリにロードし、代わりにストリーミングを使用してメッセージを操作する操作を避けることで、メモリ使用量を大幅に削減できます。