Job Service is not completing any jobs
If the Job Service is not completing any jobs:
-
Ensure that the service is running. Start it if it is not. Check the errors.log file in the Job Scheduler directory for any irregularities.
-
Can't connect to the database - If you're seeing the following error in the errors.log file, the Job Service isn't able to connect to the database:
"Quartz.JobPersistenceException: Failed to obtain DB connection from data source 'ds': System.Data.SqlClient.SqlException: Cannot open database "TelligentEvolution" requested by the login. The login failed."
Verify the connection string and that appropriate permissions are set on the database, then restart the service.
Check for errors in the errors.log file in the Job Scheduler folder.
Note about the Job Service in single server environment
These instructions only apply for a single server setup where the Job Service and SQL Server are on the same machine.
Problem:
The default SQL and Job Service configurations both have their startup types set to "Automatic." This means that the Job Service services may try to start up before SQL Server is started after a system reboot. When this happens, the Job Service is unable to connect to SQL Server on startup and thus crashes. Unless recovery options have been explicitly set for the service, the service will not attempt to start up until the next reboot, which might lead to another crash.
Solution:
Ensure the SQL Server service is set to "Automatic" and that the Job Service service is set to "Automatic (Delayed Start)."
An alternative would be to add a dependency on SQL Server to all Job Service services. However this can be a little trickier than simply changing the startup type. (Need to use the sc.exe command line utility rather than the services.msc GUI).
For similar reasons, it is probably also a good idea to set up Mail Gateway the same way (although if you choose the dependency route, it should be dependent on both SQL Server and IIS).
As an example, a quick PowerShell script that can be used to change all Telligent* services on a server to use Delayed start is:
get-service Telligent* | select -ExpandProperty Name | % {sc.exe config $_ start= delayed-auto }