We have recently been doing a number of Sitecore upgrades. In one of them, we have upgraded the system from Sitecore 6.5 to 7.2. After the upgrade, newly published News items didn’t appear on their news page. This used search, and upon examination of the Lucene indexes, the new items didn’t exist in the index.
Checking the Crawl logs, I noticed an entry:
4260 15:57:46 FATAL [Index=sitecore_web_index] Initialization of OnPublishEndAsynchronousStrategy failed because event queue is not enabled.
This was a good first clue. The OnPublishEndAsynchronous strategy, as it sounds, will index your newly published items after they’re published. Looking at the documentation, I see this indexing strategy described like:
During initialization, this strategy subscribes to the
OnPublishEndevent and triggers an incremental index rebuild.
If you have separate CM and CD servers, this event is triggered via the
EventQueueobject. This means that you must enable the
EventQueueobject for this strategy to work in this kind of environment.
https://doc.sitecore.net/sitecore experience platform/search and indexing/index update strategies
So, the strategy does an incremental index rebuild after publishing, and in a multi-server environment, I’ll need to enable the event queues.
Similarly, in the web.config file, the EnableEventQueues setting is described:
ENABLE EVENT QUEUES
If enabled, Sitecore sends local events to the event queue available to remote instances,
and handles events in the queue from remote instances.
Well, okay. My server doesn’t have any remote instances. There’s no separate delivery server or anything. But the error message clearly suggests that the strategy wants event queues enables – so I set them to enabled and the indexing on publish started working again.
I can only conclude that much of the documentation about this is wrong – that as the error message says, you need event queues enabled for the OnPublishEndAsynchronous strategy in Sitecore 7.2. Interestingly, the Sitecore 6.5 version of the site – the old version – did have event queues disabled, so it’s possible that the meaning/effect of this setting has changed slightly between versions of Sitecore.