On one of our larger installations with multiple editors (400+), we have had a challenge where an editor did a full publish (100.000+ items), when all they had to do was a single item publish. One of the problems with doing a full publish is that the publish will block all other editors from publishing their items. A full publish would take between 10 and 30 minutes.
The blocked users will see their publish dialogue like the following:
At times our only solution was to do a IIS reset, to kill the current publish, restart the server, and do a new publish.
The customer wanted to figure out which editor did the publishes, and blocked the site. Fortunately there is a solution in Sitecore. Sitecore is AUDIT logging publishes, which means that you can find the following in your log files when published has happened:
That’s it, the above will help you debug who did the publishes, and hos often.
Other problems with doing publishes often is the performance of the server. This was specially the case in older versions of Sitecore. The solution has been updated from Sitecore 4 to 5 and is now on 6.5. In the older versions, each publish cleared the entire cache, and Sitecore didn’t log anything about which user did the publish. This was fixed by implementing a custom publish processor, that would log the activity. We still have our publish processor implemented, this is because we noised that under heavy load, the AUDIT logging of publishing events didn’t work.
I’ll write on how to do implement a custom publish processor in part 2.