Você recebe mensagens de erro "recursos insuficientes" quando a quantidade de memória alocada que está sendo usada para armazenar mensagens no Message Queuing 2.0 exceder um valor que está entre 1,6 GB e 1,8 GB

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 899613
Sintomas
Quando você enviar uma mensagem para uma fila, o Microsoft Message Queuing não aceita a mensagem que você está enviando. Em vez disso, o Message Queuing gera uma mensagem de erro "recursos insuficientes". Você receber essa mensagem de erro no aplicativo que está usando o Microsoft Message Queuing 2.0 para enviar mensagens.

Quando esse problema ocorre, as informações a seguir podem aparecer no rastreamento da pilha do aplicativo ou serviço do Microsoft .NET Framework:
Tipo de exceção: System.Messaging.MessageQueueException
MessageQueueErrorCode: InsufficientResources
Mensagem: Recursos insuficientes para executar operação.
ErrorCode:-2147467259
TargetSite: SendInternal void (System.Object, System.Messaging.MessageQueueTransaction, System.Messaging.MessageQueueTransactionType)
HelpLink: nulo
Fonte: System.Messaging
Além disso, a seguinte mensagem é registrada no log do aplicativo:

Tipo de evento: MQ_ERROR_INSUFFICIENT_RESOURCES são recursos insuficientes para executar a operação.
IDENTIFICAÇÃO de evento: 2085
Data: <Date><Time>
Usuário: N/d
Computador: ComputerName
Descrição: Não é possível criar mensagem arquivo C:\WINNT\System32\msmq\STORAGE\l0000009.mq. Não há memória ou espaço em disco insuficiente.

Em um Microsoft COM + em fila componente (QC) aplicativo, a seguinte mensagem pode ser registrada no aplicativo do log:

Tipo de evento: erro
Origem do evento: Evento COM +
Categoria: Gravador de componentes ENFILEIRADOS
IDENTIFICAÇÃO de evento: 4216
Data: <Date>
Tempo: <Time>
Usuário: N/d
Computador: ComputerName
Descrição: Erro inesperado foi retornado pela função API MSMQ indicada. A seguinte mensagem de erro foi recuperada de MSMQ.
MQSendMessage: Não há recursos insuficientes para executar a operação.
IDENTIFICAÇÃO de aplicativo do servidor: {A3551518-9BFB-46BA-8F3B-2218CDA17821}
Logger de nome de aplicativo do servidor: Código de erro = 0xc00e0027
Informações internas de serviços COM +:
Arquivo:.\channelmanager.cpp, linha: 366

Esse problema ocorre quando as seguintes condições forem verdadeiras:
  • Você tentar enviar uma mensagem no Message Queuing.
  • A memória alocada que atualmente está sendo usada para executar o serviço e para armazenar mensagens atingiu 2 gigabytes (GB). Por padrão, o Microsoft Windows 2000 aloca 2 GB de memória endereçável para um processo.

    Após carrega o serviço de enfileiramento, a quantidade padrão de memória alocada que está disponível para Message Queuing 2.0 para armazenar mensagens está entre 1,6 GB e 1,8 GB.

    Observação Se você usar a opção/3 GB , a memória alocada será entre 2 GB e 2,5 GB.

    Arquivos de armazenamento de mensagem são arquivos de memória mapeada. Portanto, você pode ver se o limite foi excedido, verificando o tamanho da pasta armazenamento MSMQ. Essa pasta normalmente está na pasta de armazenamento %WinDir%\System32\MSMQ. No entanto, a pasta de armazenamento pode ser configurada para outro local. Para ver se a pasta de armazenamento foi configurada para outro local, consulte o campo de Pasta de arquivos de mensagem na guia armazenamento na ferramenta MSMQ no painel de controle.
Causa
Esse problema ocorre por um ou mais dos seguintes motivos:
  • O aplicativo que lê e processa mensagens que chegam nas filas está enfrentando dificuldades. No entanto, as mensagens continuam chegar uma taxa mais rápida que a taxa em que o aplicativo pode ler e processar as mensagens nas filas.
  • Armazenamento no diário está ativado nas filas. No entanto, os dados que faz com que mensagens para acumular não foi excluídos.
  • Deadlettering está ativado nas filas. Além disso, a quantidade de memória alocada que está disponível para armazenar mensagens deadlettered foi atingida ou excedida.
  • Mensagens tem acumuladas na fila de saída porque a fila de destino não está disponível.
Resolução
O método que você usa para resolver esse problema depende do status atual do serviço de enfileiramento de mensagens. Antes de resolver esse problema, você deve interromper os serviços ou aplicativos que estão gravando as filas.

Se estiver executando o enfileiramento de mensagens

