1

We have 3 Sitecore CM instances with OnPrem VMs and we have setup 1 of the cms ( e.g. cm3) to be the publishing CM instance as mentioned in https://doc.sitecore.com/xp/en/developers/92/platform-administration-and-architecture/configure-multiple-content-management-instances.html

Now, we have 'Ideal time out' on CM3 Application pool as 20 minutes, hence with load balancer, if no request goes to cm3 or for some reason cm3 is down, then the publishing is stuck (from cm1 and cm2) and we are not sure, if publishing queue is getting cleared once cm3 is up.

One of the ideal solution would be to remove the 'Ideal time out' on cm3. But if cm3 is down for sometime, how to make sure that all the publishing requests are queued and cleared once cm3 is up?

Any advice and suggestions would be helpful.

Sitecore 9.3.0

2
  • Is using the publishing service an option? Jan 5, 2023 at 13:33
  • Hello @MichaelWest, Thanks for the suggestion. But for now we might not be able to create a complete new WebApp for publishing with the current need of content change and infra load in the project. Let me know, if there are any other suggestions, which might help.
    – D J
    Jan 11, 2023 at 12:10

1 Answer 1

0

When you trigger a publish operation in Sitecore, it creates a "Sitecore Job". These jobs are picked up by any instance that is configured to process them, which in this case is the publishing instance. If you view the following URL on your 3 different CM instances, you will note only the publishing instance picks up the publishing job.

https://your-domain/sitecore/admin/jobs.aspx?refresh=1

If an instance takes more jobs than it has capacity to handle, or if multiple jobs take a long time to process, then jobs will start to queue up (seen in the Queued Jobs pane).

If a sitecore instance was to recycle at any point in time and there were jobs "queued", then I believe those jobs would be cleared (and lost) as they are held in memory.

You say:

One of the ideal solution would be to remove the 'Ideal time out' on cm3

You should be able to achieve this by setting the Idle Time-out setting to 0, which will ensure it will never go idle.

Alternatively (or in addition) you could also setup a task on the windows Task scheduler. Set trigger to every 5 mins. Then add an action with these params:

  1. Action: start a program
  2. Program/script: powershell
  3. Add arguments: Invoke-WebRequest 'https://your-domain/sitecore/service/keepalive.aspx'

This will ensure your publishing instance is constantly being 'kept alive'.

Finally, you mention the publishing instance being down for a period of time. In this situation, there would be no instances configured (and running) that can process the publish jobs. So those publish jobs would remain unallocated and be picked up by the publishing instance when it comes online.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.