Questions courantes concernant la mise en cache
Vous trouverez ci-dessous des questions couramment posées concernant la mise en cache de carte et de globe. Les sujets des questions vont du niveau facile au niveau avancé. Dans de nombreux cas, les réponses répètent des informations figurant ailleurs dans l'aide. Toutefois, cette rubrique peut fournir une réponse à votre question spécifique plus rapidement que la recherche dans l'aide.
Questions générales concernant la mise en cache
Questions concernant la mise en cache de carte
- Comment générer un cache total à certaines échelles et un cache partiel à d'autres ?
- Quelle est la meilleure méthode pour générer le cache uniquement à certaines échelles de ma structure de tuilage ?
- Pourquoi la mise en cache de carte prend-elle parfois plus longtemps avec la version 10.0 qu'avec la version 9.x ?
- Comment afficher une tuile "Données non disponibles" pour les zones de cache vides ?
- Comment éviter les étiquettes dupliquées dans mon cache ?
- Lors de la création d'un cache en fonction d'une limite de classe d'entités, pourquoi est-ce que j'observe des tuiles supplémentaires créées à l'extérieur des entités ?
- Lors de la création de tuiles à la demande, pourquoi est-ce que les tuiles supplémentaires sont créées à l'extérieur de l'étendue de carte de l'utilisateur ?
Questions concernant la mise en cache de globe
Pourquoi est-ce que les outils de mise en cache redémarrent mes services ?
L'outil Gérer le cache des tuiles du serveur de carte et d'autres outils de mise en cache exécutent plusieurs opérations en arrière-plan qui nécessitent un redémarrage du service avant et après l'exécution de l'outil. Par exemple, avant de créer des tuiles, l'outil Gérer le cache des tuiles du serveur de carte étend la valeur du délai d'attente du service pour éviter les dépassements du délai pendant les tâches de mise en cache importantes ; puis, une fois les tuiles créées, il redéfinit la durée du délai d'attente sur la valeur d'origine.
Par ailleurs, si les outils de mise en cache modifient le fichier de structure de tuilage conf.xml, un redémarrage est nécessaire pour que le service de carte prenne en compte les changements. Par exemple, si vous avez utilisé l'outil Gérer les échelles du cache du serveur de carte pour ajouter ou supprimer des échelles de votre cache, un redémarrage est nécessaire pour que le service de carte prenne en compte les modifications apportées à la structure de tuilage.
Le service est brièvement non disponible pendant le redémarrage.
Comment générer un cache total à certaines échelles et un cache partiel à d'autres ?
A grande échelle, il est souvent utile de pré-créer les tuiles probablement les plus populaires et de configurer les tuiles restantes pour une création à la demande. En revanche, à petite échelle il peut s'avérer utile de créer un cache total, car les échelles réduites nécessitent moins de tuiles et sont affichées fréquemment par les clients lorsqu'ils visualisent la carte initiale.
Vous pouvez exécuter plusieurs fois l'outil Gérer le cache des tuiles du serveur de carte pour créer un cache partiel à certains niveaux de votre carte et un cache total à d'autres niveaux.
Supposons que vous disposez d'une carte que vous souhaitez mettre en cache aux échelles suivantes :
- 1:128000
- 1:64000
- 1:32000
- 1:16000
- 1:8000
- 1:4000
Vous pouvez exécuter l'outil Gérer le cache des tuiles du serveur de carte et activer uniquement les cases à cocher 1:128 000, 1:64 000 et 1:32 000. Par défaut, l'étendue complète de ces échelles est mise en cache.
Vous pouvez ensuite exécuter à nouveau l'outil et activer uniquement les cases à cocher 1:16 000, 1:8 000 et 1:4 000. Vous pouvez également choisir de mettre en cache ces niveaux d'échelle en fonction de l'étendue des entités d'une classe d'entités, telle qu'une limite de ville ou de comté, au lieu de mettre en cache l'étendue complète de la carte. Cela crée un cache partiel à ces trois niveaux d'échelle. Vous pouvez éventuellement choisir de créer à la demande les tuiles restantes à ces échelles.
Quelle est la meilleure méthode pour générer le cache uniquement à certaines échelles de ma structure de tuilage ?
L'outil Gérer le cache des tuiles du serveur de carte répertorie toutes les échelles de votre structure de tuilage, avec des cases à cocher en regard de chacune d'entre elles. Si vous souhaitez générer un cache uniquement pour certains des niveaux de votre structure de tuilage, désactivez les échelles que vous ne souhaitez pas mettre en cache avant d'exécuter l'outil.
La création d'un cache pour un sous-ensemble des niveaux de votre structure de tuilage uniquement est un workflow courant lors de la superposition de caches avec les services ArcGIS Online, Bing Maps ou Google Maps. Dans de nombreux cas, vous pouvez souhaiter superposer vos données avec ces fonds de plan, sans disposer du temps ou de l'espace disque nécessaires pour toutes les échelles utilisées par ces services. Vous pouvez utiliser la même structure de tuilage que ces services et désactiver simplement les grandes échelles avant d'exécuter l'outil.
Pourquoi la mise en cache de carte prend-elle parfois plus longtemps avec la version 10.0 qu'avec la version 9.x ?
Pour répondre à cette question, il est indispensable de comprendre comment le serveur effectue une tâche de mise en cache dans la version 10.0.
Dans ArcGIS 10, les instances de service dédiées à la création du cache (processus ArcSOC.exe) bénéficient d'une unité de surface beaucoup plus importante pour travailler de manière ininterrompue, par rapport à la version 9.x. Chaque processus ArcSOC.exe opère sur une surface de 128 x 128 tuiles avant de passer à la surface suivante. Pour des raisons de simplification, nous parlerons ici de « paquet », même s'il n'est pas forcément nécessaire de créer un fichier de paquet si vous créez un cache éclaté.
Au cours de la mise en cache, chaque processus ArcSOC.exe opère sur un paquet, puis passe au prochain paquet disponible. Un seul processus ArcSOC.exe peut opérer sur un paquet à un moment donné.
Dans la version 9.x, l'unité de travail d'un processus ArcSOC.exe correspondait à une "super tuile", dont les dimensions de 2 048 x 2 048 pixels (4 096 x 4 096 pixels sans anti-crénelage) sont beaucoup plus petites que celles d'un paquet. Le passage aux paquets en tant qu'unité de travail permet d'optimiser les E/S de disque et le débit du réseau, ce qui se traduit par un gain de performances significatif. Les processus ArcSOC.exe change d'affectations moins souvent et peuvent se consacrer à la création de tuiles.
L'utilisation du paquet présente cependant un inconvénient : lors de l'utilisation de caches plus petits, ou lorsque la mise en cache est basée sur des limites d'entités très petites, la création du cache peut s'avérer légèrement plus longue qu'avec la version 9.x. Cela tient simplement au fait que moins de paquets sont disponibles que de processus ArcSOC.exe. Si vous disposez de huit processus ArcSOC.exe pour effectuer la mise en cache et qu'un seul paquet se trouve dans votre zone d'intérêt, seul un processus ArcSOC.exe sera utilisé. Il s'agit d'un petit compromis permettant l'amélioration de l'efficacité des outils de mise en cache lors de la gestion de tâches de cache plus importantes.
Le meilleur moyen d'éviter cette situation avec les caches volumineux consiste à effectuer la mise en cache sur des limites d'entités importantes qui englobent beaucoup plus de paquets que de processus ArcSOC.exe disponibles.
Comment afficher une tuile "Données non disponibles" pour les zones de cache vides ?
Si une zone de votre cache n'existe pas, vous pouvez créer la tuile à la demande ou configurer votre serveur Web pour renvoyer une tuile "Données non disponibles". La tuile "Données non disponibles" est également utile si une personne effectue un déplacement jusqu'au bord de la carte ou accède à une zone dont vous n'avez pas terminé la mise en cache. La configuration de votre serveur pour renvoyer une tuile "Données non disponibles" peut dans certains cas présenter une meilleure convivialité que de ne rien renvoyer.
Instructions si aucun répertoire de cache virtuel n'est utilisé (comprend toutes applications JavaScript, Flex et Silverlight)
Pour les applications basées sur REST telles que celles que vous créez avec les API ArcGIS pour JavaScript, Flex ou Silverlight, vous pouvez configurer une tuile "Données non disponibles" en plaçant une tuile vide missing.png, missing.jpg ou blank.png au niveau de la racine de votre cache. Le service de gestion de tuiles utilise cette tuile par défaut s'il n'en trouve aucune dans le cache. Cette technique est également valide pour les applications Web ADF où un répertoire de cache virtuel n'est pas utilisé ou est désactivé pour le cache. Les instructions sont les suivantes :
- Créez une image de mêmes dimensions et format d'image qu'une tuile de votre structure de tuilage. Nommez-la missing.png ou missing.jpg. Si une tuile vierge est nécessaire (par exemple pour les services de superposition qui nécessitent la transparence), utilisez blank.png à la place. Pour télécharger une tuile d'exemple, consultez l'article 36939 de la base de connaissances ESRI.
- Enregistrez le fichier missing.png, missing.jpg ou blank.png sous le dossier _alllayers pour le service de carte. Par exemple : C:\arcgisserver\arcgiscache\MyMapService\Layers\_alllayers\missing.png.
Le gestionnaire de tuiles d'ArcGIS Server gère automatiquement les tuiles manquantes en remplaçant les tuiles attendues mais manquantes par la tuile spéciale "missing" ou "blank" qui se trouve à la racine du cache.
Exemple IIS pour la création d'une réponse d'erreur personnalisée si votre application Web ADF utilise un répertoire de cache virtuel
Si vous créez une application Web ADF qui utilise un répertoire de cache virtuel, vous pouvez créer une réponse d'erreur personnalisée sur votre répertoire de cache virtuel pour l'erreur HTTP Error 404: Not Found. Au lieu d'un message d'erreur, le serveur Web renvoie la tuile. Voici un exemple pour IIS 6 :
- Ouvrez le Panneau de configuration Windows et cliquez sur Outils d'administration > Gestionnaire des services IIS.
- Accédez au répertoire de cache virtuel et trouvez le dossier contenant votre cache de carte. Cliquez avec le bouton droit de la souris sur le dossier, puis sélectionnez Propriétés.
- Cliquez sur l'onglet Messages d'erreur personnalisés, faites défiler l'affichage, puis sélectionnez le code d'erreur 404.
- Cliquez sur le bouton Modifier. Dans la zone URL, spécifiez la tuile que les services IIS doivent renvoyer chaque fois qu'une tuile est introuvable. Utilisez une URL relative et non simplement un chemin d'accès à un fichier.
- Cliquez sur OK pour fermer les boîtes de dialogue.
Exemple Apache pour la création d'une réponse d'erreur personnalisée si votre application Web ADF utilise un répertoire de cache virtuel
- Sauvegardez votre fichier httpd.conf figurant sous <emplacement d'installation apache>\conf.
- Ouvrez votre fichier httpd.conf dans un éditeur de texte.
- Vérifiez s'il existe déjà des entrées de répertoire pour votre répertoire de cache. Dans la plupart des cas, le fichier présenterait l'aspect suivant :
<Directory "C:/ arcgisserver/arcgiscache"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
Les paramètres exacts dans la balise de répertoire peuvent différer, mais le chemin d'accès vers votre cache doit être répertorié. Si vous disposez de ce répertoire, passez à l'étape 5.
- Si vous ne disposez d'aucune balise de répertoire, recherchez une balise faisant référence à htdocs de la manière suivante :
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
Créez une entrée sous cette balise :
<Directory "C:/ arcgisserver/arcgiscache"> </Directory>
Cette opération permet de continuer à utiliser les paramètres de répertoire par défaut.
- Dans votre balise de répertoire de cache, placez les éléments suivants :
ErrorDocument 404 /arcgiscache/data_not_avail.jpg
Vous disposez désormais d'un fichier qui présente l'aspect suivant :
<Directory "C:/ arcgisserver/arcgiscache"> ErrorDocument 404 /arcgiscache/data_not_avail.jpg </Directory>
S'il s'agit d'une entrée de répertoire existante, vous disposez vraisemblablement d'autres paramètres également.
- Redémarrez votre serveur Apache.
Comment éviter les étiquettes dupliquées dans mon cache ?
Si vous utilisez un moteur d'étiquetage dynamique dans votre document ArcMap pour placer des étiquettes (par opposition à l'annotation), vous pouvez parfois observer des étiquettes dupliquées dans vos tuiles en cache. Elles ne doivent pas se produire plus fréquemment que 4096 x 4096 pixels dans chaque direction. Vous pouvez éliminer toutes les étiquettes dupliquées à l'aide de l'annotation. Lorsque vous utilisez l'annotation, les étiquettes sont associées à un point sur la carte et les doublons ne se produisent pas.
La recommandation ci-dessus s'applique aux caches fusionnés. Lorsque vous utilisez des caches multi-couches, les appellations ne sont pas incluses dans les images mises en cache. Les appellations sont affichées dynamiquement sur les images mises en cache.
Si vous avez utilisé des caches multi-couches avec l'infrastructure Web ADF pour .NET 9.2, vous avez probablement observé de nombreuses étiquettes dupliquées car un ensemble dynamique d'étiquettes a été affiché pour chaque tuile. Ce comportement a été amélioré dans la version 9.3 et dans les versions ultérieures ; toutefois, pour des raisons de performances, il est généralement conseillé d'utiliser les caches multi-couches uniquement avec ArcMap en tant que client.
Lors de la création d'un cache en fonction d'une limite de classe d'entités, pourquoi est-ce que j'observe des tuiles supplémentaires créées à l'extérieur des entités ?
Pour éviter des étiquettes dupliquées sur les tuiles, les outils de mise en cache affichent à l'origine des zones de 4 096 pixels par 4 096 pixels (256 tuiles de la taille de tuile par défaut de 256 x 256 pixels), découpées ensuite en tuiles de la taille indiquée dans votre structure de tuilage. En fonction de la structure de tuilage, ainsi que de l'emplacement et de la forme de votre classe d'entités, certaines tuiles dans la zone de 4 096 x 4 096 peuvent figurer à l'extérieur de la limite de la classe d'entités. Ce comportement est prévu. Vous ne devez pas observer de tuiles créées à l'extérieur de la limite de votre classe d'entités au delà de 4 096 pixels dans chaque direction.
Lors de la création de tuiles à la demande, pourquoi est-ce que les tuiles supplémentaires sont créées à l'extérieur de l'étendue de carte de l'utilisateur ?
Lors de la demande de nouvelles tuiles (à la demande ou à l'aide des outils de mise en cache), les tuiles sont toujours créées en groupes. Le mécanisme de mise en cache ne crée jamais une seule tuile à la fois. Si c'était le cas, vous observeriez de nombreuses étiquettes dupliquées car le serveur ne serait pas conscient des étiquettes sur les tuiles adjacentes.
Lorsque la mise en cache à la demande est activée et que vous effectuez un déplacement vers une zone non mise en cache, une surface de 4 096 x 4 096 pixels est dessinée par le serveur, puis découpée en tuiles. Par conséquent, si vos tuiles présentent une dimension de 256 x 256 pixels, la création peut atteindre jusqu'à 256 tuiles. Si votre carte contient de nombreuses couches ou des symboles complexes, cela peut éventuellement provoquer des temps d'attente prolongés pour le client.
Pour cette raison, il est fortement recommandé de pré-créer des tuiles pour les zones populaires de votre carte et d'utiliser la mise en cache à la demande uniquement dans les zones moins populaires. Evitez de créer votre cache entier à la demande si vous disposez d'un document ArcMap source complexe.
Quelle structure de tuilage dois-je utiliser pour les services de globe ?
Contrairement aux services de carte, tous les services de globe utilisent la même structure de tuilage, par conséquent, vous n'avez rien à faire pour configurer une structure de tuilage pour les services de globe. Vos données sont automatiquement mises en cache aux niveaux de la structure de tuilage de globe incorporée.
Si vous regardez attentivement, vous pouvez observer la répercussion de ces niveaux dans ArcGlobe ou ArcGIS Explorer. Lorsque vous effectuez un zoom avant sur le globe, vous observez que l'image devient légèrement plus nette ou plus floue lorsque vous passez différentes altitudes.
Les échelles dans la structure de tuilage d'ArcGIS Online/Bing Maps/Google Maps correspondent environ aux niveaux d'échelle incorporés dans ArcGlobe. Cette structure de tuilage correspond souvent à un choix adapté si vous projetez de draper votre service de carte 2D sur la surface de votre globe. Non seulement la structure de tuilage est idéale pour l'apparence, mais ArcGlobe est également conçu pour afficher très rapidement les services 2D avec cette structure de tuilage.