SSIS Running Now
Overview
The second half of the title is the reason this page exists.
When the SSIS service or the host it runs on restarts, every execution that was live stays at status Running forever. Nothing times them out and nothing in SSMS points at them.
catalog.startup is the procedure that sweeps them to Ended unexpectedly, and it runs at service start. So a catalog showing week old running executions is one that was brought back up in a way that skipped it. That is a one line finding with a one line fix, and nothing in this product said it until now.
Where to find it
Expand a server in the tree, expand a database holding an Integration Services catalog, then SSIS → Running Now.
Three states, told apart
| State | What it is |
|---|---|
| Live | Started recently, writing messages, behaving. |
| Stalled | Still at Running, but its last event message is older than this package’s own ninety fifth percentile run time. |
| Pending | Created and never started. Something called create_execution and never called start_execution, which is a caller bug rather than a package problem and gets its own line. |
Why stalled is measured against the package rather than against a fixed number of minutes. Ten minutes of silence is nothing on a package that takes two hours, and is a dead process on one that takes forty seconds.
Reading the grid
| Column | What it is |
|---|---|
| Started | When the execution started, or was created for a pending one. |
| Package / Project | What is running. |
| Elapsed | How long it has been going. |
| State | Live, stalled, or pending. |
| Last message | The most recent event message from this execution. |
| Silent for | How long since that message. This is the column stalled is judged on. |
| Where it was | The execution_path of the last thing it reported, so a stalled run names the task it stopped inside. |
| Longest ever | This package’s worst recorded run, for scale. |
| Started by | The caller. |
| Host | machine_name, the SSIS host. |
| Execution | The execution_id, which is what a stop call needs. |
Nothing on this page stops anything
The right-click menu copies the catalog.stop_operation call for somebody to read and run.
That is the stance the rest of the product’s script-only pages take: stopping a live ETL execution from a monitoring report is not a decision a click should make.
The toolbar’s Script to clear stale runs does the same for the stale executions a skipped catalog.startup left behind.
The toolbar
| Control | What it does |
|---|---|
| Recent runs | Opens SSIS Packages Run. |
| Failures | Opens SSIS Package Failures. |
| Script to clear stale runs | Copies the statements for the week old Running rows, without executing them. |
Where the data comes from
| Source | What it gives |
|---|---|
catalog.executions |
Everything at status Running or Created, with its start, caller and host. |
catalog.event_messages |
The last message and its timestamp, which is what silence is measured from. |
catalog.executions (history) |
The ninety fifth percentile per package, for the stalled threshold. |
catalog.operations |
The operation behind a pending execution. |
Related reports
| Report | Why you would go there |
|---|---|
| SSIS Packages Run | Everything that ran, not only what is running. |
| SSIS Package Speed | Where the ninety fifth percentile threshold comes from. |
| SSIS Package Failures | What happened to the runs that did stop. |
| SSIS Inside the Package | The task a stalled run is sitting in. |
| SSIS Schedule | What else was running at the same moment. |
Frequently asked questions
A package has been “running” since last Tuesday. It is not running. The SSIS service restarted in a way that skipped catalog.startup, and these rows were never swept. The toolbar copies the script that clears them.
What is the difference between stalled and just slow? Silence. A slow package is still writing event messages; a stalled one stopped writing. The threshold is this package’s own ninety fifth percentile rather than a fixed number.
A row says Pending and never moves. Something called create_execution and never called start_execution. That is in the calling code, not in the package.
Can I kill a run from here? No. The page copies the catalog.stop_operation call for you to read and run yourself.