SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
AEM DISPATCHER
TIPS & TRICKS
Practical Scenarios, Issues, Tips and Tricks in
configuring AEM dispatcher
Farms
• Split dispatcher configuration into multiple farms
• Have as many farms as the different caching behavior needed
• E.g., DAM & Pages almost always need different caching behavior. DAM
assets are independent while Pages has dependencies amongst each other
• All configuration parameters are at farm level and can be
configured differently for each farm
• Avoid having single long configuration file
• Decompose farm configuration elements into independent files and include
them into a farm configuration file
• Include all farm configuration file into the dispatcher.any file
Apart from bringing in clarity, this would help avoid duplicating configuration entries. For
example, renderers & allowed clients for all farms might be same, while cache invalidation
behavior would be different. Have the configuration files split as appropriate for your
scenario
Cache Folder
• Its possible to configure different cache folder for each dispatcher
farm
• Can have cache folder of one farm nested within the cache folder
of the other farm
• We can use this to have one farm touch the stat file at a different
level on other farm
• For example, we can have one farm have the cache root as htdocs
and another farm have cache root as htdocs/content. This creates
the folder and corresponding .stat file entries as
• htdocs (.stat)
• content (.stat)
• content (.stat)
Cache Invalidation
• When having multiple farms, which farm configuration gets used
for cache invalidation requests?
• Cache invalidation requests does not use the configuration of the
farm that matches the resource that gets invalidated
• Cache invalidation requests for all resources is to the url
/dispatcher/invalidate.cache and matches the farm that handles
this url
• The resource to invalidate is set in the http header CQ-Handle
• Use url rewrite in Apache to append CQ-Handle to
/dispatcher/invalidate.cache to match the farm of the resource
invalidated
Vanity URL’s
• AEM simplifies managing vanity url’s for a page, allowing setting
multiple vanity url’s for a page
• Vanity url can be any valid url string, irrespective of the level or
depth of the source page
• When accessing a page through its vanity url, dispatcher caches
that page at the path which is the same as that of the vanity url
• But AEM does not generate the cache flush request for the vanity
path, cache flush request is generated only for the full path of the
page
• Only easy option to handle this is to set the statfileslevel to 0 for
the farm which handles vanity url’s
Dispatcher Cache Flushing
• Cache flushing from Author is easy, always possible, but might
lead to race condition
• Do not use this if your site has significant customer load and content
publishing might happen when there is customer activity on the site
• Cache flushing from Publish is tricky unless you have just one
publisher and one dispatcher
• Gets even more trickier if dispatcher is used for load balancing
Remember you cannot do the configuration on the publisher directly, all configuration should
be done on the author and activated to be applied on the publish instance (at least when you
are doing it straight)
Some Dispatcher Cache Flushing Scenarios
• One publisher and one
dispatcher, the easiest but
hardly used configuration
• Configure the dispatcher
flush agent for publish on
the author and activate it
• Single publisher flushes
the activated resources on
the dispatcher
P
D
A
Some Dispatcher Cache Flushing Scenarios
• Multiple publishers and one
dispatcher
• It might be acceptable if
each publisher flushes the
cache if the no. of
publishers is 2. This would
not be acceptable when no.
of publishers increases
• Designate one or two
publishers as flushing
publisher and configure
dispatcher cache flush
agent on those publishers
P
D
A
P
Race condition might occur when the flushing publisher
clears the cache and the dispatcher updates the cache
from the other publisher where replication has not been
completed yet. But the probability of such race condition
is less compared to cache flushing from Author
Dispatcher Cache Flush Agent configuration
directly on publish instances
• Use curl scripts on publish to create the dispatcher cache flush
agent
• Configure the dispatcher cache flushing agents on the Author,
create packages of the cache flushing agents as needed by selecting
appropriate nodes and install it on the publishers as needed
• Login to the publisher to do the configuration (AEM doesn’t
directly support this, but allows access to the login page and after
login allows access to tools page for doing this configuration)
Some Dispatcher Cache Flushing Scenarios
• Multiple publishers, multiple
dispatchers, but each publisher
is connected to single
dispatcher and vice versa
• Looks straight forward, but
there is no way to handle
dispatcher cache flushing
through Author.
• Use one of the option
mentioned in the slide
‘Dispatcher Cache Flush
Agent configuration directly
on publish instances’ to
configure
P
D
A
P
D
No race condition in this configuration as each publisher
flushes the cache on its corresponding dispatcher. For
this reason, its preferable to have one to one match
between publisher and dispatcher
Some Dispatcher Cache Flushing Scenarios
• Multiple publishers with
multiple dispatchers
• It might be acceptable if each
publisher flushes the cache on
each dispatcher if the no. of
publishers and dispatcher is 2.
This would not be acceptable
when no. of publishers or
dispatchers increases
• Designate one or two
publishers as flushing publisher
for each dispatcher and
configure the dispatcher cache
flush agent for that dispatcher
on those publishers
P
D
A
P
D
Again race condition might occur in this
configuration. Reason for configuring more then one
publisher to clear cache on a dispatcher is to reduce
the probability of occurrence of the race condition
Some Dispatcher Cache Flushing Scenarios
• Multiple publishers with
multiple dispatchers with each
publisher having its
corresponding dispatcher
• Dispatcher and publisher are
hosted on the same server
• This configuration becomes
easy for configuring dispatcher
cache flush agent.
• Agent can be configured on the
Author, mentioning localhost
or 127.0.0.1 as dispatcher
address and replicated to all
publishers
P
D
A
P
D
This configuration would not be possible if web
server needs to be deployed in the DMZ.
Disabling Dispatcher Cache for select clients
• There might be scenarios when we might need to bypass dispatcher
cache and access page in AEM from some client for test purpose
• One approach to do this is to set a cookie and have server check
this cookie to decide if it needs to fetch the page from cache or
serve it from the source directly
• Dispatcher does not use cookie as a parameter to decide caching
behavior
• To handle such scenario, use url rewrite on Apache to fetch the
cookie, and set it as url parameter
• Configure dispatcher farm to not ignore this url parameter for
caching
THANK YOU
Feedback and suggestions welcome. Please write to
ashokkumar.ta@gmail.com

