J'ai une application qui envoie des requêtes à un serveur COM hors de la procédure qui gère les requêtes et les renvoie à l'application demandeuse.Détection et résolution du blocage du serveur COM
L'application client contrôle réellement le démarrage-arrêt de ce serveur COM hors-procédure et détermine ainsi sa durée de vie. Parce que cette application a plusieurs centaines de demandes à la fois, elle a principalement au moins 4 des mêmes serveurs COM pour gérer ces demandes.
Le problème est que parfois ce serveur COM se bloque en gérant une requête, qui est interceptée par l'application qui demande, qui tue le serveur COM de sortie. Cependant, cela n'arrive pas toujours. Ce qui arrive parfois, c'est que l'application cliente demande un arrêt du serveur COM, ce qui fait que le client libère toutes les références au serveur COM, mais le serveur COM finit par utiliser seulement 25% du CPU et ne meurt jamais. Il semble qu'il se bloque et utilise le processeur en permanence.
Le client dispose d'un mécanisme pour tenter de forcer le processus du serveur COM s'il ne parvient pas à mourir, même si cela ne semble pas fonctionner dans les cas où le serveur COM se bloque.
Est-ce que quelqu'un a connu quelque chose de similaire ou a des conseils sur la façon dont on pourrait résoudre une situation comme celle-ci?
Même question http://stackoverflow.com/questions/10691592/how-to-call-release-from-com-server –