Salesforce

When using a DXA 2.0 website DXA Model service exception is thrown - com.sdl.odata.client.api.exception.ODataClientRuntimeException: Unable to perform action

« Go Back

Information

 
Article TypeSolution Article
Scope/EnvironmentSDL Web 8.5
Symptoms/Context
When using a DXA 2.0 website the following exception may be seen by the DXA model service.
 
com.sdl.odata.client.api.exception.ODataClientRuntimeException: 
Unable to perform action at com.sdl.odata.client.DefaultODataClient.performAction(DefaultODataClient.java:93) 
at com.sdl.web.content.client.impl.ContentClient.lambda$performAction$7(ContentClient.java:273) 
at com.sdl.web.content.client.impl.ClientRequestRetrySupporter$RetryBlock.execute(ClientRequestRetrySupporter.java:60) 
at com.sdl.web.content.client.impl.ClientRequestRetrySupporter.runWithRetry(ClientRequestRetrySupporter.java:27) 
at com.sdl.web.content.client.impl.ContentClient.performAction(ContentClient.java:272) 
at com.sdl.web.content.client.ContentClientApi.performAction(ContentClientApi.java:43) 
at com.sdl.web.api.broker.querying.QueryImpl.executeQuery(QueryImpl.java:128) 
at com.sdl.dxa.modelservice.service.ContentService.loadPageContent(ContentService.java:85) 
at com.sdl.dxa.modelservice.service.ContentService$$FastClassBySpringCGLIB$$8da11676.invoke() 
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.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:52) 
at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:345) 
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:408) 
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:327) 
at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673) 
at com.sdl.dxa.modelservice.service.ContentService$$EnhancerBySpringCGLIB$$69dcd264.loadPageContent() 
at com.sdl.dxa.modelservice.service.DefaultPageModelService.loadPageModel(DefaultPageModelService.java:98) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)


 
Resolution
Increase the ConnectionTimeOut and ServiceMonitorPollDuration in ConfigRepository node of cd_storage_conf.xml for both Content Service and DXA Model Service.
As an example, settings could be increased to 60000 and 300 respectively.
However do note these settings will very likely depend on a given environment.
Root Cause
Insufficient connection time is allotted for content retrieval via the DXA Model Service and Content Service.
Reference
Attachment 1 
Attachment 2 
Attachment 3 
Attachment 4 
Attachment 5 

Powered by