This is the guide for one of three issues.
- The issue
- How to check what is running
- Is it not running
- Find the error
- Fix the issues
You had no new data after the nightly execution, but also received no failure notification in email.
This is because it did not start the nightly execution, because it never got an end date, or because it is still running.
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.
Is it still running?
How to check what is running.
I made a guide for that here Is my execution running
It is not running
The scheduler service
When you saw (by going through the above guide) that it was not running, start by checking if the Scheduler service is running.
If the Scheduler service is not running, it explains why it did not get an end and why it did not start a new one.
If it was running all along. Try to log in as the scheduler user. If it does not point to the correct repository, it will not start.
The most common causes of a scheduled execution not starting are:
- The Scheduler service is not running.
- The Scheduler service is run by a user with a different repository set up.
- The user account configured to run the Scheduler service does not have sufficient user rights within the SQL server to read and write to these tables.
To resolve the above issues, go through these articles:
- The project has not been deployed since the execution package was added.
Make sure the project has been deployed since the execution package was added. The scheduler will always open the latest deployed version of a project and check for schedules. A simple save of a project after creating a execution package will not create a deployed version, thus the scheduler will not know of the new package.
- The schedule is not enabled in the project.
Edit the schedule and ensure the "Enabled" box is checked.
- Two or more execution packages in a single project are scheduled to run at the same time.
Review the schedule for all other execution packages to resolve conflicts.
Below are additional troubleshooting scenarios.
The ProcessId issues
Take a look at the Schedule Execution Log. You can see the process id the job got here. At times this will block future executions. This is most likely the reason why it did not start.
You can remove the ProcessId by right clicking on the row and set it to empty. Some times this isn't enough, so I will add a script to deal with this issue below.
Find the error
The most common issue is that the execution doesn't start again because it is blocked by old ProcessIds. See how to fix that below.
If it is related to the service you can find the error that caused the missing fail notification. The best place to look is the event viewer. The errors will be located. If the error is out of the ordinary, send the error message to us at email@example.com.
Fix the issues
If the server service is stopped consider setting it up like this, to keep it running. Automatic (Delayed Start) is to make it wait for the SQL server to start before starting itself. Restart the service, is what it does if it accidentally fails.
Stop a currently running scheduled execution
Sometimes it simply is slow execution, perhaps a change of a lookup has made the data cleansing procedure many hours too long. To stop it, simply stop the Scheduler service. Go to the Details pane of the Task Manager. Find the timeXtender.exe processes that are running. End all of those by pressing End Task. Fix the issue in your project, deploy the changes and start the service again. You may also need to run the following to be certain it starts again.
Remove old unknown schedules
You can 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. Be sure to stop the scheduler service before running this and that no current executions are running.
UPDATE dbo.ScheduleJobs SET ProcessId = NULL WHERE ProcessId is not null or ProcessId = ''
After this, you can erase the old logs through the Repository Administration tool. The ones that have no end date are equal to those with an unknown status.
Restart the service and anything should be up and running again.