Compartilhar via


Solução de problemas do CRM COM+

A seguir estão os problemas mais comuns encontrados ao desenvolver e usar o CRM COM+:

  • Mensagens do log de eventos. Se o aplicativo do servidor CRM encontrar um erro interno grave, ele falhará rapidamente (encerrará o processo do aplicativo do servidor CRM) e gravará uma mensagem no log de eventos do Windows. Consulte o log de eventos se algum problema for encontrado.

  • Exceções do CRM Compensator. A infraestrutura do CRM cria o CRM Compensator e transmite-lhe as notificações de resultado da transação e os registros de log gravados pelo CRM Worker. Se o CRM Compensator retornar um erro ou lançar uma exceção, ele será capturado pela infraestrutura do CRM e causará uma falha rápida. Uma mensagem no log de eventos indica que uma exceção foi recebida do CRM Compensator. É possível forçar que essas exceções sejam ignoradas. (Veja Configurações do Registro do CRM COM+.) As exceções do CRM Compensator provavelmente significam um problema no componente específico do CRM Compensator e não na infraestrutura do CRM em si.

  • Rastreamento de recuperação. O rastreamento de recuperação pode ser muito útil para determinar problemas durante a recuperação. Para obter informações sobre como habilitar o rastreamento de recuperação, consulte Configurações do Registro do CRM COM+.

  • Tentando executar com o CRM não habilitado. Não é suficiente simplesmente colocar os componentes CRM Worker e CRM Compensator no aplicativo de servidor COM+. O suporte para CRMs deve ser habilitado especificamente para o aplicativo de servidor COM+ específico usando a opção Habilitar gerenciadores de recursos de compensação na guia Avançado das páginas de propriedades do aplicativo COM+. (Veja Configurando componentes do CRM COM+ para obter mais informações.) Se for feita uma tentativa de usar um CRM dentro de um aplicativo de servidor que não tenha o CRM habilitado, um código de erro será retornado ao CRM Worker.

  • Tentando executar CRMs em processos do cliente. Os CRMs não são executados nos processos do cliente; eles devem ser executados em um processo de aplicativo de servidor COM+. Os componentes do CRM podem ser colocados em um pacote de biblioteca para uso por vários aplicativos de servidor COM+, mas não estão disponíveis para uso em processos de cliente. A tentativa de usar as interfaces do CRM dentro de um processo de cliente retorna um código de erro para o CRM Worker.

  • Recuperação em andamento. A recuperação é iniciada quando um aplicativo de servidor CRM é iniciado. No entanto, a recuperação ocorre em segundo plano durante o processamento normal do aplicativo de servidor CRM. O CRM Worker pode ser criado antes da conclusão da recuperação. Os CRMs não podem ser usados em um processo de aplicativo do servidor CRM até que a recuperação tenha sido concluída com êxito. Nesse caso, o CRM Worker recebe um código de erro "recuperação em andamento" ao tentar registrar o CRM Compensator. O CRM Worker deve sondar ou atrasar até que a recuperação seja concluída. O tempo de recuperação é específico para um tipo específico de CRM, e isso deve ser considerado ao projetar o CRM. Recuperações de longa duração não são desejáveis.

  • Segurança no arquivo de log do CRM. Se o acesso ao arquivo de log do CRM for negado, consulte Considerações de segurança do COM+ CRM para obter uma descrição de como a segurança é definida no arquivo de log do CRM.

  • Transações em dúvida. Em casos raros, uma transação DTC pode entrar no estado de dúvida; ou seja, o DTC não pode determinar o resultado da transação. Para esses casos, durante a recuperação, o CRM mantém os registros de log dessa transação no arquivo de log do CRM. Quando a transação em dúvida tiver sido resolvida pelo DTC, a execução de outra recuperação do CRM concluirá a transação.

  • Criação e lançamento do CRM Compensator. Na primeira vez que um CRM Compensator é registrado por um trabalhador do CRM, ele é criado pela infraestrutura do CRM e consultado para determinar quais das interfaces do CRM Compensator ele suporta. Em seguida, é imediatamente liberado. Os compensadores de CRM precisam suportar a capacidade de serem criados e liberados sem ter tido nenhuma chamada de método interveniente. Se o CRM Compensator não puder ser criado corretamente, talvez devido ao registro COM incorreto, ou se ele não oferecer suporte a pelo menos uma das interfaces corretas do CRM Compensator, um código de erro será retornado ao CRM Worker.

Conceitos do COM+ Compensating Resource Manager