2017-04-17 21 views
1

スクリプトタスクを使用して大量のデータを読み込むSSISパッケージがあり、次のようなメモリ例外の問題が発生しました。SSISスクリプトのapp.configの欠如の解決メモリ例外の問題を解決するタスク

System.OutOfMemoryException: 'System.OutOfMemoryException'型の例外がスローされました。

これらはフレームワークの既定の制限を超えて増加するList<T>が原因で発生しています。 MSDNサイトによると、私は私のapp.configファイルに次のように設定する必要があります。

<gcAllowVeryLargeObjects enabled="true" /> 

SSISは、任意のapp.configをまたはWebから読み取るようには見えないので、しかし、私はこれを行うことはできません。設定ファイル。これはスクリプトタスクの制限と思われます。

私はポストhereを見て、インストールディレクトリのさまざまな設定ファイルを見て、上記のXMLスニペットを追加しましたが無駄にしました。このようにすることはできますか?これを回避するには別の方法が必要ですか?

私は64ビットとしてプロセスを実行していることに注意してください。

ありがとうございました。

+0

にあります。すべてのオブジェクトを一度にメモリにロードする必要がありますか?完全なブロックではなくストリームまたはキューとして扱うことはできますか? –

+0

最終目標は、データをMongoDBにロードすることです。実際にConcurrentBag を使用しています。呼び出しがマルチスレッド設定で行われているため、ストリーム/キューを使用したくない理由は、スクリプトエラーの場合は何も挿入しないためです。パッケージ/スクリプトタスクの失敗の場合に削除計画を設定するのではなく、私が挿入する前に全容量までリストを構築します。 – RizJa

+0

クラスプロジェクト(app configを使用)を作成し、スクリプトタスクからdllを参照できます。 –

答えて

0

this articleと私の経験によると - あなたはサーバーのパッケージのexecまたはBIDSまたはVSでのデバッグのためのDtsDebugHost.exe.configためDTExec.exe.configのいずれかを変更し、または両方のファイルを変更する必要があります。
これらのファイルはC:\Program Files\Microsoft SQL Server\<Version #>\DTS\Binn\

関連する問題