SlideShare a Scribd company logo
1 of 14
Download to read offline
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

More Related Content

What's hot

Integration patterns in AEM 6
Integration patterns in AEM 6Integration patterns in AEM 6
Integration patterns in AEM 6Yuval Ararat
 
AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013Andrew Khoury
 
Understanding Sling Models in AEM
Understanding Sling Models in AEMUnderstanding Sling Models in AEM
Understanding Sling Models in AEMAccunity Software
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
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 DiveHanish Bansal
 
Introduction to Sightly
Introduction to SightlyIntroduction to Sightly
Introduction to SightlyAnkit Gubrani
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesGabriel Walt
 
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 architectureAshokkumar T A
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?connectwebex
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101Adobe
 
AEM & eCommerce integration
AEM & eCommerce integrationAEM & eCommerce integration
AEM & eCommerce integrationLokesh BS
 
Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6DEEPAK KHETAWAT
 
Adobe AEM core components
Adobe AEM core componentsAdobe AEM core components
Adobe AEM core componentsLokesh BS
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and SlingLo Ki
 

What's hot (20)

Integration patterns in AEM 6
Integration patterns in AEM 6Integration patterns in AEM 6
Integration patterns in AEM 6
 
AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013AEM (CQ) Dispatcher Caching Webinar 2013
AEM (CQ) Dispatcher Caching Webinar 2013
 
Understanding Sling Models in AEM
Understanding Sling Models in AEMUnderstanding Sling Models in AEM
Understanding Sling Models in AEM
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Sling Models Overview
Sling Models OverviewSling Models Overview
Sling Models Overview
 
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
 
Introduction to Sightly
Introduction to SightlyIntroduction to Sightly
Introduction to Sightly
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
 
AEM - Client Libraries
AEM - Client LibrariesAEM - Client Libraries
AEM - Client Libraries
 
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
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
 
An Intro into webpack
An Intro into webpackAn Intro into webpack
An Intro into webpack
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101
 
AEM & eCommerce integration
AEM & eCommerce integrationAEM & eCommerce integration
AEM & eCommerce integration
 
Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6
 
Spring boot
Spring bootSpring boot
Spring boot
 
Adobe AEM core components
Adobe AEM core componentsAdobe AEM core components
Adobe AEM core components
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
AEM and Sling
AEM and SlingAEM and Sling
AEM and Sling
 

Similar to Aem dispatcher – tips & tricks

Lesson 1 configuring
Lesson 1   configuringLesson 1   configuring
Lesson 1 configuringRam Kedem
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Best wordpress hosting
Best wordpress hosting Best wordpress hosting
Best wordpress hosting ken1990julius
 
WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)WordPress at Peak Performance (Radio Edit)
WordPress at Peak Performance (Radio Edit)jaredwsmith
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 SystemsDavid Newman
 
AWS Elasticity and Auto Scaling
AWS Elasticity and Auto ScalingAWS Elasticity and Auto Scaling
AWS Elasticity and Auto ScalingChris Williams
 
Virtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowVirtualizing Tier One Applications - Varrow
Virtualizing Tier One Applications - VarrowAndrew Miller
 
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 deploymentSharon James
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!WordCamp Cape Town
 
Cdn slides
Cdn slidesCdn slides
Cdn slidesmasmanx
 
MySQL Replication Basics
MySQL Replication BasicsMySQL Replication Basics
MySQL Replication BasicsAbdul Manaf
 
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 TrivandrumWordPress Trivandrum
 
Infrastructure modeling with chef
Infrastructure modeling with chefInfrastructure modeling with chef
Infrastructure modeling with chefCharles Johnson
 
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 BaldwinAmazon Web Services
 
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 WordPressJohannes Siipola
 
Django book15 caching
Django book15 cachingDjango book15 caching
Django book15 cachingShih-yi Wei
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMathew Beane
 

Similar to 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
 

More from Ashokkumar T A

A quick introduction to Strapi CMS
A quick introduction to Strapi CMSA quick introduction to Strapi CMS
A quick introduction to Strapi CMSAshokkumar T A
 
A quick introduction to GraphQL
A quick introduction to GraphQLA quick introduction to GraphQL
A quick introduction to GraphQLAshokkumar T A
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replicationAshokkumar T A
 
Microservices trends - 2020
Microservices   trends - 2020Microservices   trends - 2020
Microservices trends - 2020Ashokkumar T A
 
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 processAshokkumar T A
 
Aligning to AEMs Release Cycle
Aligning to AEMs Release CycleAligning to AEMs Release Cycle
Aligning to AEMs Release CycleAshokkumar T A
 
Designing for search in AEM
Designing for search in AEMDesigning for search in AEM
Designing for search in AEMAshokkumar T A
 
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 toolsAshokkumar T A
 
Apache shiro security framework
Apache shiro security frameworkApache shiro security framework
Apache shiro security frameworkAshokkumar T A
 
Web analytics an intro
Web analytics   an introWeb analytics   an intro
Web analytics an introAshokkumar T A
 
Cms product evaluation
Cms product evaluationCms product evaluation
Cms product evaluationAshokkumar T A
 

More from Ashokkumar T A (15)

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
 
Cms product evaluation
Cms product evaluationCms product evaluation
Cms product evaluation
 

Recently uploaded

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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