Contenu connexe

Tendances

Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
AEM HUB
 
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
Clément Wehrung
 

Tendances (20)

AEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep DiveAEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep Dive
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
A Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityA Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications security
 
AEM 6.1 User Interface Customization
AEM 6.1 User Interface CustomizationAEM 6.1 User Interface Customization
AEM 6.1 User Interface Customization
 
Sightly - Part 2
Sightly - Part 2Sightly - Part 2
Sightly - Part 2
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101
 
Hacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sitesHacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sites
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우
 
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programsAEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
 
What should a hacker know about WebDav?
What should a hacker know about WebDav?What should a hacker know about WebDav?
What should a hacker know about WebDav?
 
Securing AEM webapps by hacking them
Securing AEM webapps by hacking themSecuring AEM webapps by hacking them
Securing AEM webapps by hacking them
 
What’s wrong with WebSocket APIs? Unveiling vulnerabilities in WebSocket APIs.
What’s wrong with WebSocket APIs? Unveiling vulnerabilities in WebSocket APIs.What’s wrong with WebSocket APIs? Unveiling vulnerabilities in WebSocket APIs.
What’s wrong with WebSocket APIs? Unveiling vulnerabilities in WebSocket APIs.
 
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPra
 
CSS
CSSCSS
CSS
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 

Similaire à Aem dispatcher – tips & tricks

Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
Jess Coburn
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
Andrew Miller
 
Cdn slides
Cdn slidesCdn slides
Cdn slides
masmanx
 
MySQL Replication Basics
MySQL Replication BasicsMySQL Replication Basics
MySQL Replication Basics
Abdul Manaf
 
Django book15 caching
Django book15 cachingDjango book15 caching
Django book15 caching
Shih-yi Wei
 

Similaire à Aem dispatcher – tips & tricks (20)

Aem offline content
Aem offline contentAem offline content
Aem offline content
 
Lesson 1 configuring
Lesson 1   configuringLesson 1   configuring
Lesson 1 configuring
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Best wordpress hosting
Best wordpress hosting Best wordpress hosting
Best wordpress hosting
 
WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
AWS Elasticity and Auto Scaling
AWS Elasticity and Auto ScalingAWS Elasticity and Auto Scaling
AWS Elasticity and Auto Scaling
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - Varrow
 
Aem maintenance
Aem maintenanceAem maintenance
Aem maintenance
 
be the captain of your connections deployment
be the captain of your connections deploymentbe the captain of your connections deployment
be the captain of your connections deployment
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Chef: Smart infrastructure automation
Chef: Smart infrastructure automationChef: Smart infrastructure automation
Chef: Smart infrastructure automation
 
