We are using SDL Web 8.5 along with DXA 2.0 Java version. The current situation is like this: On production Live, we have 2 CD servers which are basically a copy of each other. Both contain a discovery ,deployer, content, context, dxa-model service and for website we have configured two tomcat instance cluster on each CD server. Both CD sever are using same discovery and broker database. We have load balanced only discovery and deployer service which is in active/passive failover mode. Each CD server will use its own content service .inside topology manager configuration we have created a live cd-environment and defined load-balancer ip of discovery service .The Base URL and other parameter are defined correctly but when we try to access the url DXA always throw error Localization not found.below is configuration of discovery service
<ConfigRepository CacheEnabled="true" CacheExpirationDuration="600" ClientId="registration" ClientSecret="encrypted:HzfQh9wYwAKShDxCm4DnnBnysAz9PtbDMFXMbPszSVY=" ConnectionTimeout="40000" ServiceMonitorPollDuration="10" ServiceUri="http://localhost:8082/discovery.svc" TokenServiceUrl="http://localhost:8082/token.svc">
<Roles>
<Role Name="TokenServiceCapability" Url="http://localhost:8082/token.svc"/>
<Role Name="PreviewWebServiceCapability" Url="http://localhost:8083/ws/preview.svc"/>
<Role Name="ContextServiceCapability" Url="http://localhost:8087/context.svc"/>
<Role Name="DeployerCapability" Url="http://load-balancer-ip:8084/httpupload">
<Property Name="undo.enabled" Value="false"/>
<Property Name="encoding" Value="UTF-8"/>
</Role>
<Role Name="ContentServiceCapability" Url="http://localhost:8081/content.svc">
<Property Name="dxa-model-service" Value="http://localhost:8998/ModelService"/>
</Role>
</Roles>
</ConfigRepository>
we had also run following command
java -jar discovery-registration.jar update
at CMS side we run following command
Sync-TtmCdEnvironment -Id Live_Environment -Force
The Live_Environment contains load balanced discovery url
Edit
Error
Configuration exception
com.tridion.configuration.ConfigurationException: Can't resolve publication from given URL: http://10.40.5.21:9012/en/personal
at com.sdl.web.api.dynamic.DynamicMappingsRetrieverImpl.getPublicationMapping(DynamicMappingsRetrieverImpl.java:32)
at com.sdl.webapp.tridion.TridionLocalizationResolver.getPublicationMappingData(TridionLocalizationResolver.java:100)
at com.sdl.webapp.tridion.TridionLocalizationResolver.getLocalization(TridionLocalizationResolver.java:69)
at com.sdl.webapp.common.impl.WebRequestContextImpl.localization(WebRequestContextImpl.java:205)
at com.sdl.webapp.common.impl.WebRequestContextImpl.getLocalization(WebRequestContextImpl.java:82)
at com.sdl.webapp.common.impl.WebRequestContextImpl.isPreview(WebRequestContextImpl.java:105)
at com.sdl.webapp.common.impl.WebRequestContextImpl$$FastClassBySpringCGLIB$$2bfec188.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at com.sdl.webapp.common.impl.WebRequestContextImpl$$EnhancerBySpringCGLIB$$fec7d99e.isPreview(<generated>)
at com.sdl.webapp.common.impl.interceptor.StaticContentInterceptor.preHandle(StaticContentInterceptor.java:103)
at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:134)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:958)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.tridion.ambientdata.web.AbstractAmbientDataServletFilter.doFilter(AbstractAmbientDataServletFilter.java:291)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:193)
at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:322)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
10.40.5.21
? Did you register this IP address in Topology Manager?10.40.5.21
is CD server1 (lets say the box on the left is CD1 and the one on the right is CD2).