Résolution des problèmes liés à COM+ CRM
Voici les problèmes les plus courants rencontrés lors du développement et de l’utilisation de COM+ CRM :
Messages des journaux des événements. Si l’application serveur CRM rencontre une erreur interne grave, elle échoue (termine le processus d’application du serveur CRM) et écrit un message dans le journal des événements Windows. Si des problèmes sont rencontrés, reportez-vous au journal des événements.
Exceptions du compensateur CRM. L’infrastructure CRM crée le compensateur CRM et lui transmet les notifications de résultat de transaction et les enregistrements de journal écrits par le worker CRM. Si le compensateur CRM retourne une erreur ou lève une exception, elle est interceptée par l’infrastructure CRM et provoque une défaillance. Un message dans le journal des événements indique qu’une exception a été reçue du compensateur CRM. Il est possible d’obliger ces exceptions à être ignorées. (Consultez Paramètres du Registre COM+ CRM.) Les exceptions du compensateur CRM signifient probablement un problème dans le composant compensateur CRM spécifique et non dans l’infrastructure CRM elle-même.
Trace de récupération. La trace de récupération peut être très utile pour déterminer les problèmes pendant la récupération. Pour plus d’informations sur l’activation du suivi de récupération, consultez Paramètres du Registre COM+ CRM.
Tentative d’exécution avec le CRM non activé. Il ne suffit pas simplement de placer les composants Worker crm et CRM Compensateur dans l’application serveur COM+. La prise en charge des CRM doit être activée spécifiquement pour l’application serveur COM+ spécifique à l’aide de l’option Activer les gestionnaires de ressources de compensation sous l’onglet Avancé des pages de propriétés de l’application COM+. (Pour plus d’informations, consultez Configuration des composants COM+ CRM .) Si une tentative d’utilisation d’un CRM est effectuée à l’intérieur d’une application serveur sur laquelle le CRM n’est pas activé, un code d’erreur est retourné au worker CRM.
Essayez d’exécuter des CRM dans des processus clients. Les crm ne s’exécutent pas dans les processus clients ; ils doivent s’exécuter dans un processus d’application serveur COM+. Les composants CRM peuvent être placés dans un package de bibliothèque pour une utilisation par plusieurs applications serveur COM+, mais ils ne sont pas disponibles pour une utilisation dans les processus clients. La tentative d’utilisation des interfaces CRM à l’intérieur d’un processus client retourne un code d’erreur au worker CRM.
Récupération en cours. La récupération démarre lorsqu’une application serveur CRM démarre. Toutefois, la récupération se produit en arrière-plan pendant le traitement normal de l’application serveur CRM. Le worker CRM peut être créé avant la fin de la récupération. Les crm ne peuvent pas être utilisés dans un processus d’application serveur CRM tant que la récupération n’est pas terminée. Dans ce cas, le worker CRM reçoit un code d’erreur « récupération en cours » quand il tente d’inscrire le compensateur CRM. Le worker CRM doit interroger ou retarder d’une autre manière jusqu’à ce que la récupération soit terminée. Le temps de récupération est spécifique à un type particulier de CRM, et cela doit être pris en compte lors de la conception du CRM. Les récupérations de longue durée ne sont pas souhaitables.
Sécurité sur le fichier journal CRM. Si l’accès au fichier journal CRM est refusé, consultez Considérations relatives à la sécurité DE COM+ CRM pour obtenir une description de la façon dont la sécurité est définie sur le fichier journal CRM.
Transactions douteuses. Dans de rares cas, une transaction DTC peut passer à l’état de doute ; autrement dit, le DTC ne peut pas déterminer le résultat de la transaction. Dans ce cas, pendant la récupération, le CRM conserve les enregistrements de journal de cette transaction dans le fichier journal CRM. Lorsque la transaction en question a été résolue par le DTC, l’exécution d’une autre récupération CRM termine la transaction.
Création et publication de CRM Compensateur. La première fois qu’un compensateur CRM est inscrit par un worker CRM, il est créé par l’infrastructure CRM et interrogé pour déterminer les interfaces de compensation CRM qu’il prend en charge. Il est ensuite immédiatement libéré. Les compensateurs CRM doivent prendre en charge la possibilité d’être créés et libérés sans avoir eu d’appels de méthode intermédiaires. Si le compensateur CRM ne peut pas être créé correctement, peut-être en raison d’une inscription COM incorrecte, ou s’il ne prend pas en charge au moins l’une des interfaces de compensation CRM correctes, un code d’erreur est retourné au worker CRM.
Rubriques connexes