Activation juste-à-temps
Le service COM+ d'activation juste-à-temps (JIT, Just-In-Time) permet aux ressources inactives du serveur d'être utilisées de façon plus productive. Lorsqu'un composant est configuré avec l'activation JIT, COM+ peut en désactiver une instance alors qu'un client conserve une référence active à cet objet. La prochaine fois qu'un client appellera une méthode sur l'objet, COM+ réactivera l'objet en juste-à-temps, de façon transparente pour le client*.*
Remarque Pour un composant configuré avec l'activation JIT, l'objet est activé dès sa création.
Dès le retour à l'appel de méthode, COM+ désactive l'objet mais garde le contexte en mémoire. L'objet désactivé libère toutes ses ressources, y compris les verrous appliqués aux magasins de données coûteux.
Remarque Du point de vue des performances, il est préférable de ne pas implémenter de finaliseur dans une classe dérivée ServicedComponent et de placer plutôt la logique dans la méthode DisposeObject. Bien que le proxy ServicedComponent possède un finaliseur, il appelle celui de la classe dérivée ServicedComponent par une utilisation de la réflexion.
Pour activer l'activation JIT, appliquez l'attribut JustInTimeActivationAttribute à une classe dérivée de System.EnterpriseServices.ServicedComponent. De plus, pour garantir que l'objet sera désactivé au retour de l'appel à la méthode, il convient de définir son bit. Pour les composants transactionnels, vous pouvez soit appliquer AutoCompleteAttribute à une classe soit appeler ContextUtil.SetComplete ou ContextUtil.SetAbort. Pour les composants non transactionnels, appelez ContextUtil.DeactivateOnReturn.
Remarque Les transactions automatiques requièrent l'activation JIT ; l'activation JIT est donc implicitement activée lorsque des classes sont configurées pour les transactions automatiques.
L'exemple suivant montre comment activer l'activation et la désactivation JIT sur des instances de la classe TestObjectPooling
.
<JustInTimeActivation()> _
Public Class TestObjectPooling
Inherits ServicedComponent
[C#]
[JustInTimeActivation]
public class TestObjectPooling : ServicedComponent
Voir aussi
Résumé des services COM+ disponibles | JustInTimeActivationAttribute | System.EnterpriseServices, espace de noms