Cdn slides
Cdn slidesCdn slides
Cdn slides
 
MySQL Replication Basics
MySQL Replication BasicsMySQL Replication Basics
MySQL Replication Basics
 
WordPress Hosting Best Practices - Do's and Don't s | WordPress Trivandrum
WordPress Hosting Best Practices - Do's and Don't s  | WordPress TrivandrumWordPress Hosting Best Practices - Do's and Don't s  | WordPress Trivandrum
WordPress Hosting Best Practices - Do's and Don't s | WordPress Trivandrum
 
Infrastructure modeling with chef
Infrastructure modeling with chefInfrastructure modeling with chef
Infrastructure modeling with chef
 
Relational Database Services on AWS - Bill Baldwin
Relational Database Services on AWS - Bill BaldwinRelational Database Services on AWS - Bill Baldwin
Relational Database Services on AWS - Bill Baldwin
 
Building faster websites: web performance with WordPress
Building faster websites: web performance with WordPressBuilding faster websites: web performance with WordPress
Building faster websites: web performance with WordPress
 
Django book15 caching
Django book15 cachingDjango book15 caching
Django book15 caching
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
 

Plus de Ashokkumar T A

Plus de Ashokkumar T A (16)

A quick introduction to Strapi CMS
A quick introduction to Strapi CMSA quick introduction to Strapi CMS
A quick introduction to Strapi CMS
 
A quick introduction to GraphQL
A quick introduction to GraphQLA quick introduction to GraphQL
A quick introduction to GraphQL
 
Cloud trends - 2020
Cloud   trends - 2020Cloud   trends - 2020
Cloud trends - 2020
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replication
 
Microservices trends - 2020
Microservices   trends - 2020Microservices   trends - 2020
Microservices trends - 2020
 
Upgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processUpgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and process
 
Aligning to AEMs Release Cycle
Aligning to AEMs Release CycleAligning to AEMs Release Cycle
Aligning to AEMs Release Cycle
 
Designing for search in AEM
Designing for search in AEMDesigning for search in AEM
Designing for search in AEM
 
AEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly tools
 
On MQ Series & JMS
On MQ Series & JMSOn MQ Series & JMS
On MQ Series & JMS
 
Reactive applications
Reactive applicationsReactive applications
Reactive applications
 
Redis overview
Redis overviewRedis overview
Redis overview
 
Apache shiro security framework
Apache shiro security frameworkApache shiro security framework
Apache shiro security framework
 
Web analytics an intro
Web analytics   an introWeb analytics   an intro
Web analytics an intro
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architecture
 
