Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Dispatcher Caching Issues

Avatar

Community Advisor

We set the /statfileslevel to 5.

Issue 1:

content tree:  /content/myproject/en/firstlevel/secondlevel/thirdlevel/fourthlevel/fifthelevel/sixthlevel/child pages

If I activate the fourthlevel page, it is invalidating the fourthlevel page and its parent pages (until secondlevel). Because our /statefile is set 5 and it is touching all of these .stat files upon page activation. It is not flushing the /fifthelevel/sixthlevel/child pages.

But adobe documentation shows it will flush the bottom pages not the top pages.

Issue 2:

We have a iParsys on sixthlevel. Whenever we update any content on iParsys and publish the sixthlevel page, it is flushing only the sixth level page not the child pages which are inheriting the sixthlevel content. So we had to manually flush the cache.

Based on this thread, it should flush the all child pages.

https://forums.adobe.com/thread/2339221

Thanks.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Hi,

ah, that's a different story then. Set the dispatcher loglevel to "3", restart the dispatcher, execute one of the requests which are not forwarded to AEM and provide us with the relevant part of the logfile then.

Jörg

View solution in original post

12 Replies

Avatar

Employee Advisor

Hi,

When you have

/content/myproject/en/firstlevel/secondlevel/thirdlevel/fourthlevel/fifthelevel/sixthlevel /child

as path, and have statefilelevel set to 5, it will have 5 levels of .stat files. There will be a statefile at

  • /.stat
  • /content/.stat
  • /content/myproject/.stat
  • /content/myproject/en/.stat
  • /content/myproject/en/firstlevel/.stat
  • /content/myproject/en/firstlevel/secondlevel/.stat

If you will have an invalidation coming it /content/myproject/en/firstlevel/secondlevel/thirdlevel/something.html, it will touch the statfile at /content/myproject/en/firstlevel/secondlevel/.stat, and therefor invalidate all files within this folder and all subfolders. It does not need to have a dedicated stat file at lower levels, because if there is no .stat file in a directory, the dispatcher will look up higher in the hierarchy until it finds a statfile and then compare the timestamps.

So this works as designed.

What is your expectation on flushing? Do you expect that all files in the dispatcher cache are removed, which are flushed? That's not case. Invalidation in the dispatcher just means touching statfiles.

Kind regards,
Jörg

Avatar

Community Advisor

Thanks for the explanation.

If you invalidate the /content/myproject/en/firstlevel/secondlevel/thirdlevel/something.html, it is touching all the .stat files. However, its not invalidating the files in this folder/subfolders.

Please let me know if you need more details.

Avatar

Employee Advisor

If you assume "invalidation = removal", then the invalidation is not working. But as I already said, invalidation does not work this way, it does not remove files or complete subdirectories from the cache.

Avatar

Community Advisor

I understand. 

Whenever I request for these sub-level pages then those are serving from the dispatcher cache (Time stamp of those files are not changing). It suppose to fetch those from publish and replace these invalidated cached files.

So its clearly not invalidating the sub folders.

Avatar

Employee Advisor

The dispatcher is not removing the invalidated files immediately. But when a request for an invalidated file comes, the request will be forwarded to the AEM instance and the response is then used to overwrite the stale file in the dispatcher cache. And then the timestamp is up-to-date (younger than the timestamp of .stat file) and the file is considered fresh again.

Jörg

Avatar

Community Advisor

True.

But dispatcher is not forwarding the requests to AEM instance for child pages.

This is what I am trying to explain. Sorry for any confusion.

Avatar

Correct answer by
Employee Advisor

Hi,

ah, that's a different story then. Set the dispatcher loglevel to "3", restart the dispatcher, execute one of the requests which are not forwarded to AEM and provide us with the relevant part of the logfile then.

Jörg

Avatar

Community Advisor

Thanks. It worked. The dispatcher documentation is little confused. I found below article is helpful.

http://aempodcast.com/2016/infrastucture/year-desert-aem-dispatcher/#.Wc7U7VtSxaQ

Avatar

Employee Advisor

If you like, you can raise a Daycare issue and ask for the improvement of the documentation. Especially if you get specific what in detail is confusing it's likely that the documentation will get updated.

(If you post the Daycare ticket ID, I can have a look at it :-))

Jörg

Avatar

Level 1

Hi

I'm Facing an issue

issue with iparsys caching on ‘Canceling inheritance’

I believe we might be able to reproduce the steps with Geometrixx site as that come up with an iparys.

Following steps are from our QA team for our custom implementation:

  1. Create a DC footer with language, like dc/us/en
  2. Re-edit the Inheritance of footer component in dc/us/en, checked “Cancel Inheritance”
  3. Check the footer in prior page again – the footer is still show after refresh.
  4. Checked on another page, which was not viewed in step#2(no cache), the page was loaded without footer.

Avatar

Employee Advisor

Hi,

in that case it seems that the invalidation seems not to work correctly.

  1. Can you validate that the dispatcher is setup properly?
  2. Also check that the browser caching is not interfering
  3. Can you do the tests without going through dispatcher?

Jörg

Avatar

Community Advisor

It depends in the stat file level. Dispatcher does not automatically invalidates the child pages even the replicated/parent page has iparsys.