Como o Message Queuing pode funcionar sobre rede NLB (balanceamento de carga) de

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: 899611
importante Este artigo contém informações sobre como modificar o registro. Certifique-se de fazer backup do registro antes de modificá-lo. Certifique-se que você sabe como restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986Descrição do registro do Microsoft Windows
INTRODUÇÃO
O seguinte artigo discute como o Microsoft Message Queuing pode funcionar sobre rede NLB (balanceamento de carga). Este artigo também descreve possíveis configurações incorretas do serviço de enfileiramento de mensagens.
Mais Informações

Configurações compatíveis

O Message Queuing é suportado em um ambiente de NLB tanto enviar e receber mensagens nas seguintes configurações:
  • Mensagens não transacionais usando Direct = TCP
  • Mensagens não transacionais usando Direct = OS com validação desabilitada
  • Mensagens não transacionais usando Direct = HTTP
  • Transacional de mensagens usando uma configuração específica que usa o armazenamento e encaminhamento servidores e um servidor back-end único
Observação Somente as filas particulares são destinos com suporte em qualquer uma dessas configurações. Porque o nome da rede virtual não terá um objeto de serviço de diretório do Active Directory correspondente, as propriedades de fila de destino não podem ser consultadas. Você poderá enviar mensagens para filas públicas, desde que a filas públicas são acessadas usando um nome de formato direto em vez de usando o caminho padrão.

Mensagens não transacionais usando Direct = TCP

Essa configuração funciona sem alterações de configuração específica.

Mensagens não transacionais usando Direct = OS

Essa configuração só funciona quando validação está desabilitada. Para desativar a validação, você deve adicionar a seguinte chave do registro no Message Queuing 2.0 juntamente com o Microsoft Windows 2000 e no Message Queuing 3.0 juntamente com o Microsoft Windows XP ou Microsoft Windows Server 2003.

Aviso Podem ocorrer sérios problemas se você modificar o registro incorretamente usando o Editor do registro ou usando outro método. Esses problemas podem exigir que você reinstale seu sistema operacional. A Microsoft não garante que esses problemas possam ser solucionados. Modificar o registro por sua própria conta e risco.Siga estas etapas e feche o Editor do Registro:
  1. Clique em Iniciar , clique em Executar , digite regedit e, em seguida, clique em OK .
  2. Localize e, em seguida, clique na seguinte chave no Registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters
  3. No menu Editar , aponte para novo e, em seguida, clique em Valor DWORD .
  4. Digite IgnoreOSNameValidation e, em seguida, pressione ENTER.
  5. No menu Editar , clique em Modificar .
  6. Digite 1 e, em seguida, clique em OK .
Por padrão, o enfileiramento de mensagens verifica a mensagem que ele recebe para determinar se a mensagem é destinada ao computador local. Se a mensagem não se destina o computador local, a mensagem será rejeitada.

Quando uma mensagem é enviada a um servidor que está atrás de um balanceador de carga de rede, a mensagem é enviada, usando o nome do balanceador de carga ou usando o nome de rede que é atribuído para o IP virtual no balanceador de carga de rede. Em seguida, o balanceador de carga de rede roteia a mensagem para um destinatário de enfileiramento de mensagens. No entanto, o Gerenciador de fila local no receptor enfileiramento identifica que o nome do computador e o nome de destino na mensagem não coincidem e o Gerenciador de filas descartará a mensagem. Depois de definir esse valor do Registro, enfileiramento de mensagens não valida o nome do computador de destino e aceitará a mensagem.

Mensagens não transacionais usando Direct = HTTP

Há suporte para esta configuração sem alterações de configuração específica.

Transacional de mensagens usando uma configuração específica que usa o armazenamento e servidores direta e retornar um único servidor end

Nessa configuração, as mensagens transacionais só oferece suporte ao fim de nós que recebem mensagens mapa a fila de recebimento para retornar um único servidor de mensagens HTTP. Não há suporte para as mensagens transacionais HTTP quando as filas de destino estão em nós individuais.

Para obter mais informações sobre essa configuração, consulte o white paper "Microsoft Message Queuing (MSMQ) HTTP implantação cenários para Windows Server 2003 e Windows XP Professional".

Uma configuração para mensagens transacionais onde as filas de destino residam em cada nó do membro por trás de um balanceador de carga não dá suporte aos enviar ou receber mensagens pelos seguintes motivos:
  • Mensagens duplicadas
  • Mensagens não confirmadas no remetentes
  • Transações incompletas

Mensagens transacionais e confirmações

Quando uma mensagem transacional é recebida por um computador, a mensagem é gravada para o armazenamento, a mensagem é registrada e uma confirmação de ordem é enviada de volta ao remetente. A confirmação de pedido é enviada novamente para o endereço IP que a mensagem original veio usando direta = TCP. Em seguida, a mensagem é recebida pelo remetente e a mensagem é removida da fila de saída.

Quando uma confirmação de recebimento não é recebida pelo servidor de envio em um tempo especificado, a mensagem original é reenviada. Quando a mensagem chega no destino, o servidor de destino examina o log e localiza a que o servidor já recebeu a mensagem. Portanto, o servidor de destino rejeitará a mensagem e envia novamente outra confirmação de recebimento. O servidor de destino continuará a enviar confirmações até que a confirmação de ordem for recebida pelo remetente. O log impede que uma mensagem duplicada sendo recebidos e a confirmação de ordem confirma ao remetente que a mensagem foi recebida.

Problemas com as mensagens transacionais e balanceadores de carga de rede

Quando uma mensagem é enviada por meio de um balanceador de carga, o computador de destino veja a mensagem como provenientes do balanceador de carga. Em seguida, o computador de destino envia a confirmação de ordem por meio de uma nova sessão. Portanto, o balanceador de carga não é possível usar a mesma lógica para manter o estado para um servidor Web ou um serviço semelhante.

O problema mais comum nesse cenário é que vários servidores enviam mensagens através de um balanceador de carga, mas todas as confirmações de ordem são enviadas para o servidor incorreto. Esse comportamento faz com que mensagens não confirmadas para criar na fila de saída de envio de computadores. Além disso, quando a confirmação de ordem não é recebida pelo remetente, o remetente será reenviar a mensagem. O segundo tente enviar a mensagem através do balanceador de carga pode enviar a mensagem para um computador diferente. Este computador será não viu esta mensagem antes de e a mensagem será processada como uma nova mensagem. Lembre-se de que a validação foi desabilitada para permitir mensagens para viajar entre o NLB.

Uma mensagem foi enviada por um balanceador de carga pode ser recebida e processada uma vez por todos os servidores que estão por trás do balanceador de carga antes de uma confirmação de ordem for recebida. Além disso, transações que abrangem várias mensagens sempre não podem ser processadas ou chegarem na ordem. Portanto, enfileiramento de mensagens não oferece suporte enviando mensagens transacionais quando você usa um NLB.
Referências
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
306785CORRECÇÃO: O enfileiramento de mensagens não são validadas com balanceamento de carga de rede
Para obter mais informações sobre como implementar as mensagens transacionais usando uma configuração específica para armazenar e para servidores direta em um único servidor end fazer, visite o seguinte site:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 899611 - Última Revisão: 06/14/2005 16:38:51 - Revisão: 1.0

Microsoft Message Queue Server (MSMQ) 1.0, Microsoft Message Queue Server (MSMQ) 2.0, Microsoft Message Queue Server (MSMQ) 3.0

  • kbmt kbinfo KB899611 KbMtpt
Comentários