Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Flush agent not working after AEM migratio

Avatar

Level 2

Dear AEM Community,

I have migrated the operating system to RHEL9 with Java 11. Author, Publisher and Dispatcher are running on the same machine.

Since then I have not been able to run the flush agent successfully. In the Transport tab I have the following configured:

http://IP/dispatcher/invalidate.cache with user and password. An additional piece of information that might be relevant is that we are

using AEM 6.5.17 with mod_dispatcher 4.3.7.

 

2024-04-12 11:56:53 - Create new HttpClient for Dispatcher Flush
2024-04-12 11:56:53 - * Auth User: admin
2024-04-12 11:56:53 - * HTTP Version: 1.1
2024-04-12 11:56:53 - * Connect Timeout: 900000
2024-04-12 11:56:53 - * Socket Timeout: 900000
2024-04-12 11:56:53 - adding header: CQ-Action:Test
2024-04-12 11:56:53 - adding header: CQ-Handle:/content
2024-04-12 11:56:53 - adding header: CQ-Path:/content
2024-04-12 11:56:53 - adding header: Host:flush
2024-04-12 11:56:53 - deserialize content for delivery
2024-04-12 11:56:53 - No message body: Content ReplicationContent.VOID is empty
2024-04-12 11:56:53 - Sending GET request to http://IP:80/dispatcher/invalidate.cache
2024-04-12 11:56:53 - sent. Response: 404 Not Found
2024-04-12 11:56:53 - Replication (TEST) of /content not successful. Conversation follows
2024-04-12 11:56:53 - ------------------------------------------------
2024-04-12 11:56:53 - Sending message to IP:80
2024-04-12 11:56:53 - >> GET /dispatcher/invalidate.cache HTTP/1.0
2024-04-12 11:56:53 - >> CQ-Action: Test
2024-04-12 11:56:53 - >> CQ-Handle: /content
2024-04-12 11:56:53 - >> CQ-Path: /content
2024-04-12 11:56:53 - >> Referer: about:blank
2024-04-12 11:56:53 - >> Content-Length: 0
2024-04-12 11:56:53 - >> Content-Type: application/octet-stream
2024-04-12 11:56:53 - >> Host: flush
2024-04-12 11:56:53 - --
2024-04-12 11:56:53 - << HTTP/1.1 404 Not Found
2024-04-12 11:56:53 - << Date: Fri, 12 Apr 2024 09:56:53 GMT
2024-04-12 11:56:53 - << Server: Apache
2024-04-12 11:56:53 - << X-Content-Type-Options: nosniff
2024-04-12 11:56:53 - << Expires: Thu, 01 Jan 1970 00:00:00 GMT
2024-04-12 11:56:53 - << Content-Type: text/html;charset=utf-8
2024-04-12 11:56:53 - << Set-Cookie: cq-authoring-mode=TOUCH; Path=/; Expires=Fri, 19-Apr-2024 09:56:53 GMT; Max-Age=604800
2024-04-12 11:56:53 - << Via: 1.1 Author-FQDN
2024-04-12 11:56:53 - << Transfer-Encoding: chunked
2024-04-12 11:56:53 - <<
2024-04-12 11:56:53 - << <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2024-04-12 11:56:53 - << <html>
2024-04-12 11:56:53 - << <head><title>404 Resource at '/dispatcher/invalidate.cache' not found: No resource found</title></head>
2024-04-12 11:56:53 - << <body>
2024-04-12 11:56:53 - << <h1>Resource at '/dispatcher/invalidate.cache' not found: No resource found</h1>
2024-04-12 11:56:53 - << <p>Cannot serve request to /dispatcher/invalidate.cache in /libs/sling/servlet/errorhandler/404.jsp</p>
2024-04-12 11:56:53 - <<
2024-04-12 11:56:53 - << <h3>Request Progress:</h3>
2024-04-12 11:56:53 - << <pre>
2024-04-12 11:56:53 - << 0 TIMER_START{Request Processing}
2024-04-12 11:56:53 - << 1 COMMENT timer_end format is {&lt;elapsed microseconds&gt;,&lt;timer name&gt;} &lt;optional message&gt;
2024-04-12 11:56:53 - << 4 LOG Method=GET, PathInfo=null
2024-04-12 11:56:53 - << 6 TIMER_START{handleSecurity}
2024-04-12 11:56:53 - << 1198 TIMER_END{1191,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@18063fae returns true
2024-04-12 11:56:53 - << 1377 TIMER_START{ResourceResolution}
2024-04-12 11:56:53 - << 1469 TIMER_END{91,ResourceResolution} URI=/dispatcher/invalidate.cache resolves to Resource=NonExistingResource, path=/dispatcher/invalidate.cache
2024-04-12 11:56:53 - << 1474 LOG Resource Path Info: SlingRequestPathInfo: path=&apos;/dispatcher/invalidate.cache&apos;, selectorString=&apos;null&apos;, extension=&apos;cache&apos;, suffix=&apos;null&apos;
2024-04-12 11:56:53 - << 1474 TIMER_START{ServletResolution}
2024-04-12 11:56:53 - << 1477 TIMER_START{resolveServlet(/dispatcher/invalidate.cache)}
2024-04-12 11:56:53 - << 2287 LOG {0}: no servlet found
2024-04-12 11:56:53 - << 2294 TIMER_END{816,resolveServlet(/dispatcher/invalidate.cache)} Using servlet org.apache.sling.servlets.get.DefaultGetServlet
2024-04-12 11:56:53 - << 2297 TIMER_END{822,ServletResolution} URI=/dispatcher/invalidate.cache handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet
2024-04-12 11:56:53 - << 2301 LOG Applying Requestfilters
2024-04-12 11:56:53 - << 2303 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl
2024-04-12 11:56:53 - << 2312 LOG Calling filter: org.apache.sling.security.impl.ContentDispositionFilter
2024-04-12 11:56:53 - << 2317 LOG Calling filter: com.adobe.granite.csrf.impl.CSRFFilter
2024-04-12 11:56:53 - << 2349 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
2024-04-12 11:56:53 - << 2352 LOG Calling filter: com.adobe.granite.httpcache.impl.InnerCacheFilter
2024-04-12 11:56:53 - << 2358 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
2024-04-12 11:56:53 - << 2362 LOG Calling filter: com.adobe.cq.history.impl.HistoryRequestFilter
2024-04-12 11:56:53 - << 2439 LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter
2024-04-12 11:56:53 - << 2455 LOG Calling filter: com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet
2024-04-12 11:56:53 - << 2458 LOG Calling filter: com.adobe.granite.optout.impl.OptOutFilter
2024-04-12 11:56:53 - << 2464 LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet
2024-04-12 11:56:53 - << 2466 LOG Calling filter: com.adobe.cq.social.commons.cors.CORSAuthenticationFilter
2024-04-12 11:56:53 - << 2469 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
2024-04-12 11:56:53 - << 2472 LOG Calling filter: org.apache.sling.dynamicinclude.CacheControlFilter
2024-04-12 11:56:53 - << 2479 LOG Calling filter: com.adobe.acs.commons.wcm.notifications.impl.SystemNotificationsImpl
2024-04-12 11:56:53 - << 2637 LOG Calling filter: fbb.core.filters.LoggingFilter
2024-04-12 11:56:53 - << 2640 LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter
2024-04-12 11:56:53 - << 2643 LOG Calling filter: com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl
2024-04-12 11:56:53 - << 2919 LOG Calling filter: com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter
2024-04-12 11:56:53 - << 2924 LOG Calling filter: com.adobe.granite.requests.logging.impl.RequestLoggerImpl
2024-04-12 11:56:53 - << 2928 LOG Calling filter: com.adobe.granite.rest.impl.servlet.ApiResourceFilter
2024-04-12 11:56:53 - << 2932 LOG Calling filter: com.day.cq.dam.core.impl.servlet.ActivityRecordHandler
2024-04-12 11:56:53 - << 2942 LOG Calling filter: com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler
2024-04-12 11:56:53 - << 2945 LOG Calling filter: com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet
2024-04-12 11:56:53 - << 2948 LOG Calling filter: com.day.cq.wcm.core.impl.warp.TimeWarpFilter
2024-04-12 11:56:53 - << 2953 LOG Calling filter: org.apache.sling.dynamicinclude.SyntheticResourceFilter
2024-04-12 11:56:53 - << 2960 LOG Applying Componentfilters
2024-04-12 11:56:53 - << 2962 LOG Calling filter: com.day.cq.personalization.impl.TargetComponentFilter
2024-04-12 11:56:53 - << 2964 LOG Calling filter: com.day.cq.wcm.core.impl.page.PageLockFilter
2024-04-12 11:56:53 - << 2967 LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter
2024-04-12 11:56:53 - << 2996 LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter
2024-04-12 11:56:53 - << 3015 TIMER_START{org.apache.sling.servlets.get.DefaultGetServlet#0}
2024-04-12 11:56:53 - << 3069 TIMER_END{52,org.apache.sling.servlets.get.DefaultGetServlet#0}
2024-04-12 11:56:53 - << 3097 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMDebugFilter, inner=70, total=80, outer=10
2024-04-12 11:56:53 - << 3101 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMComponentFilter, inner=80, total=110, outer=30
2024-04-12 11:56:53 - << 3104 LOG Filter timing: filter=com.day.cq.wcm.core.impl.page.PageLockFilter, inner=110, total=113, outer=3
2024-04-12 11:56:53 - << 3119 LOG Filter timing: filter=org.apache.sling.dynamicinclude.SyntheticResourceFilter, inner=148, total=153, outer=5
2024-04-12 11:56:53 - << 3123 LOG Filter timing: filter=com.adobe.cq.dtm.reactor.impl.servlets.ClientLibraryFilter, inner=153, total=154, outer=1
2024-04-12 11:56:53 - << 3127 LOG Filter timing: filter=com.adobe.cq.dam.webdav.impl.io.DamWebdavRequestFilter, inner=154, total=155, outer=1
2024-04-12 11:56:53 - << 3130 LOG Filter timing: filter=com.day.cq.wcm.core.impl.warp.TimeWarpFilter, inner=155, total=158, outer=3
2024-04-12 11:56:53 - << 3133 LOG Filter timing: filter=com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet, inner=158, total=161, outer=3
2024-04-12 11:56:53 - << 3136 LOG Filter timing: filter=com.adobe.cq.dtm.impl.servlets.DTMLibraryCompatibilityFilter, inner=161, total=162, outer=1
2024-04-12 11:56:53 - << 3140 LOG Filter timing: filter=com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler, inner=162, total=166, outer=4
2024-04-12 11:56:53 - << 3143 LOG Filter timing: filter=com.day.cq.dam.core.impl.servlet.DamContentDispositionFilter, inner=166, total=168, outer=2
2024-04-12 11:56:53 - << 3146 LOG Filter timing: filter=com.day.cq.dam.core.impl.servlet.ActivityRecordHandler, inner=168, total=175, outer=7
2024-04-12 11:56:53 - << 3150 LOG Filter timing: filter=com.adobe.granite.rest.impl.servlet.ApiResourceFilter, inner=175, total=180, outer=5
2024-04-12 11:56:53 - << 3153 LOG Filter timing: filter=com.adobe.granite.requests.logging.impl.RequestLoggerImpl, inner=180, total=184, outer=4
2024-04-12 11:56:53 - << 3156 LOG Filter timing: filter=com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter, inner=184, total=190, outer=6
2024-04-12 11:56:53 - << 3159 LOG Filter timing: filter=com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl, inner=190, total=465, outer=275
2024-04-12 11:56:53 - << 3162 LOG Filter timing: filter=com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter, inner=465, total=468, outer=3
2024-04-12 11:56:53 - << 3166 LOG Filter timing: filter=fbb.core.filters.LoggingFilter, inner=468, total=472, outer=4
2024-04-12 11:56:53 - << 3169 LOG Filter timing: filter=com.adobe.acs.commons.wcm.notifications.impl.SystemNotificationsImpl, inner=472, total=632, outer=160
2024-04-12 11:56:53 - << 3173 LOG Filter timing: filter=com.comwrap.fbb.core.restartweb.services.darksite.DarksiteFlightServletsFilter, inner=632, total=633, outer=1
2024-04-12 11:56:53 - << 3177 LOG Filter timing: filter=org.apache.sling.dynamicinclude.CacheControlFilter, inner=633, total=638, outer=5
2024-04-12 11:56:53 - << 3180 LOG Filter timing: filter=org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter, inner=638, total=641, outer=3
2024-04-12 11:56:53 - << 3183 LOG Filter timing: filter=com.adobe.cq.social.commons.cors.CORSAuthenticationFilter, inner=641, total=644, outer=3
2024-04-12 11:56:53 - << 3186 LOG Filter timing: filter=com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet, inner=644, total=647, outer=3
2024-04-12 11:56:53 - << 3189 LOG Filter timing: filter=com.adobe.granite.optout.impl.OptOutFilter, inner=647, total=653, outer=6
2024-04-12 11:56:53 - << 3192 LOG Filter timing: filter=com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet, inner=653, total=657, outer=4
2024-04-12 11:56:53 - << 3195 LOG Filter timing: filter=com.day.cq.wcm.core.impl.WCMRequestFilter, inner=657, total=674, outer=17
2024-04-12 11:56:53 - << 3199 LOG Filter timing: filter=com.adobe.cq.history.impl.HistoryRequestFilter, inner=674, total=750, outer=76
2024-04-12 11:56:53 - << 3202 LOG Filter timing: filter=org.apache.sling.rewriter.impl.RewriterFilter, inner=750, total=756, outer=6
2024-04-12 11:56:53 - << 3205 LOG Filter timing: filter=com.adobe.granite.httpcache.impl.InnerCacheFilter, inner=756, total=763, outer=7
2024-04-12 11:56:53 - << 3208 LOG Filter timing: filter=org.apache.sling.i18n.impl.I18NFilter, inner=763, total=765, outer=2
2024-04-12 11:56:53 - << 3212 LOG Filter timing: filter=com.adobe.granite.csrf.impl.CSRFFilter, inner=765, total=798, outer=33
2024-04-12 11:56:53 - << 3215 LOG Filter timing: filter=org.apache.sling.security.impl.ContentDispositionFilter, inner=798, total=803, outer=5
2024-04-12 11:56:53 - << 3219 LOG Filter timing: filter=com.comwrap.fbb.core.restartweb.filters.FormValidationFilter, inner=803, total=806, outer=3
2024-04-12 11:56:53 - << 3222 LOG Filter timing: filter=org.apache.sling.distribution.servlet.DistributionAgentCreationFilter, inner=806, total=807, outer=1
2024-04-12 11:56:53 - << 3258 LOG Applying Error filters
2024-04-12 11:56:53 - << 3260 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
2024-04-12 11:56:53 - << 3261 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
2024-04-12 11:56:53 - << 3267 TIMER_START{handleError:status=404}
2024-04-12 11:56:53 - << 3281 TIMER_END{13,handleError:status=404} Using handler /libs/sling/servlet/errorhandler/404.jsp
2024-04-12 11:56:53 - << 4427 LOG Found processor for post processing ProcessorConfiguration: {contentTypes=[text/html], order=-1, active=true, valid=true, processErrorResponse=true, pipeline=(generator=Config(type=htmlparser, config={}), transformers=(Config(type=linkchecker, config={}), Config(type=mobile, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-mobile: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=mobiledebug, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-mobiledebug: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=contentsync, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/libs/cq/config/rewriter/default/transformer-contentsync: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), serializer=Config(type=htmlwriter, config={}))}
2024-04-12 11:56:53 - << 4601 TIMER_END{4600,Request Processing} Dumping SlingRequestProgressTracker Entries
2024-04-12 11:56:53 - << </pre>
2024-04-12 11:56:53 - <<
2024-04-12 11:56:53 - << <hr>
2024-04-12 11:56:53 - << <address>ApacheSling/2.7 (jetty/9.4.49.v20220914, OpenJDK 64-Bit Server VM 11.0.22, Linux 5.14.0-362.24.1.el9_3.x86_64 amd64)</address>
2024-04-12 11:56:53 - << </body>
2024-04-12 11:56:53 - << </html>
2024-04-12 11:56:53 - Message sent.
2024-04-12 11:56:53 - ------------------------------------------------
2024-04-12 11:56:53 - Replication (TEST) of /content not successful.
Replication test failed
Not Found

Any idea what might be going on here? I would appreciate any suggestions.

Regards

Angel

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Your invalidation requests shows the Host Header with that value; if you never had such a vhost configured, some default vhost might have taken over this role, and potentially that has changed.

 

You should enable the logging on the httpd to get the requests logged in the context of the virtual host which is handling it. And then compare the old and the new setup.

View solution in original post

8 Replies

Avatar

Community Advisor

Hi @24x7 
We also did the migration for RHEL9 with Java 11.

we have not seen any such issues.

However for us Adobe CSE took care of everything.



Arun Patidar

Avatar

Level 2

@EstebanBustamante SELinux was already permissive and the only thing I did was to enable httpd_can_network_connect. I even made the changes explained here: https://experienceleague.adobe.com/en/docs/experience-manager-dispatcher/using/getting-started/dispa.... But so far I still have the same result. Thank you for the advice.

Avatar

Community Advisor

Hi @24x7 

 

It seems like the flush agent is attempting to send a GET request to invalidate the cache using the URL http://IP:80/dispatcher/invalidate.cache, but it's receiving a 404 Not Found response. Based on the logs, the request is being processed by Apache Sling, but it fails to find the resource at the specified path /dispatcher/invalidate.cache. This could indicate that either the path is incorrect or the resource does not exist in the expected location.

 

Here are a few things you could check:

  1. Dispatcher Configuration: Ensure that the invalidate.cache handler is configured correctly in your Apache Dispatcher configuration (dispatcher.any). Verify that the invalidate.any file contains the appropriate rules for handling cache invalidation requests.

  2. Dispatcher Module Version Compatibility: Confirm that the version of the Apache Dispatcher module (mod_dispatcher) you're using (4.3.7) is compatible with AEM 6.5.17 and RHEL 9. There might be compatibility issues that are causing the 404 error.

  3. Check Dispatcher Logs: Look into the logs of the Apache HTTP Server where the Dispatcher module is running. It might provide more detailed information about why the request is resulting in a 404 error.

  4. Verify Dispatcher Configuration with AEM Documentation: Cross-reference your Apache Dispatcher configuration with the official AEM documentation for configuring the Dispatcher module. Ensure that you haven't missed any required configurations or made any mistakes in the setup.

  5. Access Permissions: Double-check the permissions and access settings for the invalidate.cache resource. Ensure that the user specified in the flush agent configuration has sufficient permissions to access and invalidate the cache.

  6. Path Correction: If you're sure that the configuration is correct, try accessing the invalidate.cache resource directly from a web browser or using a tool like cURL to ensure that the path is reachable and returns the expected response

 

Thanks

Avatar

Level 2

Hi @partyush , invalidate.cache and dispatcher.any are configured correctly. The flush agent was working perfectly on CentOS 8 Stream. Regarding the dispatcher logs, I don't see anywhere why I am getting a 404, but this doesn't mean anything as I may not be able to see anything anymore due to going over and over the logs. If I try to access invalidate.cache through a browser I get the same result "Not found". Regarding the permissions and compatibility of AEM 6.5.17 to mod_dispatcher 4.3.7 I have to investigate a little more before giving an answer. 

Regards

Angel.

Avatar

Employee Advisor

I would assume that the vhost with the hostname "flush" does either not exist or has not configured the invalidation correctly.

Avatar

Level 2

Hi @Jörg_Hoh ,
taking a look at the whole configuration, we never had any vhost with the hostname "flush".

Regards

Angel

Avatar

Correct answer by
Employee Advisor

Your invalidation requests shows the Host Header with that value; if you never had such a vhost configured, some default vhost might have taken over this role, and potentially that has changed.

 

You should enable the logging on the httpd to get the requests logged in the context of the virtual host which is handling it. And then compare the old and the new setup.