Expand my Community achievements bar.

SOLVED

Dispatcher Flush differents domains

Avatar

Level 1

Hi , I have 5 sites running in CQ 5.6 and I have 5 apache virtualhost as well , one for each domain , I have 5 farms file for the dispatcher , the problem now is how to setup a replication agent flush per domain? I read this doc http://docs.adobe.com/docs/en/dispatcher/disp-domains.html , but it doesn't work for me , 

I have for example www.site1.com , www.site2.com  ... www.site5.com , all runing in cq5.6 , how can invalidate the cache  only in site1? whitout change the url invalidation? In the previous link it says to do something like: http://localhost:80/invalidation_only/dispatcher/invalidate.cache. , but who can I invalidate only the site that I need?

1 Accepted Solution

Avatar

Correct answer by
Level 10

The document you referred is right & has additional farm invalidation_only which take care of invalidating for specific site based on stat level & should work.   If you are seeing invalidating for other site means you have not followed right structure or configuration. 

In case you are trying to have different setup and want to have different flush agents for each site.  You can get an idea how to configure from [1]  though the example given at [1] was far different use case & will applicable here also. 

[1]  http://aemfaq.blogspot.com/2013/05/how-to-configure-replication-agent-to.html

View solution in original post

10 Replies

Avatar

Correct answer by
Level 10

The document you referred is right & has additional farm invalidation_only which take care of invalidating for specific site based on stat level & should work.   If you are seeing invalidating for other site means you have not followed right structure or configuration. 

In case you are trying to have different setup and want to have different flush agents for each site.  You can get an idea how to configure from [1]  though the example given at [1] was far different use case & will applicable here also. 

[1]  http://aemfaq.blogspot.com/2013/05/how-to-configure-replication-agent-to.html

Avatar

Level 1

thanks Sham for your answer , but the farm invalidation_only in that document to invalidate every site under htdocs document root ,  it creates a stat file in each site , htdocs/content/sitea and htdocs/content/siteb , I need for example only in sitea. That is possible?

Avatar

Employee Advisor

Hi Steven,

if configured correctly, the dispatcher invalidates only the part of the content tree, where changes happened.

Avatar

Level 1

Hi Jörg  , but how could you invalidate only 1 site , lets suppose my example site1 .. until site5 , how can invalidate only site3 for example?

Avatar

Employee Advisor

Hi Steven,

Let's assume, you change /content/sitea/home.html and an invalidation is triggered. This invalidation will use the "invalidation_only" farm and therefor invalidate the files in .../htdocs/content/sitea/ (because the docroot of the cache is set to "htdocs" and the full path of the changed page is appended).

The "magic" lies in the fact, that each farm has a different docroot configured:

farm_siteA => htdocs/content/sitea

farm_siteB => htdocs/content/sitea

invalidation_only => htdocs/

Jörg

Avatar

Level 1

it is invalidating only the docroot /var/www instead of /var/www/content/test

 

apache2.conf

<VirtualHost *:80>

    DocumentRoot /var/www/content/test
    ServerName test.com

.....

   <Directory /var/www/content/test>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    RewriteEngine On
        <IfModule disp_apache2.c>
        SetHandler dispatcher-handler
            ModMimeUsePathInfo On
        </IfModule>

</Virtualhost>

 

 

DocumentRoot /var/www/

 

farm_flush.any

...

 /virtualhosts
{ "invalidation_only" }  

...

 /cache
      {
      # the cacheroot must be equal to the document root of the webserver
      /docroot "/var/www"

 

and in publish instance agent:

 

 http://172.x.x.x:80/invalidation_only/dispatcher/invalidate.cache

 

logs:

[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] Found farm farm_flush for 172.x.x.x.x
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] checking [/invalidation_only/dispatcher/invalidate.cache]
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] Activation detected: action=Activate [/etc/replication/agents.publish/test]
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] Touched /var/www/.stat
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] cache flushed
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] "GET /invalidation_only/dispatcher/invalidate.cache" 0 13 0ms

