Solución de problemas de COM+ CRM
A continuación se muestran los problemas más comunes que se producen al desarrollar y usar COM+ CRM:
Mensajes de registro de eventos. Si la aplicación de servidor CRM encuentra un error interno grave, se producirá un error (finalizará el proceso de aplicación del servidor CRM) y escribirá un mensaje en el registro de eventos de Windows. Consulte el registro de eventos si se producen problemas.
Excepciones del compensador de CRM. La infraestructura de CRM crea el compensador de CRM y la pasa las notificaciones de resultados de la transacción y las entradas de registro escritas por el trabajador de CRM. Si el compensador crm devuelve un error o produce una excepción, la infraestructura de CRM la detecta y produce una conmutación por error. Un mensaje en el registro de eventos indica que se recibió una excepción del compensador de CRM. Es posible forzar que se omitan estas excepciones. (Consulte Com+ CRM Registry Settings).) Las excepciones del compensador crm probablemente significan un problema en el componente de compensación de CRM específico y no en la propia infraestructura de CRM.
Seguimiento de recuperación. El seguimiento de recuperación puede ser muy útil para determinar problemas durante la recuperación. Para obtener información sobre cómo habilitar el seguimiento de recuperación, consulte Configuración del Registro de CRM de COM+.
Intentando ejecutar con CRM no habilitado. No es suficiente simplemente colocar los componentes de crm Worker y CRM Compensator en la aplicación de servidor COM+. La compatibilidad con CRM debe estar habilitada específicamente para la aplicación de servidor COM+ específica mediante la opción Habilitar administradores de recursos de compensación en la pestaña Opciones avanzadas de las páginas de propiedades de la aplicación COM+. (Consulte Configuring COM+ CRM Components (Configuración de componentes de COM+ CRM ) para obtener más información). Si se intenta usar un CRM dentro de una aplicación de servidor que no tiene el CRM habilitado, se devuelve un código de error al trabajo de CRM.
Intentar ejecutar CRM en procesos de cliente. Los CRM no se ejecutan en procesos de cliente; deben ejecutarse en un proceso de aplicación de servidor COM+. Los componentes de CRM se pueden colocar en un paquete de biblioteca para que lo usen varias aplicaciones de servidor COM+, pero no están disponibles para su uso en los procesos de cliente. Si se intenta usar las interfaces de CRM dentro de un proceso de cliente, se devuelve un código de error al trabajo de CRM.
Recuperación en curso. La recuperación se inicia cuando se inicia una aplicación de servidor CRM. Sin embargo, la recuperación se produce en segundo plano durante el procesamiento normal de la aplicación de servidor CRM. El trabajo de CRM se puede crear antes de que se complete la recuperación. Los CRM no se pueden usar en un proceso de aplicación de servidor CRM hasta que la recuperación se haya completado correctamente. En este caso, el trabajador de CRM recibe un código de error de "recuperación en curso", ya que intenta registrar el compensador de CRM. El trabajador de CRM debe sondear o retrasar de otro modo hasta que se haya completado la recuperación. El tiempo de recuperación es específico de un tipo determinado de CRM y debe tenerse en cuenta al diseñar el CRM. Las recuperaciones de larga duración no son deseables.
Seguridad en el archivo de registro de CRM. Si se deniega el acceso al archivo de registro de CRM, consulte Consideraciones de seguridad de COM+ CRM para obtener una descripción de cómo se establece la seguridad en el archivo de registro de CRM.
Transacciones dudosas. En raras ocasiones, una transacción DTC podría entrar en estado dudoso; es decir, el DTC no puede determinar el resultado de la transacción. En estos casos, durante la recuperación, CRM mantiene las entradas de registro de esa transacción en el archivo de registro de CRM. Cuando la DTC ha resuelto la transacción en duda, la realización de otra recuperación de CRM completa la transacción.
Creación y lanzamiento de CRM Compensator. La primera vez que un trabajador de CRM registra un compensador de CRM, se crea mediante la infraestructura de CRM y se consulta para determinar qué interfaces de compensador de CRM admite. A continuación, se libera inmediatamente. Los compensadores de CRM deben admitir la capacidad de crearse y liberarse sin tener ninguna llamada al método intermedio. Si el compensador de CRM no se puede crear correctamente, quizás debido a un registro COM incorrecto o si no admite al menos una de las interfaces de compensación de CRM correctas, se devuelve un código de error al trabajo de CRM.