2016-12-20 11 views
0

パッケージが以前の実行から既に実行されている場合でも、SQL Serverエージェントで毎分実行されるパッケージ(ラッパーになる)を作成する方法はありますか。すでに実行中の場合、SQL Serverエージェントは起動しないようです。この動作を無効にする方法はありますか? SSIS SQL Serverエージェント起動ジョブがすでに実行されている

は私が

Wrapper.dtsx 
    --> read from table of packages to run, and select next in line 
    --> execute package task with the package dynamically set from previously 
     selection 
    --> exit 

すなわち

テーブルのような何かをしたかった私は得ることができます現時点では以下のパッケージ(最終的に存在するいくつか順位を想定)

a.dtsx (say runs for 5 mins) 
    b.dtsx (say runs for 4 mins) 
    c.dtsc (say runs for 6 mins) 

    12:01 am a.dtsx is executed 
    12:02 am b.dtsx is executed 
    12:03 am c.dtsx is executed 

を持っています以下が起こる:

12:01 am a.dtsx is executed 
    12:06 am b.dtsx is executed 
    12:10 am c.dtsx is executed 

答えて

0

HmこのSQLジョブの動作は、MS SQL Serverの標準であり、変更することはできません。あなたの状況がSQL 2012以降であれば、新しいSSISカタログを非同期実行で使用することができます。これを使用すると、ジョブはパッケージの実行を開始し、終了します。したがって、あなたは1分で自由に起動できます。短所 - ジョブステータスは、パッケージが開始されたかどうか、結果が何もないことのみを表示します。自分で監視を実行する必要があります。
非同期パッケージの実行に切り替えるには、SSIS 2012+が必要で、SSISカタログDBを確立し、パッケージをProject展開モデルに切り替える必要があります。結局のところ、SQLジョブを作成してパッケージを開始し、必要なすべての接続とパラメータを指定して保存します。その後、コンテキストメニューでスクリプトジョブを - > DROPとして選択し、 - >新しいクエリエディタウィンドウにCREATEを選択します。クエリテキストで -

/Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True 

をサブストリング検索し、あなたの仕事を更新するスクリプトを実行

/Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";False 

に切り替え。
デフォルトでは、SQLジョブはパッケージを同期的に実行し、ユーザーインターフェイスで非同期オプションを公開しないため、この奇妙なスクリプト操作が必要です。

関連する問題