Take the community feedback survey now.


Dec 20, 2010
  9006
(2 votes)

Troubleshooting the Scheduler

 We have seen a influx of cases regarding the Scheduler service, so I thought it would be a good time to write about how to troubleshoot it yourself!

The deal

The scheduling service run jobs you define for it and also EPiServer's own shipped jobs, such as archiving pages, subscription and delete wastebasket pages.

But sometimes it goes wrong and the scheduler doesn't automatically run the jobs anymore. It's stuck.

The tactics

We have a few tactics we use. First one is to delete the, possibly corrupted,  config file and there's a FAQ item describing how to do that. If that doesn't work we usually suggest to the client to delete all the rows in the two tables the scheduler uses, tblScheduledItem and tblScheduledItemLog. To be able to do that you must first deactivate the foreign key defined on tblScheduledItemLog to tblScheduledItem. This can be achieved using the first line below.

ALTER TABLE tblScheduledItemLog NOCHECK CONSTRAINT ALL
ALTER TABLE tblScheduledItemLog CHECK CONSTRAINT ALL

Don't worry about truncating these two tables as they are recreated by the Scheduler service. But as always when making changes directly in the database you should take a backup. Safety first, don't forget that!

The third way is to figure it out yourself by logging the Scheduler service. The scheduler service can use the log4net logging framework (as all of our services), so you only need to drop a log4net.dll and a log4net.config (see the fileAppender section) in its folder for it to start logging. This way you can see what's causing the scheduler to fail and hopefully you can fix it yourself.

Example of a log4net.config file 

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="ErrorAppender" type="log4net.Appender.FileAppender" >
<file value="C:\temp\LogServerError.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %l - %m%n" />
</layout>
</appender>

<root>
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</root>
</log4net>

Dec 20, 2010

Comments

Please login to comment.
Latest blogs
AI Tools, MCP, and Function Calling for Optimizely

You can now integrate AI Tools, Model Context Protocol (MCP), and function calling with Optimizely CMS, allowing editors to engage with actual,...

Luc Gosso (MVP) | Oct 14, 2025 |

Optimizely Forms : Setup, Configuration and Submission

I have exploring Optimizely Forms recently –  Installed NuGet package to enable Optimizely Forms, created a Contact Us Form and placed in a landing...

Madhu | Oct 13, 2025 |

Building a Discovery-First MCP for Optimizely CMS – Part 1 of 4

This post kicks off a four-part series on how we’re evolving the Optimizely Model Context Protocol (MCP). The project is still in beta and open...

Johnny Mullaney | Oct 13, 2025 |

Jhoose Security Modules v2.5.0 – Import/Export Configs, .NET 9 Support and More

Discover what’s new in Jhoose Security Modules v2.5.0 — including import/export for configurations, Content Security Policy settings, and security...

Andrew Markham | Oct 9, 2025 |