Traitement au premier plan et en arrière-plan
Vous pouvez choisir d'exécuter les outils au premier plan ou en arrière-plan en cliquant sur Géotraitement > Options de géotraitement dans la barre d'outils Standard.
Le volet Traitement en arrière-plan vous permet de contrôler si un outil s'exécute au premier plan ou en arrière-plan.
- Si l'option Activer est sélectionnée, les outils s'exécutent en arrière-plan et vous pouvez continuer à utiliser ArcMap (ou d'autres applications ArcGIS comme ArcGlobe) pendant l'exécution d'un outil. Vous observez une barre de progression au bas de votre document, affichant le nom de l'outil actuellement en cours d'exécution. A l'issue de l'exécution de l'outil, une notification contextuelle apparaît sur la barre d'état système. Vous pouvez contrôler la durée d'affichage du message de notification en déplaçant la glissière Notification. Vous pouvez également désactiver le message en déplaçant la glissière complètement sur la gauche.
- Si l'option Activer n'est pas sélectionnée, les outils s'exécutent au premier plan. Lorsqu'un outil s'exécute au premier plan, vous devez attendre la fin de son exécution avant de continuer votre travail.
Traitement en arrière-plan
Lorsque vous exécutez un outil à l'aide de sa boîte de dialogue ou dans la fenêtre Python, la progression de l'outil apparaît comme illustré ci-dessous.
Vous pouvez également suivre cette progression dans la fenêtre Résultats. La fenêtre Résultats peut s'ouvrir de plusieurs manières :
- Cliquez sur Géotraitement > Résultats.
- Cliquez sur la barre d'état (illustrée ci-dessus) située dans le bas de la fenêtre ArcMap pour ouvrir la fenêtre Résultats sur l'outil en cours d'exécution.
- Cliquez sur le message de réussite ou d'échec pour ouvrir la fenêtre Résultats directement sur les messages d'exécution de cet outil.
L'exécution d'un outil en arrière-plan vous permet de lancer d'autres outils à l'aide de la boîte de dialogue de l'outil. Un seul outil s'exécutera en arrière-plan ; tous les autres outils seront mis en attente d'exécution. Dès qu'un outil a fini de s'exécuter, l'exécution de l'outil suivant démarre.
Vous ne pourrez pas démarrer une session de mise à jour si des outils sont exécutés en arrière-plan. Dans ce cas, un message vous informe que la session de mise à jour ne peut pas être démarrée. Vous devez permettre la fin de l'exécution de tous les outils de géotraitement en arrière-plan (ou les annuler) avant de démarrer une session de mise à jour.
Avec le traitement en arrière-plan, lorsque vous exécutez un outil dans la fenêtre Python, la fenêtre Python ne peut pas être utilisée tant que l'exécution de cet outil n'est pas terminée.
Les outils de modèle ou de script personnalisés sont exécutés par défaut au premier plan
Vos outils de modèle ou de script personnalisés s'exécuteront par défaut au premier plan, même si vous avez activé le traitement en arrière-plan. Pour permettre à vos outils personnalisés de s'exécuter en arrière-plan, vous devez effectuer deux opérations :
- Assurez-vous que votre outil respecte les principes spécifiés à la rubrique Exécution d'outils personnalisés (de modèle ou de script) en arrière-plan.
- Cliquez avec le bouton droit sur votre modèle ou outil de script personnalisé, puis cliquez sur Propriétés. Sous l'onglet Général, désactivez l'option Toujours exécuter au premier plan.
Les couches ArcMap affectées sont verrouillées lorsqu'un outil est exécuté en arrière-plan
Lorsque la sortie d'un outil de géotraitement est une couche de la carte (comme c'est le cas avec l'outil Sélectionner une couche par attribut) ou que l'outil modifie les données en entrée (comme c'est le cas avec l'outil Ajouter un champ ou n'importe quel outil de la boîte à outils Mise à jour), la couche est verrouillée pendant l'exécution de l'outil. Une icône de verrou apparaît sur la couche dans les tables des matières pour indiquer qu'elle est verrouillée pour le traitement. Si vous actualisez la carte lorsqu'une couche est verrouillée, celle-ci ne s'affichera pas. Une fois le traitement de l'outil terminé, la carte est actualisée et vous pouvez continuer à modifier la couche.
Annulation d'un outil exécuté en arrière-plan
Pour annuler l'exécution d'un outil en arrière-plan, ouvrez la fenêtre Résultats et recherchez l'outil exécuté (comporte une icône en forme de sablier ou d'horloge). Cliquez avec le bouton droit sur le résultat, puis cliquez sur Annuler. Cette méthode permet également d'annuler des tâches en file d'attente et pas encore exécutées.
Lorsqu'un outil reçoit l'instruction d'annulation, il essaie d'effectuer un nettoyage à la fin de son exécution, en supprimant toutes les données qu'il a créées et en affichant un message d'avertissement. Selon le type de nettoyage effectué par l'outil, l'annulation peut prendre plus ou moins de temps.
Les outils système peuvent s'exécuter au premier plan même lorsque le traitement en arrière-plan est activé
Il arrive parfois que les outils s'exécutent au premier plan même si le traitement en arrière-plan est activé :
- Si vous modifiez des données, tous les outils de géotraitement s'exécutent au premier plan. Même si les données que vous modifiez ne sont pas utilisées par les outils de géotraitement, ArcGIS exécute néanmoins tous les outils au premier plan. Cette procédure empêche une situation dans laquelle un outil exécuté en arrière-plan modifie les données que vous mettez à jour.
- Si vous ouvrez la fenêtre ModelBuilder et exécutez un modèle, tous les processus du modèle s'exécutent au premier plan. L'utilisation de la fenêtre ModelBuilder s'apparente à une session de mise à jour. Tous les processus s'exécutent au premier plan pour empêcher que la modification du workflow n'entraîne des résultats indésirables.
- Certains outils système, par exemple l'outil Mettre à niveau la géodatabase, s'exécutent toujours au premier plan en raison du verrouillage des données et des besoins d'intégrité. D'autres outils système peuvent s'exécuter au premier plan s'ils doivent accéder à la carte actuelle.
Fermeture des applications lorsque les outils sont mis en attente ou exécutés en arrière-plan
Dans ArcMap (ArcGlobe ou ArcScene), vous pouvez quitter et enregistrer le document lorsque des outils sont exécutés ou mis en attente. Dans ce cas, tous les outils exécutés seront arrêtés. Les outils exécutés et mis en attente passeront à l'état Non exécuté dans la fenêtre Résultats du document enregistré. Ces entrées affichent des icônes creuses et peuvent être exécutées en cliquant avec le bouton droit sur le résultat puis en sélectionnant Réexécuter.
Un outil exécuté ou mis en attente lorsqu'ArcCatalog est quitté sera immédiatement arrêté. Le résultat de l'outil est déplacé vers la section Non exécuté de la fenêtre Résultats. L'outil peut être réexécuté comme indiqué précédemment.
Traitement au premier plan
Lorsque le traitement en arrière-plan est désactivé, les outils s'exécutent au premier plan, et vous devez attendre la fin du processus avant de pouvoir réutiliser l'application. Une fois que l'exécution d'un outil commence, la boîte de dialogue de progression apparaît, comme illustré ci-dessous. Cliquez sur Détails pour afficher les messages d'exécution.
Un message d'avertissement apparaîtra sous la forme de texte vert dans les messages de l'outil, avec le préfixe AVERTISSEMENT suivi d'un code numérique. Un avertissement signifie que la sortie peut ne pas contenir ce que vous attendez. Dans le cas illustré ci-dessous, l'outil a créé une sortie vide. Le code numérique est un hyperlien sur lequel vous pouvez cliquer pour afficher une description complète de l'avertissement et les solutions possibles.
Un message d'erreur apparaît sous la forme de texte rouge, avec le préfixe ERREUR suivi d'un code numérique.
Une fois qu'un outil s'est exécuté et que vous fermez la boîte de dialogue de progression, vous pouvez examiner tous les aspects de l'exécution dans la fenêtre Résultats.
Annulation d'un outil exécuté au premier plan
Au cours de l'exécution d'un outil, vous pouvez annuler l'exécution en cliquant sur le bouton Annuler dans la boîte de dialogue de progression.
Lorsqu'un outil reçoit l'instruction d'annulation, il essaie d'effectuer un nettoyage à la fin de son exécution, en supprimant toutes les données qu'il a créées et en affichant un message d'avertissement. Selon le type de nettoyage effectué par l'outil, l'annulation peut prendre plus ou moins de temps.
Considérations sur les performances
Le traitement en arrière-plan s'apparente à l'exécution d'une autre session ArcMap sur votre ordinateur mais sans que la fenêtre ArcMap ne soit ouverte. Ce processus supplémentaire (session) est lancé la première fois qu'un outil s'exécute en arrière-plan et reste actif jusqu'à la fermeture de votre session ArcMap. Vous noterez un bref délai à la première exécution d'un outil lorsque le processus en arrière-plan démarre.
Si vous utilisez des jeux de données volumineux, certains outils de géotraitement, en particulier ceux qui s'appuient sur un traitement tuilé, mobilisent beaucoup plus de ressources (mémoire et unité centrale) que votre système informatique ne peut en offrir. Si vous ne parvenez pas à exécuter un outil en arrière-plan en raison d'une quantité de mémoire disponible insuffisant (erreur « 000426: Out Of Memory » ou « 999998: Unexpected Error »), vous pouvez essayer la procédure suivante :
- Identifiez et quittez les applications non essentielles utilisant beaucoup de mémoire.
- Désactivez le traitement en arrière-plan dans la boîte de dialogue Options de géotraitement (Géotraitement > Options de géotraitement). Cette méthode interrompt le processus en arrière-plan et libère des ressources.
- Réexécutez l'outil.
En suivant la procédure précitée, vous contournez le traitement en arrière-plan ; le processus en arrière-plan supplémentaire ne démarre pas et les ressources qu'il mobiliserait sont à présent disponibles pour votre outil. Pendant l'exécution de l'outil, évitez de démarrer d'autres applications nécessitant beaucoup de mémoire.
Le traitement en arrière-plan lance deux processus. Vous pouvez observer l'exécution des processus en arrière-plan dans le Gestionnaire des tâches de Windows. L'onglet Processus affiche les deux processus RuntimeLocalServer.exe composant le traitement en arrière-plan. Ces processus ne doivent jamais être terminés via le gestionnaire des tâches car cela pourrait entraîner des résultats inattendus.