Print service issues after move to dmz

1366
13
09-15-2017 12:46 PM
Quynh_NhuMai
New Contributor III

I had a custom print service and print widget working (JSAPI 3.17) on an internal Tomcat 7 web server. The Java proxy had been successfully configured and installed. We just put this server into a dmz for public access and now the print tool no longer works.

-No errors in the browser console

-timeout in the arcgis for server logs (see below)

-I am able to access the proxy, so that seems configured ok. Manually accessed the geoprocessing service via proxy and was able to return the json.

Does anyone who understands all the ins and outs have any suggestions on what should be tweaked?

EDIT: Just discovered something that may have been misleading. Just tested the app with a very light service (one layer) and the print task works fine. This must mean that the secured service used originally is too heavy (?) for the request. It contains quite a few layers (~50). Is this a reasonable assumption? Any ideas on how to work around this?

Here's the log elements related to GP service time out:

VERBOSE 15 sept. 2017 12:40:49 GPServerSync.Deactivate SPE_TOOLS/SPE_Print_Tool.GPServer
VERBOSE 15 sept. 2017 12:40:49 GPServerSync.Activate SPE_TOOLS/SPE_Print_Tool.GPServer
DEBUG 15 sept. 2017 12:40:45 com.esri.discovery.DiscoveryException: Error handling service request :Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.discovery.DiscoveryService.handleRequest(DiscoveryService.java:108) at com.esri.client.AGSRequest.handleRequest(AGSRequest.java:205) at com.esri.client.ServiceClient.handleRequest(ServiceClient.java:110) at com.esri.client.app.gpserver.GPTaskHandler$2.doOperation(GPTaskHandler.java:131) at com.esri.client.app.templates.OperationTemplate.execute(OperationTemplate.java:119) at com.esri.client.app.gpserver.GPTaskHandler.execute(GPTaskHandler.java:128) at com.esri.client.app.gpserver.GPTaskHandler.service(GPTaskHandler.java:62) at com.esri.rf.RServlet.service(RServlet.java:116) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.impl.GPServerBean.handleRequest(GPServerBean.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:164) at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:92) at sun.reflect.GeneratedMethodAccessor378.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:162) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:144) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:136) at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238) at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:129) at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:149) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71) at org.apache.openejb.server.ejbd.KeepAliveServer$Session.service(KeepAliveServer.java:213) at org.apache.openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66) at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91) at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ... 1 more Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.impl.GPServerSyncBean.handleRequest(GPServerSyncBean.java:77) at sun.reflect.GeneratedMethodAccessor379.invoke(Unknown Source) ... 28 more Caused by: com.esri.arcgis.discovery.ejb.ArcGISServiceException: Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. at com.esri.arcgis.discovery.ejb.util.EJBBase.handleRequestBase(EJBBase.java:573) at com.esri.arcgis.discovery.ejb.impl.GPServerSyncBean.handleRequest(GPServerSyncBean.java:74) ... 29 more Caused by: com.esri.arcgis.discovery.servicelib.AGSUsageTimeoutException: Le délai de la requête du serveur a expiré. Vérifiez que lexpiration du délai dutilisation est configurée correctement pour de telles requêtes. at com.esri.arcgis.discovery.servicelib.impl.ServiceImpl.dequeueResponse(ServiceImpl.java:328) at com.esri.arcgis.discovery.servicelib.impl.ServiceImpl.handleRequest(ServiceImpl.java:231) at com.esri.arcgis.discovery.servicelib.impl.RemoteServiceImpl.handleRequest(RemoteServiceImpl.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$2.run(Transport.java:202) at sun.rmi.transport.Transport$2.run(Transport.java:199) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:198) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy42.handleRequest(Unknown Source) at com.esri.arcgis.discovery.ejb.util.EJBBase.handleRequestBase(EJBBase.java:500) ... 30 more Rest
SEVERE 15 sept. 2017 12:40:45 Error performing execute operation Error handling service request :Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. Rest
DEBUG 15 sept. 2017 12:40:44 Le traitement de la requête a dépassé le délai dexpiration dutilisation du service 'SPE_TOOLS/SPE_Print_Tool.GPServer'. SPE_TOOLS/SPE_Print_Tool.GPServer
DEBUG 15 sept. 2017 12:40:44 Folder and service ETags created from within the configuration store object, if unavailable. Admin

Tags (2)
0 Kudos
13 Replies
RobertScheitlin__GISP
MVP Emeritus

Is you proxy configured for the new url?

0 Kudos
Quynh_NhuMai
New Contributor III

Good question.. Is this to be done within the proxy.config file? In the JS app, the proxy is directed to the new url.

Don't know if this helps answer your question, but I get the ok signal here:

http://[yourmachine]:8080/Java/proxy.jsp?ping 

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Yes in the proxy.config. Are you sure that it is pointing to the dmz url that you services are now using?

0 Kudos
Quynh_NhuMai
New Contributor III

This is what we have :

<?xml version="1.0" encoding="utf-8" ?>

<ProxyConfig allowedReferers="*"

                logFile="proxy_log.log"

                logLevel="INFO"

                mustMatch="false">

  <serverUrls>

    <serverUrl url="http://services.arcgisonline.com"

        matchAll="true"/>

    <serverUrl url="http://ourpublicurl.com"

        matchAll="true"/>

  </serverUrls>

</ProxyConfig>

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Well that looks good have you tried to manually proxy one of your mapservice urls?

0 Kudos
Quynh_NhuMai
New Contributor III

What exactly does that entail?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

You enter your proxy URL and ? Then you mapservice URL with ?f=json at the end and see if your proxy returns the json result or an error.

0 Kudos
Quynh_NhuMai
New Contributor III

The proxy returns the json...I'm starting to think my problem comes from somewhere else. The only thing not working on the app is the print widget. As this is the only one that needs the proxy, I believed that was the issue. Racking my brain..any other suggestions?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Have you tried to run the print service url through the proxy just like you did the map service? In your app have you updated the esri config proxy url?

0 Kudos