Have a question on dispatcher statfileslevel
I am configuring dispatcher and doing some tests. I have set the statfileslevel as 7.
When I activate /content/we-retail/language-masters/en/products/women/shorts/candide-trail-short.html, the dispatcher touches all the stat files in content, we-retail, language-masters, en, products, women, shorts
Then I have accessed /content/we-retail/language-masters/en/products/men.html and men.html file in docroot was invalidated and pulled from publish server
When I accessed /content/we-retail/language-masters/en/products/men/coats/slopeside-coat.html, the cache is not invalidated and served from cache due to the fact that stat level is 7 and the statfile in /content/we-retail/language-masters/en/products/men/coats is not touched due to activation of /content/we-retail/language-masters/en/products/women/shorts/candide-trail-short
My question is why men.html is invalidated though it is not related to any content on /content/we-retail/language-masters/en/products/women/shorts/candide-trail-short and can we avoid this?
As these would be the highly viewed pages on the site, I want to avoid their invalidation when other page in the hierarchy is activated,
Solved! Go to Solution.
Check if you have configured the header properly. Enable debug/trace logs and debug what's happening because it works fine for me
Dispatcher logs with ResourceOnly enabled
[D] [pid 26952 (tid 1152)] checking [/dispatcher/invalidate.cache]
[I] [pid 26952 (tid 1152)] Activation detected: action=Activate [/content/we-retail/us/en/products/men/coats/portland-hooded-jacket]
[D] [pid 26952 (tid 1152)] response.status = 200
[D] [pid 26952 (tid 1152)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[D] [pid 26952 (tid 1152)] response.headers[Content-Type] = "text/html"
[D] [pid 26952 (tid 1152)] cache flushed
[I] [pid 26952 (tid 1152)] "GET /dispatcher/invalidate.cache" 200 13 1ms [website/-]
and
2019-02-01 20:03:38 - INFO - flush : Creating content for path /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Action:Activate
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Handle:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Path:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Action-Scope:ResourceOnly
2019-02-01 20:03:38 - DEBUG - flush : deserialize content for delivery
2019-02-01 20:03:38 - DEBUG - flush : No message body: Content ReplicationContent.VOID is empty
2019-02-01 20:03:38 - INFO - flush : Sending GET request to http://localhost:80/dispatcher/invalidate.cache
2019-02-01 20:03:38 - INFO - flush : sent. Response: 200 OK
2019-02-01 20:03:38 - INFO - flush : ------------------------------------------------
2019-02-01 20:03:38 - INFO - flush : Sending message to localhost:80
2019-02-01 20:03:38 - INFO - flush : >> GET /dispatcher/invalidate.cache HTTP/1.0
2019-02-01 20:03:38 - INFO - flush : >> CQ-Action: Activate
2019-02-01 20:03:38 - INFO - flush : >> CQ-Handle: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - INFO - flush : >> CQ-Path: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - INFO - flush : >> CQ-Action-Scope: ResourceOnly
2019-02-01 20:03:38 - INFO - flush : >> Referer: about:blank
2019-02-01 20:03:38 - INFO - flush : >> Content-Length: 0
2019-02-01 20:03:38 - INFO - flush : >> Content-Type: application/octet-stream
2019-02-01 20:03:38 - INFO - flush : --
2019-02-01 20:03:38 - INFO - flush : << HTTP/1.1 200 OK
2019-02-01 20:03:38 - INFO - flush : << Date: Sat, 02 Feb 2019 01:03:38 GMT
2019-02-01 20:03:38 - INFO - flush : << Server: Apache
2019-02-01 20:03:38 - INFO - flush : << Content-Length: 13
2019-02-01 20:03:38 - INFO - flush : << Content-Type: text/html; charset=utf-8
2019-02-01 20:03:38 - INFO - flush : <<
2019-02-01 20:03:38 - INFO - flush : <<
2019-02-01 20:03:38 - INFO - flush : Message sent.
2019-02-01 20:03:38 - INFO - flush : ------------------------------------------------
2019-02-01 20:03:38 - INFO - flush : Replication (ACTIVATE) of /content/we-retail/us/en/products/men/coats/portland-hooded-jacket successful.
Dispatcher logs without ResourceOnly header
[D] [pid 26952 (tid 1152)] Found farm website for localhost
[D] [pid 26952 (tid 1152)] checking [/dispatcher/invalidate.cache]
[I] [pid 26952 (tid 1152)] Activation detected: action=Activate [/content/we-retail/us/en/products/men/coats/portland-hooded-jacket]
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\we-retail\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\we-retail\us\.stat
[D] [pid 26952 (tid 1152)] response.status = 200
[D] [pid 26952 (tid 1152)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[D] [pid 26952 (tid 1152)] response.headers[Content-Type] = "text/html"
[D] [pid 26952 (tid 1152)] cache flushed
[I] [pid 26952 (tid 1152)] "GET /dispatcher/invalidate.cache" 200 13 26ms [website/-]
and
2019-02-01 20:04:28 - INFO - flush : Agent started.
2019-02-01 20:04:36 - INFO - flush : Creating content for path /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - INFO - flush : Create new HttpClient for Dispatcher Flush
2019-02-01 20:04:36 - INFO - flush : * HTTP Version: 1.1
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Action:Activate
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Handle:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Path:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - DEBUG - flush : deserialize content for delivery
2019-02-01 20:04:36 - DEBUG - flush : No message body: Content ReplicationContent.VOID is empty
2019-02-01 20:04:36 - INFO - flush : Sending GET request to http://localhost:80/dispatcher/invalidate.cache
2019-02-01 20:04:37 - INFO - flush : sent. Response: 200 OK
2019-02-01 20:04:37 - INFO - flush : ------------------------------------------------
2019-02-01 20:04:37 - INFO - flush : Sending message to localhost:80
2019-02-01 20:04:37 - INFO - flush : >> GET /dispatcher/invalidate.cache HTTP/1.0
2019-02-01 20:04:37 - INFO - flush : >> CQ-Action: Activate
2019-02-01 20:04:37 - INFO - flush : >> CQ-Handle: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:37 - INFO - flush : >> CQ-Path: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:37 - INFO - flush : >> Referer: about:blank
2019-02-01 20:04:37 - INFO - flush : >> Content-Length: 0
2019-02-01 20:04:37 - INFO - flush : >> Content-Type: application/octet-stream
2019-02-01 20:04:37 - INFO - flush : --
2019-02-01 20:04:37 - INFO - flush : << HTTP/1.1 200 OK
2019-02-01 20:04:37 - INFO - flush : << Date: Sat, 02 Feb 2019 01:04:37 GMT
2019-02-01 20:04:37 - INFO - flush : << Server: Apache
2019-02-01 20:04:37 - INFO - flush : << Content-Length: 13
2019-02-01 20:04:37 - INFO - flush : << Content-Type: text/html; charset=utf-8
2019-02-01 20:04:37 - INFO - flush : <<
2019-02-01 20:04:37 - INFO - flush : <<
2019-02-01 20:04:37 - INFO - flush : Message sent.
2019-02-01 20:04:37 - INFO - flush : ------------------------------------------------
2019-02-01 20:04:37 - INFO - flush : Replication (ACTIVATE) of /content/we-retail/us/en/products/men/coats/portland-hooded-jacket successful.
That is the default behavior of dispatcher to touch all .stat files starting from child to root.
try this-
1) Add Header CQ-Action-Scope:ResourceOnly
Invalidation (i.e. touching of .stat files) can be prevented by sending an additional Header CQ-Action-Scope: ResourceOnly. This can be used to flush particular resources without invalidating other parts of the cache, like JSON data that is dynamically created and requires regular flushing independent of the cache
source:
Thanks for the reply.
I added the header CQ-Action-Scope:ResourceOnly to dispatcher flush agent by editing the flush agent config. The agent is configured on author and I activated the agent post edit.
I still see the invalidate request is touching all the .stat files in the hierarchy when I verify dispatcher logs and even the content is invalidated.
Am I missing something here?
Check if you have configured the header properly. Enable debug/trace logs and debug what's happening because it works fine for me
Dispatcher logs with ResourceOnly enabled
[D] [pid 26952 (tid 1152)] checking [/dispatcher/invalidate.cache]
[I] [pid 26952 (tid 1152)] Activation detected: action=Activate [/content/we-retail/us/en/products/men/coats/portland-hooded-jacket]
[D] [pid 26952 (tid 1152)] response.status = 200
[D] [pid 26952 (tid 1152)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[D] [pid 26952 (tid 1152)] response.headers[Content-Type] = "text/html"
[D] [pid 26952 (tid 1152)] cache flushed
[I] [pid 26952 (tid 1152)] "GET /dispatcher/invalidate.cache" 200 13 1ms [website/-]
and
2019-02-01 20:03:38 - INFO - flush : Creating content for path /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Action:Activate
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Handle:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Path:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - DEBUG - flush : adding header: CQ-Action-Scope:ResourceOnly
2019-02-01 20:03:38 - DEBUG - flush : deserialize content for delivery
2019-02-01 20:03:38 - DEBUG - flush : No message body: Content ReplicationContent.VOID is empty
2019-02-01 20:03:38 - INFO - flush : Sending GET request to http://localhost:80/dispatcher/invalidate.cache
2019-02-01 20:03:38 - INFO - flush : sent. Response: 200 OK
2019-02-01 20:03:38 - INFO - flush : ------------------------------------------------
2019-02-01 20:03:38 - INFO - flush : Sending message to localhost:80
2019-02-01 20:03:38 - INFO - flush : >> GET /dispatcher/invalidate.cache HTTP/1.0
2019-02-01 20:03:38 - INFO - flush : >> CQ-Action: Activate
2019-02-01 20:03:38 - INFO - flush : >> CQ-Handle: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - INFO - flush : >> CQ-Path: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:03:38 - INFO - flush : >> CQ-Action-Scope: ResourceOnly
2019-02-01 20:03:38 - INFO - flush : >> Referer: about:blank
2019-02-01 20:03:38 - INFO - flush : >> Content-Length: 0
2019-02-01 20:03:38 - INFO - flush : >> Content-Type: application/octet-stream
2019-02-01 20:03:38 - INFO - flush : --
2019-02-01 20:03:38 - INFO - flush : << HTTP/1.1 200 OK
2019-02-01 20:03:38 - INFO - flush : << Date: Sat, 02 Feb 2019 01:03:38 GMT
2019-02-01 20:03:38 - INFO - flush : << Server: Apache
2019-02-01 20:03:38 - INFO - flush : << Content-Length: 13
2019-02-01 20:03:38 - INFO - flush : << Content-Type: text/html; charset=utf-8
2019-02-01 20:03:38 - INFO - flush : <<
2019-02-01 20:03:38 - INFO - flush : <<
2019-02-01 20:03:38 - INFO - flush : Message sent.
2019-02-01 20:03:38 - INFO - flush : ------------------------------------------------
2019-02-01 20:03:38 - INFO - flush : Replication (ACTIVATE) of /content/we-retail/us/en/products/men/coats/portland-hooded-jacket successful.
Dispatcher logs without ResourceOnly header
[D] [pid 26952 (tid 1152)] Found farm website for localhost
[D] [pid 26952 (tid 1152)] checking [/dispatcher/invalidate.cache]
[I] [pid 26952 (tid 1152)] Activation detected: action=Activate [/content/we-retail/us/en/products/men/coats/portland-hooded-jacket]
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\we-retail\.stat
[I] [pid 26952 (tid 1152)] Touched c:\installed_setups\Apache2.2\htdocs\content\we-retail\us\.stat
[D] [pid 26952 (tid 1152)] response.status = 200
[D] [pid 26952 (tid 1152)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[D] [pid 26952 (tid 1152)] response.headers[Content-Type] = "text/html"
[D] [pid 26952 (tid 1152)] cache flushed
[I] [pid 26952 (tid 1152)] "GET /dispatcher/invalidate.cache" 200 13 26ms [website/-]
and
2019-02-01 20:04:28 - INFO - flush : Agent started.
2019-02-01 20:04:36 - INFO - flush : Creating content for path /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - INFO - flush : Create new HttpClient for Dispatcher Flush
2019-02-01 20:04:36 - INFO - flush : * HTTP Version: 1.1
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Action:Activate
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Handle:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - DEBUG - flush : adding header: CQ-Path:/content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:36 - DEBUG - flush : deserialize content for delivery
2019-02-01 20:04:36 - DEBUG - flush : No message body: Content ReplicationContent.VOID is empty
2019-02-01 20:04:36 - INFO - flush : Sending GET request to http://localhost:80/dispatcher/invalidate.cache
2019-02-01 20:04:37 - INFO - flush : sent. Response: 200 OK
2019-02-01 20:04:37 - INFO - flush : ------------------------------------------------
2019-02-01 20:04:37 - INFO - flush : Sending message to localhost:80
2019-02-01 20:04:37 - INFO - flush : >> GET /dispatcher/invalidate.cache HTTP/1.0
2019-02-01 20:04:37 - INFO - flush : >> CQ-Action: Activate
2019-02-01 20:04:37 - INFO - flush : >> CQ-Handle: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:37 - INFO - flush : >> CQ-Path: /content/we-retail/us/en/products/men/coats/portland-hooded-jacket
2019-02-01 20:04:37 - INFO - flush : >> Referer: about:blank
2019-02-01 20:04:37 - INFO - flush : >> Content-Length: 0
2019-02-01 20:04:37 - INFO - flush : >> Content-Type: application/octet-stream
2019-02-01 20:04:37 - INFO - flush : --
2019-02-01 20:04:37 - INFO - flush : << HTTP/1.1 200 OK
2019-02-01 20:04:37 - INFO - flush : << Date: Sat, 02 Feb 2019 01:04:37 GMT
2019-02-01 20:04:37 - INFO - flush : << Server: Apache
2019-02-01 20:04:37 - INFO - flush : << Content-Length: 13
2019-02-01 20:04:37 - INFO - flush : << Content-Type: text/html; charset=utf-8
2019-02-01 20:04:37 - INFO - flush : <<
2019-02-01 20:04:37 - INFO - flush : <<
2019-02-01 20:04:37 - INFO - flush : Message sent.
2019-02-01 20:04:37 - INFO - flush : ------------------------------------------------
2019-02-01 20:04:37 - INFO - flush : Replication (ACTIVATE) of /content/we-retail/us/en/products/men/coats/portland-hooded-jacket successful.