Determine quais filas tem acumulados mensagens. Para fazer isso, use um dos seguintes métodos:
  • Examine as filas manualmente usando o enfileiramento de interface. A interface do Message Queuing está localizada na Computer Management console.
  • No Monitor de desempenho, defina todos os contadores no objeto de desempenho MSMQ QUEUE . Em seguida, selecione modo de exibição relatório . No modo de exibição relatório , você pode ver o número de mensagens em cada fila.
Depois de determinar quais filas tem acumulados mensagens, você deve determinar por que as mensagens têm acumulados. Há várias razões possíveis por que as mensagens podem se acumular nas filas. Essas razões incluem o seguinte:
  • As mensagens que estão na fila de mensagem de saída não podem acessar seus destinos. Se as mensagens não podem alcançar seus destinos, verifique se o computador de destino está disponível para receber mensagens. Se essas mensagens estão desatualizadas ou não têm valor, limpe a fila.
  • O aplicativo que deve estar recebendo mensagens foi interrompido ou entrou em uma condição de erro. Se uma das seguintes condições for verdadeira, resolva o problema nesse aplicativo.
  • As mensagens em filas de inatividade ou em filas de diário tem sido mantidas. Essas mensagens não tenham sido removidas ou processadas. Se essas mensagens tem sido mantidas, determine a finalidade para reter essas mensagens. A opção de mensagens do diário é freqüentemente usada para teste. Quando o teste for concluído, essa opção pode ser ativada, inadvertidamente, à esquerda. Se as mensagens forem deadlettered, as mensagens não foram processadas ou entregues dentro de um tempo especificado. Se deadlettering ou diário estiver ativado, um processo deve ser lendo essas mensagens de saída da fila.
Quando você identificou as filas de onde as mensagens têm acumulados, você pode excluir as mensagens acumuladas.

Se não estiver sendo executado Message Queuing e você não é possível iniciá-lo manualmente

Observação Antes de fazer qualquer alteração os arquivos de armazenamento MSMQ pasta, recomendamos que você faça o backup o ambiente atual Message Queuing usando MQbkup.exe. Essa etapa é muito importante se você precisar de Ajuda do produto Serviços de suporte.

Observação Porque o Message Queuing tiver digitado um estado instável, talvez não seja capaz de recuperar todas as mensagens. Se você tiver dificuldade restaurar mensagens usando as seguintes etapas e os dados são muito importantes, contate o Atendimento para obter ajuda.

Fazer backup da configuração Message Queuing usando MQbkup.exe, siga estas etapas.

Observação Antes de executar MQbkup.exe, selecione uma pasta para o qual você fará backup arquivos Message Queuing. Esta pasta deve estar localizada em um disco que tenha pelo menos 2,5 GB de espaço disponível.
  1. Abra uma janela de prompt de comando.
  2. Altere o diretório para % WinDir%\System32.
  3. Execute o seguinte comando:
    MQbkup.exe -b Drive: \ Folder to Put Backup Files
  4. Observe o local da pasta para o qual você backup os arquivos de enfileiramento.

Iniciar o servidor usando a opção/3 GB

Observação A opção/3 GB é apenas uma opção para o Microsoft Windows 2000 Advanced Server. Para Microsoft Windows 2000 Server e Microsoft Windows 2000 Professional, vá para a seção "para recuperar suas mensagens manualmente".

Por padrão, o Windows 2000 aloca 2 GB de memória endereçável a cada processo. Esse problema ocorre porque o Message Queuing usa toda a alocação. Esse comportamento impede que o serviço reiniciar corretamente. Se você usar a opção/3 GB , o Windows 2000 Advanced Server aloca/3 GB de memória endereçável a cada processo. Essa configuração fornece o Message Queuing memória endereçável suficiente para carregar o serviço e os arquivos de armazenamento de mensagens depois que você reiniciar o servidor. Essa opção aumenta enfileiramento armazenamento para entre 2 GB e 2,5 GB.

Aviso Essa configuração pode afetar outros recursos no servidor. Recomendamos que você remova a opção/3 GB após concluir a solução de problemas. Essa configuração não se destina para resolver o problema permanentemente. No entanto, você pode usar essa configuração para acessar o Message Queuing para que você possa realizar as etapas na seção "Se está executando o enfileiramento de mensagens".

Para obter informações sobre como configurar o Windows para executar usando gb/3 GB alternar, consulte o tópico "Memória de aplicativo ativando suporte em seus aplicativos a ajuste" no arquivo Ajuda do Windows 2000.

Para recuperar suas mensagens manualmente

Observação Siga estas etapas somente se enfileiramento estiver em um estado não-execução.

importante Como o enfileiramento está em um estado instável e não será iniciado, talvez não seja capaz de recuperar todas as mensagens.

