how to flush selector based caching | Community
Skip to main content
May 9, 2020
Solved

how to flush selector based caching

  • May 9, 2020
  • 6 replies
  • 20434 views

I need help on how to flush selector based caching

http://example.com/content/myapp/us/en.child1.xml
http://example.com/content/myapp/us/en.child2.xml

Lets say,we have xml's cached under the folder as
/<docroot-cache>/content/myapp/us/
->en.child1.xml
->en.child2.xml
->en.child99.xml
->en.child100.xml
->en.html
->en.model.json

I need to provide selector based caching, that is to flush en.child1.xml only and should not flush en.child2.xml or other xml's when the request for flush happens for /content/myapp/us/en.child1.xml
I've tried dispatcher flush invalidation through HTTP call like below-
GET http://mydispatcher/dispatcher/invalidate.cache
Headers
CQ-Action Activate
CQ-Handle /content/myapp/us/en.child1.xml
Content-Type Application/xml

But,all files under "us" folder(i.e. all selector for en page) gets invalidated, how to just invalidate "en.child1.xml" please suggest

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 VeenaVikraman

@vamshim15803391 got this working. Instead of Activate , you need to use DELETE as action. PFB the screenshots

 

Before

 

Flush

 

After

 

Action should be CQ-Action: Delete   instead of Activate

 

Hope this works

Thanks

Veena

 

6 replies

VeenaVikraman
Community Advisor
Community Advisor
May 9, 2020

Hi @vamshim15803391 

 

   I tried flushing the cache for the below scenario and was able to do it . Please check the screenshots

 

Before Flushing

Flush

 

After Flush

    Ideally , the files should get flushed if the invalidate headers are proper. Could you please cross check ?

 

Thanks

Veena

 

 

VeenaVikraman
Community Advisor
Community Advisor
May 9, 2020
Can you share me the folder structure of how these files are present ? For testing I manually placed files and flushed.
arunpatidar
Community Advisor
Community Advisor
May 9, 2020

Hi,

Not sure if you can do that using below command because if

 

The HTTP request has the following form:
 
POST /dispatcher/invalidate.cache HTTP/1.1  
CQ-Action: Activate  
CQ-Handle: path-pattern
Content-Length: 0

Dispatcher flushes (deletes) the cached files and folders that have names that match the value of the CQ-Handler header. For example, a CQ-Handle of /content/geomtrixx-outdoors/en matches the following items:
  • All files (of any file extension) named en in the geometrixx-outdoors directory
  • Any directory named " _jcr_content " below the en directory (which, if it exists, contains cached renderings of sub-nodes of the page)
Arun Patidar
Nirmal_Jose
Adobe Employee
Adobe Employee
May 9, 2020

Dispatcher creates .stat files in each folder from the docroot folder down to the level that you specify. The docroot folder is level 0. When an invalidation request comes in, it will clear that resource and its parent folder to which statfileslevel is set to.

 

What is your /statfileslevel property in dispatcher config set to ?

May 9, 2020
set to 2
Community Advisor
May 9, 2020

You should be able to use the ResourceOnly cache invalidation for this scenario - Refer the following video for more details https://youtu.be/teSn_Tqnizo

 

May 9, 2020

Thanks for the input Albin, I will check if this works

VeenaVikraman
Community Advisor
VeenaVikramanCommunity AdvisorAccepted solution
Community Advisor
May 11, 2020

@vamshim15803391 got this working. Instead of Activate , you need to use DELETE as action. PFB the screenshots

 

Before

 

Flush

 

After

 

Action should be CQ-Action: Delete   instead of Activate

 

Hope this works

Thanks

Veena

 

May 11, 2020
Thanks much Veena, this solution works for me.
akhoury
Adobe Employee
Adobe Employee
May 11, 2020
VeenaVikraman
Community Advisor
Community Advisor
May 11, 2020
When I tried this , CQ-ACTION : DELETE worked for this scenario even without ResourceOnly