Dispatcher Caching Issues | Community
Skip to main content
Singaiah_Chintalapudi
Level 7
September 28, 2017
Solved

Dispatcher Caching Issues

  • September 28, 2017
  • 12 replies
  • 4898 views

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.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by joerghoh

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

12 replies

joerghoh
Adobe Employee
Adobe Employee
September 28, 2017

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

Singaiah_Chintalapudi
Level 7
September 28, 2017

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.

joerghoh
Adobe Employee
Adobe Employee
September 28, 2017

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.

Singaiah_Chintalapudi
Level 7
September 28, 2017

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.

joerghoh
Adobe Employee
Adobe Employee
September 28, 2017

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

Singaiah_Chintalapudi
Level 7
September 28, 2017

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.

joerghoh
Adobe Employee
joerghohAdobe EmployeeAccepted solution
Adobe Employee
September 29, 2017

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

Singaiah_Chintalapudi
Level 7
September 29, 2017

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

joerghoh
Adobe Employee
Adobe Employee
September 30, 2017

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

October 13, 2017

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.