Aviso Esse processo pode causar um aplicativo receber mensagens transacionais em uma ordem diferente da ordem na qual as mensagens originalmente chegaram.
  1. Crie uma pasta temporária para armazenar arquivos de armazenamento de sua mensagem. Não coloque esta pasta na pasta MSMQ.
  2. Selecione somente os arquivos que têm a extensão de nome de arquivo .mq.

    Aviso Alguns arquivos que estão localizados na pasta armazenamento MSMQ são críticas para enfileiramento de mensagens executar corretamente. Certifique-se de que selecionar apenas os arquivos que têm o .mq arquivos extensão de nome.
  3. Mova os arquivos selecionados para a pasta que você criou na etapa 1.
  4. Certifique-se de que o driver de acesso de dados de enfileiramento de mensagem não foi iniciado. Para fazer isso, execute o seguinte comando em um prompt de comando:
    NET STOP MQAC /y
  5. Inicie o serviço de enfileiramento. Para fazer isso, execute o seguinte comando no prompt de comando:
    net start MSMQ
    Observação Se os dados nas mensagens não são importantes e você só quiser colocar o enfileiramento on-line, você pode parar aqui.
  6. Após ter verificado que o serviço agora começará, pare o serviço. Para fazer isso, execute o seguinte comando no prompt de comando:
    NET STOP MQAC /y
    Esse comando interrompe o serviço de enfileiramento de mensagens e o driver de acesso a dados.
  7. Na pasta à qual você moveu os arquivos de armazenamento de mensagens na etapa 5, observe que alguns nomes de arquivo têm um formato de .mq p Number e alguns nomes de arquivo têm um formato de .mq l Number. Esses arquivos são armazenados como pares. Cada arquivo p tem um arquivo de l correspondente.

    Observe as datas que os arquivos foram modificados. Selecione o arquivo p mais antigo e o arquivo de l correspondente. Mova esses arquivos para a pasta MSMQ armazenamento original.
  8. Execute o comando na etapa 5 para iniciar o serviço de enfileiramento. Se o serviço for iniciado, siga as etapas na seção "Se está executando o Message Queuing" para determinar em quais filas de mensagens são acumular e como lidar com as mensagens.
  9. Após ter removido as accumulating mensagens das filas, repita as etapas 6 a 8 até você ter retornou todos os arquivos de mensagem para a pasta de armazenamento de MSMQ e você removeu todas as mensagens accumulating das filas.

    Observação Não mover mais de 1.6 GB de dados novamente para o armazenamento de MSMQ pasta ao mesmo tempo. Se você fizer isso, o serviço não pode iniciar.
Mais Informações

Etapas para reproduzir o problema

Em um computador que está executando o Microsoft Windows 2000 Server, enviar mensagens para uma fila local até que o aplicativo que você está usando para enviar as mensagens recebe uma 0x00e0027 erro de exceção.

Mensagem Queuing 2.0 armazena mensagens em arquivos de memória mapeada. Em um computador que está executando o Windows 2000 Server, a quantidade padrão de memória alocada que está disponível para enfileiramento de mensagens versão 2.0 é 2 GB. Depois que os componentes de enfileiramento de mensagens versão 2.0 são carregados no computador, a quantidade de memória alocada que está disponível para enfileiramento de mensagens versão 2.0 é reduzida para entre aproximadamente 1,6 GB e 1,8 GB.

Se você habilitar a opção/3 GB no arquivo Boot.ini, a quantidade de memória alocada que está disponível para enfileiramento de mensagens versão 2.0 aumenta para/3 GB. Depois que os componentes de enfileiramento de mensagens versão 2.0 são carregados no computador, a quantidade de memória alocada que está disponível para enfileiramento de mensagens versão 2.0 é reduzida para 2.7 GB.

No entanto, o adicionais memória alocada também leva aproximadamente 1 GB de memória alocada do kernel. Esse comportamento pode afetar o desempenho do sistema e pode afetar aplicativos que executam a E/s de arquivo.

Não é recomendável que você usar a opção/3 GB somente para aumentar a quantidade de memória alocada que está disponível para enfileiramento de mensagens versão 2.0. Em vez disso, recomendamos que você configure uma cota de computador para impedir que o problema mencionado na "Sintomas" seção.

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
899612Como configurar cotas de computador e cotas de fila no Microsoft Message Queuing
Referências
Para obter mais informações sobre o recurso de enfileiramento de mensagens, visite o seguinte site:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 899613 - Última Revisão: 02/17/2006 05:42:32 - Revisão: 4.0

Microsoft Message Queue Server (MSMQ) 2.0

  • kbmt kbprb KB899613 KbMtpt
Comentários