The normal way to tell that a execution is running is by going to the Execution pane and there will be a note about a execution packages last run time. Right click on that and go to the execution overview. This will show the start time and the end time. It is running if the End is equal Unknown/Running, total time is empty and the succeeded equal Unknown.
Now the issues could be:
- There was more than one End and Succeeded with the status Unknown.
- Alternatively you start it up for the morning and it still have that status, even though it has been running for three times as long as normal.
- I have many projects in the same repository, are there more than one execution packages running right now.
Are they still running?
How to check what is running.
View Execution History Log
First off. If the log execution time is set, then you can press View on the Gantt Chart field. It is normally needed to remove the check at Auto Update. Then it will stop updating and you can see specifically what it just ran.
The task manager can also provide information. If it is currently running, it is shown under timeXtender Client as CPU load. If all of the timextender one is 0%, nothing is running.
SQL Server Profiler
If you want a more specific detailed explanation of what is happening outside our program.
You can use the SQL Profiler. You start it by going to Tools in SQL Management studio and choosing SQL Server Profiler. This is the common setup.
Then press Run and you will see all SQL commands being sent to the server.
A specific Currently Running script
It will still require some detective work to figure out what execution package is being run, or not.
You can run the script below this. It shows a single line of text regarding what is happening.
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
What it shows you is similar to a single line of what the Profiler shows.
You can also remove them with the two following scripts. The first part is the one that gets you the schedules that have issues. Run it against the repository database.
SELECT * FROM dbo.ScheduleJobs WHERE ProcessId is not null or ProcessId = ''
The second part makes sure they do not block new scheduled jobs from running. It does not erase anything.
UPDATE dbo.ScheduleJobs SET ProcessId = NULL
After this you can erase the old logs through the Repository Administration tool. The ones that has no end date is equal those with an unknown status.