2010-12-27 8 views
0

OLEDBソースでストアドプロシージャを実行し、出力をファイルに書き込むSSIS pkgがあります。ストアドプロシージャは、特定の曜日であれば何もしないという条件があります。データを生成するときは、いくつかの一時テーブルをステップして最終的なデータを生成します(これは完全に一時テーブルから得られます)。ストアドプロシージャは開始時にSET FMTONLY OFFを有効にしているので、メタデータをSSISに送信できます。 (関連する2つのサーバーは、Windows 2008サーバーボックス上のSQL Server 2008です。)SSISがストアドプロシージャのメタデータを失った

昨夜(日曜日/月曜日はデータが生成されるべきではない日が実行されていた日曜の夜でした。より大きいジョブであるため、親が実行されている間はいつでも実行されます)、pkgはストアドプロシージャのメタデータを見つけることができないと不満を持ち始めました。 SQL Mgmt Studioでサーバー上で直接procを実行すると、行は返されませんが列ヘッダーは返されません。しかし、開発環境のコードとデータはまったく同じではありません。データは返されませんが(正しい)、カラムヘッダーも表示されます(正しい)ので、devのバージョンのpkgはメタデータに不平を言っていません。

私はまた、実行されていないコードの中でprocの先頭に 'dummy'メタデータを追加するトリックを試みました(1 = 0の場合は、select1 cast(nullとしてvarchar(10)しかし、それはdiddlyをしなかった。

メタデータを本番環境にキャッシュしないで、開発を続けるという、生産と開発の設定に違いがなければならないと思っています。誰でもどこから見始めたらいいですか?

答えて

0

これはSSISの問題でもメタデータの問題でもないと思います。 Management Studioで実行すると、procは開発中に空のデータセット(列ヘッダーのみ)を返し、は全く生産していません。生産中です。これは問題です。つまり、プロクシが空のデータセットではなく何も返さない可能性があります。そのため、SSISはメタデータについて不平を言っています。

プロダクションとデータが本番環境と開発環境でまったく同じであることを再度確認します。すべてのコードパスが何かを返すか(つまり、何かが何も返さないコードパスにプロダクションを引き起こす可能性がありますか)

+0

あなたは正しい方向に私を指摘しました。保存されたprocは、日曜日と月曜日には続行されないように設定されていたため、日曜日にパッケージから起動されたときには、procでメタデータを生成するのに十分な時間がかかりませんでした。したがって、メタデータは失われてしまいます。私はその日をパッケージ自体にチェックし続け、それを一度実行させて、今度は再びうれしいです。 – Valkyrie

関連する問題