3

大きなフラット ファイルを BizTalk Server 2006 (R2 ではなくオリジナル リリース) にロードしています - 約 125 MB。それに対してマップを実行し、各行を取得してストアド プロシージャを呼び出します。

オーケストレーション処理中に OutOfMemoryException を受け取り、Windows サービスが再起動し、2 GB のメモリをすべて使用して、再びクラッシュします。

サーバーは 32 ビットで、/3GB スイッチを使用するように設定されています。

また、フローを 3 つのホストに分けました。1 つは受信用、もう 1 つはオーケストレーション用、3 番目は送信用です。

このファイルをエラーなしで処理するための提案はありますか?

ありがとう、クリップ

4

2 に答える 2

3

これがマップを介して送信されるフラット ファイルである場合、それは XML に変換されますよね? サイズの増加は巨大になる可能性があります。XML は、フラット ファイルの 5 ~ 10 倍の係数を簡単に追加できます。特に、わかりやすいまたは長い xml タグ名を使用する場合 (通常はそうします)。

簡単に試すことができるのは、xml ノードの名前を短い名前に変更することです。これは、実際にはメモリ フットプリントにかなり大きな影響を与える可能性があるレコードの数 (かなり多いように聞こえます) によって異なります。

おそらく、よりエンタープライズなアプローチは、カスタムパイプラインでこれを個別のメッセージパケットに細分化し、システムを介して管理しやすいチャンクでフィードできるようにすることです (Chris が提案するものと同様)。その後、システムのスロットリングとメモリ メトリックが引き継がれる可能性があります。データについて詳しく知らなければ、これを行う最善の方法を言うのは難しいでしょうが、125 MB のファイルでは、おそらく、順次処理する必要のない大量の繰り返し行があると思います。

于 2010-04-06T22:44:48.580 に答える
2

どこでクラッシュしますか?Transform シェイプを通過しますか? もう 1 つの推奨事項は、受信ポートで変換を実行することです。より効率的な処理のために、メッセージをデバッチし、複数の同時オーケストレーション インスタンスでストアド プロシージャを呼び出すこともできます。これにより、メモリ プロファイルが確実に減少し、パフォーマンスが向上します。

于 2010-03-30T14:52:58.903 に答える