how to flush selector based caching

Avatar

Avatar

vamshim15803391

Avatar

vamshim15803391

vamshim15803391

09-05-2020

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

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

Veena_Vikram

MVP

Avatar

Veena_Vikram

MVP

Veena_Vikram
MVP

11-05-2020

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

 

Before

Veena_07_0-1589212063897.png

 

Flush

Veena_07_1-1589212089982.png

 

After

Veena_07_2-1589212117819.png

 

Action should be CQ-Action: Delete   instead of Activate

 

Hope this works

Thanks

Veena

 

Answers (5)

Answers (5)

Avatar

Avatar

Albin_Issac

MVP

Avatar

Albin_Issac

MVP

Albin_Issac
MVP

09-05-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

 

Avatar

Avatar

Andrew_Khoury

Employee

Avatar

Andrew_Khoury

Employee

Andrew_Khoury
Employee

11-05-2020

Avatar

Avatar

Nirmal_Jose

MVP

Avatar

Nirmal_Jose

MVP

Nirmal_Jose
MVP

09-05-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 ?

Avatar

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

1.0K

Correct Answer

831
Arun_Patidar
MVP

09-05-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)

Avatar

Avatar

Veena_Vikram

MVP

Avatar

Veena_Vikram

MVP

Veena_Vikram
MVP

09-05-2020

Hi @vamshim15803391 

 

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

 

Before Flushing

Veena_07_0-1589023664271.png

Flush

Veena_07_1-1589023709579.png

 

After Flush

Veena_07_2-1589023730457.png

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

 

Thanks

Veena