Troubleshooting Execution Packages Not Running
Overview
You have successfully deployed, executed and tested your project and are now ready for scheduled execution. You have added an execution package to your project, added a schedule, but the scheduled execution package is not being executed.
This guide will help you troubleshoot the problem.
Steps to follow
-
Ensure the Jet Data Manager Scheduler X.X.X.X service is set up correctly and running (X.X.X.X is the installed version)
Make sure the scheduler service is configured with the startup type set to Automatic, and that the scheduler service is running under a domain user with appropriate rights to source systems. These rights are detailed in the article below. If the scheduler is not running, please start it.
-
The scheduler will not start even though it is configured correctly.
When you try to start the scheduler service, you get the following error:
The Jet Data Manager Server Scheduler 12.4.8.64 service on Local ! Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.
This error indicates that the user under which the scheduler service is running is pointing to an incorrect repository. The easiest way to correct this is to start Jet Data Manager using Run As... To do please locate timeXtender.exe ( C:\Program Files\Jet Data Manager Server\Jet Data Manager Server X.X.X.X ). Right-click timeXtender.exe whilst pressing SHIFT.
Enter the credentials for the scheduler user and click OK.
When Jet Data Manager opens, you will get a warning that the project repository settings are invalid. Hit OK to modify the settings.
In Project Repository, modify the server and database to reflect the server and repository for the project.
Hit OK to close Jet Data Manager.
You should now be able to start the scheduler service as described above ( Start > Control Panel > Administrative tools > Services > Jet Data Manager Scheduler X.X.X.X → Right Click and Start ).
-
Everything is set up as described above, but still, the execution packages are not executed
The reason for this is that the project has not 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 an execution package will not create a deployed version, thus the scheduler will not know of the package.
To make the new execution package available to the scheduler, you only have to deploy a single element such as a table or a view to creating a deployed version in the repository. It is recommended you locate a small table, i.e. the Company table, and deploy and execute this after you have added a new execution package. After the deployment and execution of the table, the newly added execution package will be known to the scheduler.
-
Testing correct permissions for the scheduler user
Sometimes permissions are forgotten for the scheduler user, and it can be difficult to locate exactly what is missing. The easiest way to test this is to start the Jet Data Manager as the scheduler user with the Run As... feature as described above.
In the Jet Data Manager, open the project that fails to execute. On the Execution tab, right-click the execution package and select Execute. The Execute Execution Package window is opened.
Select Start to start the execution.
Any permission error can now be located when the execution fails. If UAC (User Account Control) is enabled on the server, you might get an error message when manually executing an execution package.
If this happens, please open the JDM with the Run as administrator option (SHIFT+ right click the JDM shortcut), and click OK when warned about opening the program.
Open the project and manually execute the execution package again. After that, the problem should been corrected and the scheduler service should be able to execute the project.
-
Check the profile for the account running the Jet Data Manager Scheduler service.
Verify the account that the service is running under. In this example, the account is DDL.
Navigate to the user's profile Config.xml file for this user. This file can be found through the following path ( C:\Users\DDL\AppData\Roaming\Jet Data Manager Server\Jet Data Manager Server\14.0.1.64\Config.xml )
This file path may be different in your environment
"C:\Users\<ProfileName>\AppData\Roaming\Jet Data Manager Server\Jet Data Manager Server\<CurrentVersionOfJDM>\Config.xml"
Edit the XML file in notepad and locate the ProjectConnectionString XML tag. Ensure that the Catalog is set equal to the project repository database that contains your project.
Once the changes are made, save the XML file. The account that is running the execution package will now execute the correct project.
-
Scheduled Executions Timings
Overlapping Schedules
The Jet Data Manager Scheduler service is only capable of spinning up one execution at a time. This means that no additional scheduled executions will begin while the initially scheduled execution is still running. This is likely the case if you are experiencing a specific execution package that isn't running or a specific time that an execution package doesn't get executed. Review all scheduled execution times, and the length of execution, and ensure that none of your running executions overlap your scheduled start times.
Daylight Savings
If the systems DateTime setting is set to a timezone that adheres to daylight savings time you will need to avoid 2:00 AM as a starting time for execution packages.
-
Check the Project Repository Database
If none of the above resolutions fix your scheduled executions, then the last step is to check your Project Repository database for any hung operations. This can occur when the last execution was left in an 'Unknown/Running' state by SQL Server.
Query your repository database first to identify if there are any jobs that failed to receive a proper ending.
SELECT * FROM [projectRepository].[dbo].[ScheduleJobs] where [ProcessId] != ''
If this query returns any data, review the rows contained for anything that might be running currently (as signified by the 'LastExecuted' column. As soon as none of the contained rows are for processes that are currently running, you will then need to update the table.
UPDATE [projectRepository].[dbo].[ScheduleJobs] SET [ProcessId] = '' WHERE [ProcessId] != ''
Once these have been cleared, your next ensuing execution should begin as intended.
If you continually encounter this behavior, you can set the above 'UPDATE' script as a 'Script Action' within the Jet Data Manager's Data Warehouse. Associate the Script Action with any table in your Data Warehouse to have this ran on schedule alongside other executions.