Support Article
ADM cannot access HTTP invoker remote service
Summary
Connection to ADM server fails exception once every 60 minutes during the business day while users are on the system from varying nodes in the clusters.
The environment consists of 7 application nodes or Dnodes and a separate ADM server. Additionally, there is a load balancer server and two database servers (primary or failover).Error Messages
2015-10-24 00:17:14,603 GMT7EXCP00010060fb5ce601768b2dbe7c7bf95bf5f4f6NANAB7193D919F78899D8BF3D85DD6353EE35SystemPegaSamplePegaDM:07.107ec4729a50e19292674d40dffa052d0cN12085PegaRULES-Batch-1STANDARDcom.pega.decision.adm.server.ServerWrapperNARule-Decision-AdaptiveModel.pxUpdateModelsRule-Obj-Activity:pxUpdateModelsRULE-DECISION-ADAPTIVEMODEL PXUPDATEMODELS #20140916T125447.445 GMT Step: 1 Circum: 0NANANANANANAJava;RULE-OBJ-ACTIVITY RULE-DECISION-ADAPTIVEMODEL PXUPDATEMODELS #20140916T125447.445 GMT Step: 1 Circum: 0;doActivity Rule-Obj-Activity:pxUpdateModels;initial Executable;0 additional frames in stack;QueueNumber=0;pzMaxRecords=1;LockString=0 Rule-Decision-AdaptiveModel.pxUpdateModels Rule-Decision-AdaptiveModel;pyQueueClass=Rule-Decision-AdaptiveModel;[MSG][Connection to ADM server failed][STACK][org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [https://server url :port number/adm7/ADMServer]; nested exception is java.net.SocketTimeoutException: Read timed out<CR>
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:211)<CR>
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144)<CR>
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)<CR>
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)<CR>
at com.sun.proxy.$Proxy29.backupServer(Unknown Source)<CR>
at com.pega.decision.adm.server.ServerWrapper$1.execute(ServerWrapper.java:69)<CR>
at com.pega.decision.adm.server.ServerWrapper$1.execute(ServerWrapper.java:67)<CR>
at com.pega.decision.adm.server.ServerWrapper.executeCommand(ServerWrapper.java:79)<CR>
at com.pega.decision.adm.server.ServerWrapper.backupServer(ServerWrapper.java:67)<CR>
at com.pega.decision.adm.client.impl.ClientImpl.backupServer(ClientImpl.java:750)<CR>
at com.pegarules.generated.activity.ra_action_pxupdatemodels_a78655dd886739c2b355c0f771a157b4.step1_circum0(ra_action_pxupdatemodels_a78655dd886739c2b355c0f771a157b4.java:175)<CR>
at com.pegarules.generated.activity.ra_action_pxupdatemodels_a78655dd886739c2b355c0f771a157b4.perform(ra_action_pxupdatemodels_a78655dd886739c2b355c0f771a157b4.java:69)<CR>
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)Steps to Reproduce
Use Adaptive Decisioning Models in your PRPC Decisioning application.Root Cause
Once every hour, PRPC requests ADM to perform a backup and this is a synchronous call. Since the backup can take several minutes, and since the HTTP connection has a default time-out of 60 seconds, the HTTP layer will report a time-out error. However, the backup at the server will not be affected, and will complete successfully. The exception will still be logged due to the manner in which the exceptions are handled internally.
This is known behavior and therefore can be safely ignored if the ADM exception is reported once every hour; and is not a cause for concern.
This issue is a consequence of the current synchronous architecture of ADM, where you have to rely on Agents to trigger background processes. Short term fix (without re-architecting ADM) is non-trivial, since there is no simple way to distinguish between time-outs due to long database backup cycles, and real time-outs.Resolution
If the ADM Exception: cannot connect to server, is noticed around once every hour, this can be safely ignored.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.