Avatar

Level 10

Steven Hayes wrote...

it is invalidating only the docroot /var/www instead of /var/www/content/test

 

apache2.conf

<VirtualHost *:80>

    DocumentRoot /var/www/content/test
    ServerName test.com

.....

   <Directory /var/www/content/test>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    RewriteEngine On
        <IfModule disp_apache2.c>
        SetHandler dispatcher-handler
            ModMimeUsePathInfo On
        </IfModule>

</Virtualhost>

 

 

DocumentRoot /var/www/

 

farm_flush.any

...

 /virtualhosts
{ "invalidation_only" }  

...

 /cache
      {
      # the cacheroot must be equal to the document root of the webserver
      /docroot "/var/www"

 

and in publish instance agent:

 

 http://172.x.x.x:80/invalidation_only/dispatcher/invalidate.cache

 

logs:

[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] Found farm farm_flush for 172.x.x.x.x
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] checking [/invalidation_only/dispatcher/invalidate.cache]
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] Activation detected: action=Activate [/etc/replication/agents.publish/test]
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] Touched /var/www/.stat
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Mon Aug 04 21:50:49 2014] [D] [29965(140529392125696)] cache flushed
[Mon Aug 04 21:50:49 2014] [I] [29965(140529392125696)] "GET /invalidation_only/dispatcher/invalidate.cache" 0 13 0ms

 

Make sure /statfileslevel value of 2 is set

Avatar

Level 1

in that moment it had the value 3 in statfileslevel , now it has 2 , but it is not going to test (/var/www/content/test) folder: 

 

[Tue Aug 05 12:03:52 2014] [D] [4343(140707247400704)] Found farm farm_flush for 172.x.x.x
[Tue Aug 05 12:03:52 2014] [D] [4343(140707247400704)] checking [/invalidation_only/dispatcher/invalidate.cache]
[Tue Aug 05 12:03:52 2014] [I] [4343(140707247400704)] Activation detected: action=Activate [/content/asdsad]
[Tue Aug 05 12:03:52 2014] [I] [4343(140707247400704)] Touched /var/www/.stat
[Tue Aug 05 12:03:52 2014] [I] [4343(140707247400704)] Touched /var/www/content/.stat
[Tue Aug 05 12:03:52 2014] [D] [4343(140707247400704)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Tue Aug 05 12:03:52 2014] [D] [4343(140707247400704)] cache flushed
[Tue Aug 05 12:03:52 2014] [I] [4343(140707247400704)] "GET /invalidation_only/dispatcher/invalidate.cache" 0 13 9ms

Avatar

Level 1

is like is not appending the docroot (/content/test) to get to /var/www/content/test:

 

[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] Found farm farm_flush for 172.x.x.x
[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] checking [/invalidation_only/dispatcher/invalidate.cache]
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Activation detected: action=Activate [/content/test]
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Touched /var/www/.stat
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Touched /var/www/content/.stat

[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] cache flushed
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] "GET /invalidation_only/dispatcher/invalidate.cache" 0 13 1ms

Avatar

Level 10

Steven Hayes wrote...

is like is not appending the docroot (/content/test) to get to /var/www/content/test:

 

[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] Found farm farm_flush for 172.x.x.x
[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] checking [/invalidation_only/dispatcher/invalidate.cache]
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Activation detected: action=Activate [/content/test]
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Touched /var/www/.stat
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] Touched /var/www/content/.stat

[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] response.headers[Server] = "Communique/2.6.3 (build 5221)"
[Tue Aug 05 12:56:15 2014] [D] [11910(140158959589120)] cache flushed
[Tue Aug 05 12:56:15 2014] [I] [11910(140158959589120)] "GET /invalidation_only/dispatcher/invalidate.cache" 0 13 1ms

Could you attach complete httpd, virtual & dispatcher any file.