Search code examples
dotnetnuke

DotNetNuke schedules running on a webfarm causing blocking


I have a website running on DotNetNuke v09.02.02 on a webfarm of 3 servers and I have a problem with the PurgeScheduleHistory.

The PurgeScheduleHistory runs once a day, but it's running at the same time from each of the servers and I frequently see dead locks because each server is trying to do the same operation.

I know the procedure can be optimized but I believe I could still see the same problem of each server picking up the Schedule History and deleting it as another server is trying to do the same.

Does DotNetNuke have a setting or ability to only run the schedules from a specified server and not others?

Has anyone else experience of running DotNetNuke on a webfarm?


Solution

  • Yes, if you navigate to the scheduler configuration there is a "Run on Server(s)" setting, by default it is blank, you can and should, update that to list the name of a single server in your environment.

    You should do this for any of the services that do not need to run on all servers, I don't have an exhaustive list at the moment but items to consider

    • Purge Schedule History
    • Search Index/Crawler
    • Message Dispatch

    Basically anything that is DB driven should be done on a single server in this manner.