El escenario de despliegue que estoy tratando de utilizar es: La máquina del editor y el servidor están trabajando desde diferentes carpetas . Tengo mi archivo compartido de desarrollo (nombre de host dev.share.me
para este ejemplo) que todos mis editores utilizaron para almacenar sus datos. Su estructura es:
\\dev.share.me\ArcGIS
\Data
\Open
\Mosaic1
\Image1.tif
\Image2.tif
\...
\Mosaic1.gdb
...
\Restricted
\Topic1.gdb
\Desktop
\Topic1.mxd
\Services
\Topic1.sd
Luego, en mi ArcGIS Server ( NO dev.share.me
, tal vez dev.arcgis.me
, pero definitivamente separados desconectado servidores), lo he hecho:
C:\ArcGIS
\Data
Que se registra utilizando:
Publisher Folder Path: \\dev.share.me\ArcGIS\Data
Server Folder Path: C:\ArcGIS\Data
Y copio todos los datos de \\dev.share.me\ArcGIS\Data
a C:\ArcGIS\Data
en mi servidor. Una vez que los datos están en el servidor, reparo el conjunto de datos del mosaico utilizando la función de reparación para cambiar \\dev.share.me\ArcGIS\Data
a C:\ArcGIS\Data
.
Por último, abro mi archivo de mapa (Topic1.mxd) y
- Haga clic en Archivo -> Compartir como -> Servicio ...
- Elija Guardar un archivo de definición de servicio
- Haga clic en Siguiente
- Elija No hay conexión disponible (dejar Incluir los datos en la definición del servicio al publicar sin marcar)
- Haga clic en Siguiente
- Haga clic en Continuar
- En Capacidades añadir WMS
- Haga clic en Escenario
Sin embargo, cuando intento publicar el servicio a través de la aplicación web ArcGIS Server Manager, obtengo este error:
<Msg time="2016-03-18T10:46:47,272" type="SEVERE" code="8252" source="System/PublishingTools.GPServer" process="3816" thread="73" methodName="" machine="MYSERVER" user="" elapsed="">Instance of the service 'System/PublishingTools.GPServer' crashed. Please see if an error report was generated in 'C:\arcgisserver\logs\MYSERVER\errorreports'. To send an error report to Esri, compose an e-mail to ArcGISErrorReport@esri.com and attach the error report file.</Msg>
<Msg time="2016-03-18T10:47:05,468" type="SEVERE" code="8254" source="Server" process="3816" thread="1" methodName="" machine="MYSERVER" user="" elapsed="">The containing process for 'System/PublishingTools' job 'j0a3a8bbeeded4ef8b926c021d52d3b80' has crashed.</Msg>
No estoy seguro de cómo me estoy apartando del enfoque expuesto en: La máquina del editor y el servidor están trabajando desde diferentes carpetas . ¿Es ArcGIS Server realmente tan propenso a los fallos, o estoy haciendo algo fundamentalmente equivocado?
Cabe mencionar que también estoy usando un Adaptador Web, y AM publicando a través de la URL del Adaptador Web, no de la URL del Servidor .
---- ACTUALIZACIÓN 2016/03/22 ---- De acuerdo con las sugerencias de @KirkKuykendall, he ajustado el nivel de registro a depuración, y lo he vuelto a intentar. Ahora tengo un seguimiento de pila en el registro:
<Msg time="2016-03-22T12:32:23,421" type="DEBUG" code="9999" source="System/PublishingTools.GPServer" process="3816" thread="73" methodName="" machine="ASIAS-DEV-GIS" user="" elapsed="">java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketException: Connection reset
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:229)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:227)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:179)
at com.sun.proxy.$Proxy43.handleRequest(Unknown Source)
at com.esri.arcgis.discovery.ejb.util.EJBBase.handleRequestBase(EJBBase.java:548)
at com.esri.arcgis.discovery.ejb.impl.GPServerSyncBean.handleRequest(GPServerSyncBean.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
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.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
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:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at java.io.DataInputStream.readByte(DataInputStream.java:265)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:215)
... 37 more
</Msg>
Pero todavía estoy perplejo... La primera vez que lo ejecuté, pasaron exactamente 60 segundos después de que la solicitud de publicación apareciera en el registro, por lo que empecé a pensar en un tiempo de espera de algún tipo. Pero los siguientes intentos mostraron caídas en menos tiempo, así que me rendí...
0 votos
¿Tiene la cuenta arcgis privilegios de acceso a C:\ArcGIS\Data ?
0 votos
@KirkKuykendall, sí, le di la
arcgis
cuenta el control total deC:\ArcGIS
(incluyendo Reemplazar todas las entradas de permisos de los objetos hijos por entradas de permisos heredables de este objeto. ).0 votos
¿Puede publicar un mapservice que no contenga un mosaico (por ejemplo, una simple featureclass)?
0 votos
@KirkKuykendall, efectivamente, he podido hacerlo. También he sido capaz de publicar un servicio de mapas que incluye rásters (sólo que no en un conjunto de datos de mosaico). De hecho, incluso puedo publicar un servicio utilizando el mismo rasters como el mosaico, siguiendo el mismo procedimiento anterior (sólo un mxd diferente)
0 votos
¿Has probado a poner el nivel de registro del servidor en depuración para ver si te da más detalles?
0 votos
@KirkKuykendall, no estoy seguro de lo que quieres decir con establecer el nivel de registro en el servidor para depurar . Hasta donde yo sé, siempre registra todos los mensajes y el cliente web puede filtrar los que ves. Si ese es el caso, entonces sí, he mirado en los registros a nivel de depuración. Pero si hay una manera de decirle al servidor que registre mensajes más detallados en primer lugar, estaría encantado de probarlo...
0 votos
Tal vez trate de usar la interfaz de usuario para cambiar el nivel de registro. Bastante seguro de que controla lo que se registra en el archivo - seguro que parece ralentizar las cosas si se olvida y lo deja establecido en depuración. server.arcgis.com/es/server/latest/administer/windows/
0 votos
Haz clic en el botón "Ajustes" para configurarlo.
0 votos
@KirkKuykendall, gracias, he ajustado el registrador a
debug
y ahora veo un stack trace (ver la actualización en la pregunta anterior). Parece indicar que una conexión utilizada por RMI se cerró causando la caída del servicio. Sin embargo, no puedo averiguar por qué eso estaría sucediendo ...0 votos
Parece serio. ¿Has probado a utilizar una ruta UNC en lugar de c: \arcgis\data ?
0 votos
@KirkKuykendall, lamentablemente, no puedo utilizar UNC. Este es mi servidor de desarrollo (campo de pruebas). Una vez validados, estos servicios se propagarán a los servidores de control de calidad y, a continuación, a los de producción. Como tal, si se utiliza UNC, entonces todos ellos se refieren a la misma cuota. Mientras que la ruta de la unidad local es relativa al propio servidor...
0 votos
¿Obtiene el mismo comportamiento si no activa la función WMS?
0 votos
@KirkKuykendall, sí, el mismo fallo... En realidad tenía los chicos de apoyo ESRI me piden que intente lo mismo ...