Cms product evaluation
Cms product evaluationCms product evaluation
Cms product evaluation
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Aem dispatcher – tips & tricks

  • 1. AEM DISPATCHER TIPS & TRICKS Practical Scenarios, Issues, Tips and Tricks in configuring AEM dispatcher
  • 2. Farms • Split dispatcher configuration into multiple farms • Have as many farms as the different caching behavior needed • E.g., DAM & Pages almost always need different caching behavior. DAM assets are independent while Pages has dependencies amongst each other • All configuration parameters are at farm level and can be configured differently for each farm • Avoid having single long configuration file • Decompose farm configuration elements into independent files and include them into a farm configuration file • Include all farm configuration file into the dispatcher.any file Apart from bringing in clarity, this would help avoid duplicating configuration entries. For example, renderers & allowed clients for all farms might be same, while cache invalidation behavior would be different. Have the configuration files split as appropriate for your scenario
  • 3. Cache Folder • Its possible to configure different cache folder for each dispatcher farm • Can have cache folder of one farm nested within the cache folder of the other farm • We can use this to have one farm touch the stat file at a different level on other farm • For example, we can have one farm have the cache root as htdocs and another farm have cache root as htdocs/content. This creates the folder and corresponding .stat file entries as • htdocs (.stat) • content (.stat) • content (.stat)
  • 4. Cache Invalidation • When having multiple farms, which farm configuration gets used for cache invalidation requests? • Cache invalidation requests does not use the configuration of the farm that matches the resource that gets invalidated • Cache invalidation requests for all resources is to the url /dispatcher/invalidate.cache and matches the farm that handles this url • The resource to invalidate is set in the http header CQ-Handle • Use url rewrite in Apache to append CQ-Handle to /dispatcher/invalidate.cache to match the farm of the resource invalidated
  • 5. Vanity URL’s • AEM simplifies managing vanity url’s for a page, allowing setting multiple vanity url’s for a page • Vanity url can be any valid url string, irrespective of the level or depth of the source page • When accessing a page through its vanity url, dispatcher caches that page at the path which is the same as that of the vanity url • But AEM does not generate the cache flush request for the vanity path, cache flush request is generated only for the full path of the page • Only easy option to handle this is to set the statfileslevel to 0 for the farm which handles vanity url’s
  • 6. Dispatcher Cache Flushing • Cache flushing from Author is easy, always possible, but might lead to race condition • Do not use this if your site has significant customer load and content publishing might happen when there is customer activity on the site • Cache flushing from Publish is tricky unless you have just one publisher and one dispatcher • Gets even more trickier if dispatcher is used for load balancing Remember you cannot do the configuration on the publisher directly, all configuration should be done on the author and activated to be applied on the publish instance (at least when you are doing it straight)
  • 7. Some Dispatcher Cache Flushing Scenarios • One publisher and one dispatcher, the easiest but hardly used configuration • Configure the dispatcher flush agent for publish on the author and activate it • Single publisher flushes the activated resources on the dispatcher P D A
  • 8. Some Dispatcher Cache Flushing Scenarios • Multiple publishers and one dispatcher • It might be acceptable if each publisher flushes the cache if the no. of publishers is 2. This would not be acceptable when no. of publishers increases • Designate one or two publishers as flushing publisher and configure dispatcher cache flush agent on those publishers P D A P Race condition might occur when the flushing publisher clears the cache and the dispatcher updates the cache from the other publisher where replication has not been completed yet. But the probability of such race condition is less compared to cache flushing from Author
  • 9. Dispatcher Cache Flush Agent configuration directly on publish instances • Use curl scripts on publish to create the dispatcher cache flush agent • Configure the dispatcher cache flushing agents on the Author, create packages of the cache flushing agents as needed by selecting appropriate nodes and install it on the publishers as needed • Login to the publisher to do the configuration (AEM doesn’t directly support this, but allows access to the login page and after login allows access to tools page for doing this configuration)
  • 10. Some Dispatcher Cache Flushing Scenarios • Multiple publishers, multiple dispatchers, but each publisher is connected to single dispatcher and vice versa • Looks straight forward, but there is no way to handle dispatcher cache flushing through Author. • Use one of the option mentioned in the slide ‘Dispatcher Cache Flush Agent configuration directly on publish instances’ to configure P D A P D No race condition in this configuration as each publisher flushes the cache on its corresponding dispatcher. For this reason, its preferable to have one to one match between publisher and dispatcher
  • 11. Some Dispatcher Cache Flushing Scenarios • Multiple publishers with multiple dispatchers • It might be acceptable if each publisher flushes the cache on each dispatcher if the no. of publishers and dispatcher is 2. This would not be acceptable when no. of publishers or dispatchers increases • Designate one or two publishers as flushing publisher for each dispatcher and configure the dispatcher cache flush agent for that dispatcher on those publishers P D A P D Again race condition might occur in this configuration. Reason for configuring more then one publisher to clear cache on a dispatcher is to reduce the probability of occurrence of the race condition
  • 12. Some Dispatcher Cache Flushing Scenarios • Multiple publishers with multiple dispatchers with each publisher having its corresponding dispatcher • Dispatcher and publisher are hosted on the same server • This configuration becomes easy for configuring dispatcher cache flush agent. • Agent can be configured on the Author, mentioning localhost or 127.0.0.1 as dispatcher address and replicated to all publishers P D A P D This configuration would not be possible if web server needs to be deployed in the DMZ.
  • 13. Disabling Dispatcher Cache for select clients • There might be scenarios when we might need to bypass dispatcher cache and access page in AEM from some client for test purpose • One approach to do this is to set a cookie and have server check this cookie to decide if it needs to fetch the page from cache or serve it from the source directly • Dispatcher does not use cookie as a parameter to decide caching behavior • To handle such scenario, use url rewrite on Apache to fetch the cookie, and set it as url parameter • Configure dispatcher farm to not ignore this url parameter for caching
  • 14. THANK YOU Feedback and suggestions welcome. Please write to ashokkumar.ta@gmail.com