Partager via


Concepts de recyclage des applications COM+

Le recyclage des applications peut considérablement augmenter la stabilité globale de vos applications COM+ en offrant une solution rapide aux problèmes connus et en aidant à vous protéger contre les problèmes inattendus. Par exemple, les performances de l’application peuvent se dégrader au fil du temps en raison de problèmes tels que les fuites de mémoire, l’utilisation non modifiable des ressources et l’échec du processus. COM+ fournit le recyclage des applications comme solution à ces problèmes. Vous pouvez utiliser le recyclage des applications pour arrêter automatiquement un processus et le redémarrer, ce qui réinitialise un processus défaillant et réaffecte la mémoire qu’il utilise.

Le recyclage d’application fonctionne en créant un doublon du processus Dllhost associé à une application. Ce processus Dllhost en double traite toutes les demandes d’objet futures, ce qui laisse l’ancien Dllhost pour terminer la maintenance des demandes d’objet restantes. L’ancien processus Dllhost est arrêté lorsqu’il détecte la libération de toutes les références externes aux objets du processus ou lorsque la valeur de délai d’expiration est atteinte. Grâce à ce comportement, le recyclage des applications garantit qu’une application cliente ne subit pas d’interruption de service.

Notes

Vous ne pouvez pas recycler une application COM+ qui a été configurée pour s’exécuter en tant que service Windows. En outre, les applications de bibliothèque ont les propriétés de recyclage et de regroupement de leur processus hôte.

 

Vous pouvez configurer le recyclage des applications de manière administrative à l’aide de l’outil d’administration Services de composants ou par programmation via le KIT de développement logiciel (SDK) d’administration COM+. Vous pouvez recycler les processus en fonction de plusieurs critères, déterminés par les propriétés suivantes d’un objet COMAdminCatalogObject dans la collection Applications :

  • RecycleLifetimeLimit. Nombre maximal de minutes qu’un processus peut exécuter avant d’être recyclé. La plage valide est comprise entre 0 et 30 240 minutes (21 jours). Le nombre de minutes par défaut est 0, ce qui indique que le processus ne sera pas recyclé à partir de l’atteinte d’une limite de durée de vie.
  • RecycleMemoryLimit. Quantité maximale d’utilisation de la mémoire du processus (en kilo-octets) avant le recyclage du processus. Si l’utilisation de la mémoire du processus dépasse le nombre spécifié pendant plus d’une minute, le processus est recyclé. La plage valide est comprise entre 0 et 1 048 576 Ko. La quantité par défaut d’utilisation de la mémoire est de 0 Ko, ce qui indique que le processus ne recyclera pas à partir de l’atteinte d’une limite de mémoire.
  • RecycleCallLimit. Nombre maximal d’appels que les objets d’application peuvent accepter avant de recycler le processus. La plage valide est comprise entre 0 et 1 048 576 appels. Le nombre d’appels par défaut est 0, ce qui indique que le processus ne recyclera pas après l’atteinte d’une limite d’appels.
  • RecycleActivationLimit. Nombre maximal d’activations d’objets d’application à accepter avant de recycler le processus. La plage valide est comprise entre 0 et 1 048 576 activations. Le nombre d’activations par défaut est 0, ce qui indique que le processus ne sera pas recyclé à partir de l’atteinte d’une limite d’activation.

En outre, la propriété RecycleExpirationTimeout de l’objet COMAdminCatalogObject est utilisée pour forcer l’arrêt d’un processus recyclé. Il indique le nombre de minutes à attendre pour la libération de toutes les références externes aux objets dans le processus recyclé avant d’arrêter de force le processus. La plage valide est de 1 à 1 440 minutes (24 heures), et le délai d’expiration par défaut est de 15 minutes. Cette valeur n’est utilisée que lorsqu’il est déjà déterminé qu’un processus sera recyclé en fonction des autres critères.

Vous pouvez sélectionner plusieurs critères pour le recyclage d’une application. COM+ recycle l’application une fois que le premier de l’ensemble de critères est satisfait. Vous pouvez définir la valeur de délai d’expiration pour déterminer combien de temps un ancien processus Dllhost peut consacrer à l’exécution des demandes de service restantes avant d’être arrêté de force.

La collection ApplicationInstances fournit la propriété HasRecycled, qui permet de déterminer si l’application a déjà été recyclée.

Tâches de recyclage d’applications COM+

RecycleSurrogate