[Dispatcher] .stat file not generated | Community
Skip to main content
New Participant
October 1, 2018
Solved

[Dispatcher] .stat file not generated

  • October 1, 2018
  • 11 replies
  • 9708 views

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.

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 aneetarora

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

11 replies

New Participant
June 3, 2022

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!

 

raj_mandalapu
New Participant
October 3, 2018

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

New Participant
October 3, 2018

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

Employee
October 2, 2018

rajas66269496

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.

raj_mandalapu
New Participant
October 2, 2018

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

smacdonald2008
New Participant
October 2, 2018

Great response Aneet!

aneetaroraAccepted solution
Employee
October 2, 2018

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

Employee
October 2, 2018

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

New Participant
October 2, 2018

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).

Lokesh_Shivalingaiah
New Participant
October 1, 2018

as your statfilelevel is set to 1, it should be under /content/mywebsite