Dépannage des services REST de géotraitement
Les problèmes les plus courants rencontrés par les services de géotraitement peuvent être détectés à l'aide d'une ou plusieurs des techniques suivantes :
- Activez les messages de géotraitement dans le service, réexécutez la tâche et consultez les messages.
- Exécutez la tâche et consultez le répertoire arcgisjobs.
- Vérifiez que la limite de transfert n'a pas été dépassée.
Activation des messages de géotraitement de niveau Infos
Les messages relatifs aux outils de géotraitement contiennent une explication pas à pas de l'exécution des tâches de géotraitement. En cas d'échec, les messages de géotraitement peuvent contribuer à l'identification du point de défaillance exact de la tâche de géotraitement. Les messages de géotraitement envoyés au client sont déterminés par lapropriété de niveau du message du service de géotraitement. Les quatre niveaux de message sont les suivants : Aucun, Erreur, Avertissement et Info. Si le niveau du message est défini sur Aucun, l'exécution ou la soumission de la tâche de géotraitement ne renvoie aucun message autre que la confirmation du succès ou de l'échec de la tâche. Le niveau Info fournit tous les messages de géotraitement générés par la tâche. C'est le niveau recommandé pour le dépannage. Vous pouvez définir la propriété du Niveau du message du service de géotraitement sur Info via le gestionnaire ArcGIS for Server ou ArcGIS for Desktop et continuer à rechercher la cause de la défaillance.
Si vous n'avez reçu aucun message après avoir défini le niveau de message sur Info, il peut s'agir d'un problème d'entrées non valides. Les valeurs de paramètre en entrée de la tâche sont peut-être incorrectes, partielles ou le document JSON n'est pas valide. Vérifiez les types de données de paramètre en entrée et leurs valeurs JSON.
Inspection du répertoire arcgisjobs
Vous pouvez également résoudre les problèmes relatifs aux services de géotraitement en utilisant le mode d'exécution asynchrone à des fins de débogage. Vous pouvez modifier la propriété du mode d'exécution du service de géotraitement à l'aide d'ArcGIS for Desktop ou du gestionnaire ArcGIS for Server. En mode d'exécution asynchrone, le serveur crée un répertoire unique pour chaque tâche soumise par son client dans le répertoire arcgisjobs. Chaque répertoire dispose d'un dossier temporaire qui fait office d'espace de travail temporaire pour la tâche de géotraitement qui s'exécute sur le serveur. Les données en sortie, les données intermédiaires et les messages de géotraitement générés par la tâche asynchrone sont écrits dans l'espace de travail temporaire. Vous pouvez donc examiner ces données pour identifier les problèmes susceptibles d'être à l'origine de la défaillance.
Le répertoire arcgisjobs est une propriété configurable du service de géotraitement qui peut être modifiée pendant la publication ou ultérieurement. Le chemin par défaut du répertoire arcgisjobs est <server_directories>\directories\arcgisjobs. L'espace de travail temporaire d'une tâche asynchrone sera <arcgis-jobs-folder>\<server_folder_if_any>\<gpservice_name>\<jobid>\scratch.
Contenus d'un espace de travail temporaire du serveur
- répertoire temporaire : le répertoire temporaire contient des données de fichier en sortie, comme des fichiers de formes, des rasters, etc. qui dépendent de la fonctionnalité de l'outil.
- scratch.gdb : la géodatabase scratch.gdb est contenue dans le répertoire temporaire et les jeux de données en sortie, comme les classes d'entités et les rasters de géodatabase sont écrits dans la géodatabase temporaire.
- messages.xml : le fichier message.xml est situé dans le dossier temporaire et contient tous les messages de géotraitement qui ont été consignés pour les tâches de géotraitement. Les messages du fichier XML dépendent de la propriété de Niveau du message du service de géotraitement.
Les répertoires temporaires du dossier arcgisjobs sont supprimés à intervalles prédéfinis au cours de la routine de nettoyage du serveur. La durée des intervalles de nettoyage est déterminée par la propriété Age de fichier maximal du répertoire arcgisjobs. La valeur par défaut est de 360 minutes mais peut être modifiée par l'administrateur du serveur via ArcGIS for Desktop ou le gestionnaire ArcGIS for Server.
Le serveur écrit les données intermédiaires générées par le modèle ou le script dans le dossier temporaire pendant l'exécution de la tâche. Toutefois, ces données intermédiaires seront supprimées à la fin de l'exécution. Si vous souhaitez consulter des données intermédiaires spécifiques dans votre modèle ou votre script, convertissez-les en paramètres de sortie dans le modèle ou le script, créez un nouveau résultat et publiez ce résultat en tant que service. Exécutez ce nouveau service afin d'examiner les nouvelles données en sortie.
Limite de transfert dépassée
Il arrive parfois qu'une tâche synchrone ou asynchrone aboutisse, mais que le jeu d’entités en sortie ou les paramètres du jeu d'enregistrements retournés par le serveur n'incluent aucune entité ou enregistrement. Dans ce cas, vous devez augmenter la valeur de la propriété Nombre maximal d’enregistrements renvoyés par le serveur du service de géotraitement via ArcGIS for Desktop ou le gestionnaire ArcGIS for Server. Le nombre maximal d'entités et d'enregistrements en sortie renvoyés par une tâche de géotraitement est déterminé par la propriété Nombre maximal d’enregistrements renvoyés par le serveur. La valeur par défaut de cette propriété est 1 000 enregistrements ou entités. Lorsque le nombre d'entités ou d'enregistrements de la tâche est supérieur au Nombre maximal d’enregistrements renvoyés par le serveur, la tâche de géotraitement ne renvoie aucun enregistrement ni entité, même si la tâche aboutit.