4

I have a Sitecore instance running on 8.1 rev. 151207 on a scaled environment with one CM and 2 CDs. I have been noticing that every time I publish content in a specific language(chinese) which has a site associated with it the cache is not cleared for that site.

For example the chinese version of the site has a site definition for the chinese site. If I inspect on the show config I see that the publish:end:remote does have the site defined as one of the sites that need the cache to be cleared on publish but it doesn`t clear.

<event name="publish:end:remote">
  <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
    <sites hint="list" patch:source="MyCustomConfig.HtmlCacheClearer.config">
      <site>mySiteChina</site>

Inspecting the logs of the CM I do see that the HtmlCacheClearer is getting captured:

5304 01:38:33 INFO  Job started: Publish to 'web'

5304 01:38:35 INFO  HtmlCacheClearer clearing HTML caches for all sites (11).

5304 01:38:35 INFO  HtmlCacheClearer done.

Also I do see the EnableEventQueues set to true in the showconfig of the CD nodes just like suggested here.

One thing to note is that I have been watching and as far as I can tell this is happening on the chinese site specifically. Others seem to have the cache cleared on publish just fine.

Also before anyone asks I have checked that indeed after the publish the content is in the web db but won`t show in the frontend site until cache is cleared.

UPDATE: Logs on CD show the following:

Heartbeat 19:28:52 INFO  HtmlCacheClearer clearing HTML caches for all sites (9).

Heartbeat 19:28:52 INFO  HtmlCacheClearer done.

Heartbeat 19:28:52 INFO  RenderingParametersCacheClearer clearing caches for the sites: website.

Heartbeat 19:28:52 INFO  RenderingParametersCacheClearer done.

Accessing the front end from within the server with this log still shows the same content.

Any thoughts on what could be wrong here?

  • Are all of your sites on all of the CDs, or is one CD for the Chinese site and the other for a different site? – Dan Sinclair Oct 29 '18 at 12:10
  • All sites are defined on all CDs. – Diego Oct 29 '18 at 12:19
  • Is there anything strange about the name of the Chinese site as compared to the other sites? – Dan Sinclair Oct 29 '18 at 12:25
  • No. the value set in publish:end:remote for <site>mySiteChina</site> is the same site name in site definition which shows for chinese site: "mySiteChina" – Diego Oct 29 '18 at 12:27
  • You mention the logs on CM show the HtmlCacheClearer running, but do you see it running on the CD logs? – Jason St-Cyr Oct 29 '18 at 19:21
3

Often, this is caused by the list of sites on the CD does not include the site you are trying to clear. When testing on the CM, everything looks fine because the full list has been deployed there, but if the CD configuration for the cache clear misses some sites then you will see this issue on the CD.

I would suggest comparing the ShowConfig for the <event name="publish:end:remote"> on CM to that on CD and look for deltas.

  • hey Jason, good catch but the delta showed a 2 preview sites which are not the one that is failing. <site>mySiteChina</site> is present in both CM and CD showconfigs. thoughts? – Diego Oct 30 '18 at 19:15
1
  1. Enable the ScalabilitySettings.config in all of your sitecore instances
  2. Make sure to find the <event name="publish:end:remote"> in your web.config and configure with appropriate sites
  3. Finally HtmlCacheClearer does not create any logs.
  • This is done already but still not working – Diego Oct 30 '18 at 12:01
1

I had a long standing issue with this in version 8.1 and worked with Sitecore support for months on this. My specific issue was that when a media item was updated, it was not always reflected on the CD. But I also had intermittent issues with non media content as well.

I eventually got it to work by

  1. Enable the scalabilitysettings.config file on the CD and CM servers. Per what Sitecore support told me, on the CD servers the <setting name="Publishing.PublishingInstance"> must be set to your publishing instance.
    For example in the scalability file on my CM instance, I have:

      <setting name="InstanceName">
    <patch:attribute name="value">CM1</patch:attribute>
    

      <setting name="Publishing.PublishingInstance">
    <patch:attribute name="value">CM1</patch:attribute>
    

on my CD instances I have:

  <setting name="Publishing.PublishingInstance">
    <patch:attribute name="value">CM1</patch:attribute>
  </setting>
  1. create a sitecore patch file and patch the following

    <setting name="Caching.HtmlLifetime">
        <patch:attribute name="value">00:00:01</patch:attribute>
    </setting>
    

    this will tell sitecore to expire the html cache

for media files patch

    <setting name="MediaResponse.Cacheability">
        <patch:attribute name="value">NoCache</patch:attribute>
    </setting>
    <setting name="Media.CachingEnabled">
        <patch:attribute name="value">false</patch:attribute>
    </setting>

these will tell the server not cache media files

By doing the above 2 items, MOST of my cache issues went away. I still encountered some caching issues. Ultimately, I upgraded to 8.2r7 and I have not experienced any caching issues since that upgrade.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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