Hi,
I'm configuring dispatcher to generate the .stat file from the config:
/cache
{
# the cacheroot must be equal to the document root of the webserver
/docroot "/mnt/cache"
# sets the level upto which files named ".stat" will be created in the
# document root of the webserver. when an activation request for some
# handle is received, only files within the same subtree are affected
# by the invalidation.
/statfileslevel "1"
}
By right, the stat file should be auto-generated at docroot (/mnt/cache) when I restart apache, but there was no file generated (I check with command ls -la).
From the log when I access the dispatcher:
[Thu Sep 27 10:43:05 2018] [D] [pid 19238] Found farm publishfarm for dispatcher
[Thu Sep 27 10:43:05 2018] [D] [pid 19238] checking [/content/mywebsite/en.html]
[Thu Sep 27 10:43:05 2018] [D] [pid 19238] never flushed [/mnt/cache/content/mywebsite/.stat] -> use cache [/mnt/cache/content/mywebsite/en.html]
[Thu Sep 27 10:43:05 2018] [D] [pid 19238] cache-action for [/content/mywebsite/en.html]: DELIVER
[Thu Sep 27 10:43:05 2018] [D] [pid 19238] request declined
[Thu Sep 27 10:43:05 2018] [I] [pid 19238] "GET /content/mywebsite/en.html" - - 0ms
Please advise me on this. Any help would be appreciated.
My dispatcher version is 4.2.2 for Apache 2.4 on Linux 64 bit.
Thanks.
Solved! Go to Solution.
Views
Replies
Total Likes
Hello Manh,
The behavior you're seeing is expected. It's because you've added the statefileslevel with a value of "1".
The value of "1" means that there will be two .stat files, one at the docroot itself, and another one at docroot and one at the /content directory. So you should see a .stat file in the /mnt/cache and at /mnt/cache/content directories.
If you wish to see a .stat file generated for every single one of your content levels, you'll have to change the statfileslevel to "6", or "7" or to the depth of your site structure and then replicate a page. For example, if you wish to see the .stat file at /content/mywebsite/test1/test2/test3/test4, you'll have to set the statfileslevel to "7", restart the dispatcher and replicate the page to see the .stat file.
For further information about this stat file's usage and it's implications, please check Configuring Dispatcher
Best Regards,
Aneet Arora
Dear Manh,
Looking at your log. The request is actually being served from Cache.
Kindly look at /mnt/cache/content/mywebsite and check for .stat file there.
Regards,
Peter
as your statfilelevel is set to 1, it should be under /content/mywebsite
Hi guys,
Thanks for replying.
I checked at the path /mnt/cache/content/mywebsite with command "ls -la", but I see no stat file created (I'm logged as root).
Views
Replies
Total Likes
You need to configure a flush agent (Invalidating Cached Pages From AEM ) and replicate at least once. Then check /mnt/cache/content/mywebsite for a .stat file
Hello Manh,
The behavior you're seeing is expected. It's because you've added the statefileslevel with a value of "1".
The value of "1" means that there will be two .stat files, one at the docroot itself, and another one at docroot and one at the /content directory. So you should see a .stat file in the /mnt/cache and at /mnt/cache/content directories.
If you wish to see a .stat file generated for every single one of your content levels, you'll have to change the statfileslevel to "6", or "7" or to the depth of your site structure and then replicate a page. For example, if you wish to see the .stat file at /content/mywebsite/test1/test2/test3/test4, you'll have to set the statfileslevel to "7", restart the dispatcher and replicate the page to see the .stat file.
For further information about this stat file's usage and it's implications, please check Configuring Dispatcher
Best Regards,
Aneet Arora
Great response Aneet!
Views
Replies
Total Likes
I think there is a miss communication out here, the stat file is not appearing for him, according to the theory, it should appear and he is asking why it is not appearing. correct me if I am wrong
That's my understanding as well. And my response addresses that with some more details.
To answer your question, it is not the right expectation that .stat file will be generated in all the directories in the cache. So I answered the question stating "why is it not appearing" because the "statfileslevel" is set to "1", which means .stat files will only be generated at docroot and one level below docroot, that's it.
Please test this out on your end as well for confirmation.
Hi guys,
Thanks for sharing your thought.
I found the issue, that the dispatcher flush agent is set the HTTP headers to "CQ-Action-Scope: ResourceOnly". I removed it then do a replicate, the .stat files are generated.
From my understand, it's used for the dispatcher flush rules inside ResourceOnly. Can I know if I remove this from dispatcher flush agent is ok? I still have some dispatcher flush rules inside ResourceOnly (in OSGi config).
Regards,
Manh
Views
Replies
Total Likes
Generally we use this "CQ-Action-Scope: ResourceOnly" if you want to invalidate particular resources without touching stat file on daily basis, example: external feeds, JSON responses etc... please check if you have any requirement on this before deleting
Views
Replies
Total Likes
I'm having the same issue. The ".stat" file was never created. When the page is activated I don't see any logs in dispatcher_log file. Was hoping to see log something like this when the page is activated.
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] Found farm sites for localhost
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] checking [/dispatcher/invalidate.cache]
[Sat Jan 09 21:07:19 2021] [I] [pid 8:tid 139698416600832] Activation detected: action=Activate [/content/we-retail/us/en]
[Sat Jan 09 21:07:19 2021] [I] [pid 8:tid 139698416600832] Touched /etc/httpd/httpd_www/aem_sites/.stat
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] response.status = 200
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] response.headers[Content-Type] = "text/html"
[Sat Jan 09 21:07:19 2021] [D] [pid 8:tid 139698416600832] cache flushed
[Sat Jan 09 21:07:19 2021] [I] [pid 8:tid 139698416600832] "GET /dispatcher/invalidate.cache" 200 purge [sites/-] 7ms
In Flush Agent, when I test the connection I see the connection properly established however, I see the success message something like this.
022-06-03 00:00:42 - << color: #EB957D;
2022-06-03 00:00:42 - << text-shadow: 0 0 3px black;
2022-06-03 00:00:42 - << }
2022-06-03 00:00:42 - << </style>
2022-06-03 00:00:42 - << </head>
2022-06-03 00:00:42 - << <body>
2022-06-03 00:00:42 - << <div class="error-page-wrap">
2022-06-03 00:00:42 - << <article class="error-page gradient">
2022-06-03 00:00:42 - << <hgroup>
2022-06-03 00:00:42 - << <h1>403</h1>
2022-06-03 00:00:42 - << <h2>Are you lost?</h2>
2022-06-03 00:00:42 - << <br/>
2022-06-03 00:00:42 - << </hgroup>
2022-06-03 00:00:42 - << </article>
2022-06-03 00:00:42 - << </div>
2022-06-03 00:00:42 - << </body>
2022-06-03 00:00:42 - << </html>
2022-06-03 00:00:42 - Message sent.
2022-06-03 00:00:42 - ------------------------------------------------
2022-06-03 00:00:42 - Replication (TEST) of /content successful.
not sure where is wrong? I made sure there is not permission issue from dispatcher side.
Thank you!
Views
Replies
Total Likes
Views
Likes
Replies