Preguntas habituales sobre el almacenamiento de memoria caché
A continuación se encuentran las preguntas habituales que se han hecho sobre el almacenamiento de memoria caché de mapa y globo. Los temas de las preguntas varían de fáciles a avanzados. En muchos casos, las respuestas reformulan la información que se encuentra en otras secciones de la ayuda. Sin embargo, este tema puede ofrecerle una respuesta a su pregunta específica de forma más rápida que buscar en la ayuda.
Preguntas generales sobre el almacenamiento de memoria caché
Preguntas sobre el almacenamiento de memoria caché de mapa
- ¿Cómo puedo generar una memoria caché completa a ciertas escalas y una memoria caché parcial a otras?
- ¿Cuál es la mejor forma de generar la memoria caché en sólo unas pocas escalas de mi esquema de ordenamiento en teselas?
- ¿Por qué el almacenamiento en caché de mapa suele tardar más en la versión 10.0 que con la versión 9.x?
- ¿Cómo puedo visualizar una tesela de "Datos no disponibles" para áreas de memorias caché vacías?
- ¿Cómo puedo evitar duplicar etiquetas en la memoria caché?
- Al crear una memoria caché basada en un límite de clase de entidad, ¿por qué veo teselas extra creadas fuera de las entidades?
- Al crear teselas según demanda, ¿por qué las teselas extra se crean fuera de la extensión de mapa del usuario?
Preguntas sobre el almacenamiento de memoria caché global
¿Por qué las herramientas de almacenamiento de memoria caché reinician mis servicios?
Administrar teselas de memoria caché de servidor de mapas y otras herramientas de almacenamiento de memoria caché realizan diversas acciones de manera interna que requieren reiniciar el servicio antes y después de ejecutar la herramienta. Por ejemplo, antes de crear teselas, Administrar teselas de memoria caché de servidor de mapas extiende el valor de tiempo de espera del servicio para evitar tiempos de espera durante trabajos grandes de almacenamiento de memoria caché y, a continuación, después de crear las teselas, establece la longitud del tiempo de espera de nuevo en su valor original.
Además, si las herramientas de almacenamiento de memoria caché alteran el archivo de esquema de ordenamiento en teselas conf.xml, es necesario reiniciar para que el servicio de mapas recoja los cambios. Por ejemplo, si utiliza Administrar escalas de memoria caché de servidor de mapas para agregar o eliminar escalas de su memoria caché, sería necesario reiniciar para que el servicio de mapas reconozca los cambios en el esquema de ordenamiento en teselas.
El servicio estará temporalmente no disponible durante la operación de reinicio.
¿Cómo puedo generar una memoria caché completa a ciertas escalas y una memoria caché parcial a otras?
En grandes escalas, por lo general resulta una buena práctica crear previamente las teselas que anticipa serán las más populares y establecer el resto de las teselas que se van a crear según demanda. De lo contrario, en escalas pequeñas, es posible que desee crear una memoria caché completa dado que las memorias caché pequeñas requieren menos teselas y el cliente frecuentemente las visualizará cuando ve el mapa por primera vez.
Puede ejecutar la herramienta Administrar teselas de memoria caché del servidor de mapas varias veces para crear una memoria caché parcial en algunos niveles del mapa y una memoria caché completa en otros niveles.
Suponga que tiene un mapa que desea almacenar en la memoria caché con estas escalas:
- 1:128000
- 1:64000
- 1:32000
- 1:16000
- 1:8000
- 1:4000
Podría ejecutar Administrar teselas de memoria caché del servidor de mapas y marcar sólo las casillas 1:128000, 1:64000 y 1:32000. Por defecto, la extensión completa de esas escalas se almacenará en la memoria caché.
A continuación, podría ejecutar de nuevo la herramienta y marcar solo las casillas 1:16.000, 1:8.000 y 1:4.000. También podría elegir almacenar en caché estos niveles de escala según la extensión de las entidades en una clase de entidad, como el límite de una ciudad o un condado, en vez de almacenar en caché la extensión completa del mapa. Esto crea una memoria caché parcial en estos tres niveles de escala. O bien, podría elegir crear el resto de las teselas en esos niveles según demanda.
¿Cuál es la mejor forma de generar la memoria caché en sólo unas pocas escalas de mi esquema de ordenamiento en teselas?
La herramienta Administrar teselas de memoria caché del servidor de mapas enumera todas las escalas en el esquema de ordenamiento en teselas, e incluye casillas de verificación junto a cada una de ellas. Si sólo desea generar una memoria caché en unos pocos niveles del esquema de ordenamiento en teselas, desmarque las escalas que no desea almacenar en caché antes de ejecutar la herramienta.
La creación de una memoria caché en sólo un subconjunto de niveles del esquema de ordenamiento en teselas constituye un flujo de trabajo común cuando se superponen memorias caché con los servicios de ArcGIS Online, Bing Maps o Google Maps. En muchos casos, es posible que desee superponer los datos con estos mapas base, pero puede que no tenga tiempo ni espacio en disco para hacer coincidir todas las escalas que utilizan esos servicios. Puede utilizar el mismo esquema de ordenamiento en teselas que estos servicios y sólo desmarcar las escalas grandes antes de ejecutar la herramienta.
¿Por qué el almacenamiento en caché de mapa suele tardar más en la versión 10.0 que con la versión 9.x?
Para responder esta pregunta, es útil conocer un poco mejor cómo el servidor aborda un trabajo de almacenamiento en caché en la versión 10.0.
En ArcGIS 10, a las instancias de servicio dedicadas a crear memorias caché (procesos ArcSOC.exe) se les asigna una unidad de área más grande para trabajar sin interrupción que la utilizada en 9.x. Cada proceso ArcSOC.exe funciona en un área de teselas de una dimensión de 128 x 128 antes de pasar al área siguiente. Para simplificarlo, a esto le llamaremos "paquete", aunque no necesariamente tenga que crear un archivo de paquete si está haciendo una memoria caché expandida.
Durante el almacenamiento en memoria caché, cada ArcSOC.exe funciona en un paquete y después pasa al siguiente paquete disponible. Solo un proceso ArcSOC.exe puede funcionar en un paquete en cualquier momento dado.
En la versión 9.x, la unidad de trabajo para un proceso ArcSOC.exe era una "supertesela", cuyas dimensiones de 2048 x 2048 píxeles (4096 x 4096 píxeles sin antialiasing) son mucho menores que las de un paquete. El cambio a los paquetes como unidad de trabajo optimiza el rendimiento de E/S del disco y la red, y tiene como resultado un aumento significativo del rendimiento. Los procesos ArcSOC.exe cambian las asignaciones con menor frecuencia y pueden concentrar sus esfuerzos en la creación de teselas.
Aunque el uso de un paquete tiene un efecto secundario: cuando se trabaja con memorias caché más pequeñas, o cuando se almacena en memoria caché basado en límites de entidad muy pequeños, la creación de la memoria caché puede tomar ligeramente más tiempo que con la versión 9.x. Esto es simplemente porque puede haber menos paquetes disponibles que procesos ArcSOC.exe disponibles. Si tiene ocho procesos ArcSOC.exe disponibles para trabajar en el almacenamiento en memoria caché y solo un paquete en intersección con su área de interés, únicamente se utilizará un proceso ArcSOC.exe. Pero el aumento de eficiencia de las herramientas de almacenamiento en caché durante el control de tareas de almacenamiento en caché más grandes compensa esta consecuencia menor.
La mejor manera de evitar esta situación para memorias caché grandes es almacenar en caché basado en límites de entidades grandes que abarcarían más paquetes que procesos ArcSOC.exe disponibles.
¿Cómo puedo visualizar una tesela de "Datos no disponibles" para áreas de memorias caché vacías?
Si un área de memorias caché no existe, puede crear la tesela según demanda o configurar el servidor Web para devolver una tesela de "Datos no disponibles". La tesela de "Datos no disponibles" también es útil si alguien hace desplazamiento panorámico hacia el borde del mapa o navega por un área en la que no se ha completado el almacenamiento en caché. La configuración del servidor para devolver una tesela de "Datos no disponibles" en algunos casos puede producir una mejor experiencia del usuario en lugar de no devolver nada.
Instrucciones para los casos en que no se utiliza un directorio de caché virtual (incluye todas las aplicaciones de JavaScript, Flex y Silverlight)
En las aplicaciones de base REST como las que se construyen con las API de ArcGIS para JavaScript, Flex o Silverlight, se configura una tesela de "Datos no disponibles" ubicando una tesela vacía missing.png, missing.jpg, o blank.png en el nivel raíz de la memoria caché. El servicio controlador de teselas utilizará esta tesela por defecto si no se puede encontrar una tesela en la memoria caché. Esta técnica también es válida para las aplicaciones de ADF Web en las cuales no se utiliza un directorio de caché virtual o está deshabilitado para la memoria caché. Estas son las instrucciones:
- Cree una imagen de las mismas dimensiones y formato de imagen que una tesela en su esquema de ordenamiento en teselas. Nómbrela missing.png o missing.jpg. Si fuera necesaria un tesela en blanco transparente (como para servicios de superposición que requieren transparencia), utilice blank.png en su lugar. Para descargar una tesela de muestra, consulte el artículo 36939 de la Base de conocimiento de ESRI.
- Guarde el archivo missing.png, missing.jpg o blank.png dentro de la carpeta _alllayers para el servicio de mapas. Por ejemplo: C:\arcgisserver\arcgiscache\MyMapService\Layers\_alllayers\missing.png.
El controlador de teselas de ArcGIS Server controla automáticamente las teselas faltantes reemplazando las teselas esperadas pero faltantes con la tesela especial "faltante" (missing) o "en blanco" (blank) en el nivel raíz de la memoria caché.
Ejemplo de IIS para crear una respuesta de error personalizada si la aplicación ADF Web utiliza un directorio de caché virtual
Si está construyendo una aplicación ADF Web que utiliza un directorio de caché virtual, puede crear una respuesta de error personalizada en el directorio de caché virtual para HTTP Error 404: No se encuentra. En lugar de un mensaje de error, el servidor Web devuelve la tesela. Este es un ejemplo para IIS 6:
- Abra Windows Panel de control y haga clic en Herramientas administrativas > Administrador de Internet Information Services (IIS).
- Navegue hasta el directorio de memoria caché virtual y busque la carpeta que contiene su memoria caché de mapa. Haga clic con el botón derecho del ratón en la carpeta y, a continuación, haga clic en Propiedades.
- Haga clic en la pestaña Errores personalizados, desplácese hacia abajo y, a continuación, elija el código de error 404.
- Haga clic en el botón Editar. En el recuadro de dirección URL, especifique la tesela que debería devolver IIS siempre que falte una tesela. Utilice una dirección URL relativa y no solamente la ruta a un archivo.
- Haga clic en Aceptar para cerrar los cuadros de diálogo.
Ejemplo de Apache para crear una respuesta de error personalizada si su aplicación ADF Web utiliza un directorio de caché virtual
- Haga una copia de seguridad del archivo httpd.conf que se encuentra en <ubicación de instalación apache>\conf.
- Abra el archivo httpd.conf en un editor de texto.
- Consulte si ya hay alguna entrada del directorio para la memoria caché. En la mayoría de los casos, debería tener esta apariencia:
<Directory "C:/ arcgisserver/arcgiscache"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
La configuración exacta dentro de la etiqueta del directorio puede diferir, pero se debe enumerar la ruta a la memoria caché. Si cuenta con este directorio, vaya al paso 5.
- Si no cuenta con una etiqueta de directorio, busque una que haga referencia a htdocs como ésta:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
Cree una nueva entrada debajo de ella:
<Directory "C:/ arcgisserver/arcgiscache"> </Directory>
Esto causará que se siga utilizando la configuración del directorio predeterminada.
- En la etiqueta del directorio de memoria caché, realice lo siguiente:
ErrorDocument 404 /arcgiscache/data_not_avail.jpg
Obtendrá lo siguiente:
<Directory "C:/ arcgisserver/arcgiscache"> ErrorDocument 404 /arcgiscache/data_not_avail.jpg </Directory>
Si esta entrada de directorio ya existe, es probable que también tenga otras configuraciones.
- Reinicie el servidor Apache.
¿Cómo puedo evitar duplicar etiquetas en la memoria caché?
Si está utilizando un motor de etiquetado dinámico en el documento de mapa para colocar etiquetas (a diferencia de la anotación), podría ver ocasionalmente etiquetas duplicadas en sus teselas de memoria caché. Estas no deberían ocasionarse con una frecuencia mayor a 4096 x 4096 píxeles en ninguna dirección. Puede eliminar todas las etiquetas duplicadas utilizando la anotación. Cuando utiliza la anotación, las etiquetas se asocian con un punto en el mapa y no se producen duplicados.
La recomendación anterior se aplica a las memorias caché combinadas. Cuando se utilizan memorias caché multicapa, las etiquetas no se incluyen en las imágenes de almacenamiento en memoria caché. Las etiquetas se dibujan dinámicamente en la parte superior de las imágenes de almacenamiento en memoria caché.
Si ha utilizado memorias caché multicapa con ADF Web .NET 9.2, probablemente habrá visto muchas etiquetas duplicadas porque se ha dibujado un conjunto dinámico de etiquetas para cada tesela. Este comportamiento se mejoró en la versión 9.3 y posteriores; sin embargo, por razones de rendimiento, por lo general solo deberían utilizarse memorias caché multicapa con ArcMap como cliente.
Al crear una memoria caché basada en un límite de clase de entidad, ¿por qué veo teselas extra creadas fuera de las entidades?
Para evitar duplicar etiquetas en las teselas, con las herramientas de almacenamiento de memoria caché, se dibujan originariamente áreas de 4.096 píxeles por 4.096 píxeles (256 teselas del tamaño de tesela predeterminado de 256 x 256 píxeles), que seguidamente se cortan en teselas del tamaño que requiera el usuario en el esquema de ordenamiento en teselas. Dependiendo del esquema de ordenamiento en teselas, así como de la ubicación y la forma de la clase de entidad, algunas teselas en el área de 4.096 x 4.096 podrían caer fuera de los límites de la clase de entidad. Este es el comportamiento previsto. No debe verse las teselas creadas fuera de los límites de la clase de entidad por encima de los 4.096 píxeles en ninguna dirección.
Al crear teselas según demanda, ¿por qué las teselas extra se crean fuera de la extensión de mapa del usuario?
Cuando solicita nuevas teselas (según demanda o utilizando las herramientas de almacenamiento de memoria caché), las teselas siempre se crean en grupos. El mecanismo de almacenamiento de memoria caché nunca creará una sola tesela a la vez. Si lo ha hecho, podrían verse muchas etiquetas duplicadas porque el servidor no sería consciente de las etiquetas existentes en las teselas adyacentes.
Cuando se tiene una memoria caché habilitada según demanda y se realiza un desplazamiento panorámico a un área no almacenada en la memoria caché, el servidor dibuja una área de 4.096 x 4.096 píxeles y, a continuación, la corta en teselas. Por tanto, si sus teselas tienen una dimensión de 256 x 256 píxeles, se podría prever la creación hasta de 256 teselas. Si el mapa contiene muchas capas o símbolos complejos, podrían ocasionarse al cliente largas esperas.
Por esta razón, se recomienda encarecidamente que se creen previamente las teselas para las áreas más populares del mapa y que se utilice el almacenamiento de memoria caché según demanda únicamente en las áreas menos populares. Evite crear toda la memoria caché según demanda si tiene un documento de mapa de origen complejo.
¿Qué esquema de ordenamiento en teselas debo utilizar para servicios globales?
A diferencia de los servicios de mapas, en todos los servicios globales se utiliza el mismo esquema de ordenamiento en teselas; por tanto, no es necesario que haga nada para configurar un esquema de ordenamiento en teselas para servicios globales. Los datos se almacenarán en la memoria caché automáticamente en los niveles del esquema de ordenamiento en teselas global integrado.
Si observa con detenimiento, puede dichos niveles reflejados en ArcGlobe o ArcGIS Explorer. Si se hace zoom en el globo, puede observarse que la imagen se vuelve ligeramente más nítida o difusa al pasar por diferentes altitudes.
Las escalas del esquema de ordenamiento en teselas de ArcGIS Online/Bing Maps/Google Maps coinciden aproximadamente con los niveles de escala integrados de ArcGlobe. Este esquema de ordenamiento en teselas es, por lo general, una buena elección si tiene previsto desplegar el servicio de mapas 2D sobre la superficie del globo. Aparte de que el esquema de ordenamiento en teselas sea ideal para la apariencia, ArcGlobe se ha diseñado para dibujar servicios 2D con este esquema de ordenamiento en teselas de forma muy rápida.