Partilhar via


Tarefa da fila de mensagens

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

A tarefa Fila de Mensagens permite-lhe usar a Fila de Mensagens (também conhecida como MSMQ) para enviar e receber mensagens entre pacotes de Serviços de Integração SQL Server, ou enviar mensagens para uma fila de aplicações processada por uma aplicação personalizada. Estas mensagens podem assumir a forma de texto simples, ficheiros ou variáveis e os seus valores.

Ao utilizar a tarefa Message Queue, pode coordenar operações em toda a sua empresa. As mensagens podem ser enfileiradas e entregues mais tarde se o destino estiver indisponível ou ocupado; Por exemplo, a tarefa pode enfileirar mensagens para o computador portátil offline dos representantes de vendas, que recebem as suas mensagens quando se ligam à rede. Pode usar a tarefa Message Queue para os seguintes fins:

  • Atrasar a execução da tarefa até que outros pacotes cheguem. Por exemplo, após a manutenção noturna em cada um dos seus sítios de venda a retalho, uma tarefa de Queue de Mensagens envia uma mensagem para o computador central da sua empresa. Um pacote a correr no computador corporativo contém tarefas de Fila de Mensagens, cada uma à espera de uma mensagem de um determinado site de retalho. Quando chega uma mensagem de um site, uma tarefa carrega dados desse site. Depois de todos os sites terem feito check-in, o pacote calcula os totais resumidos.

  • Enviar ficheiros de dados para o computador que os processa. Por exemplo, a saída de uma caixa registadora de restaurante pode ser enviada numa mensagem de ficheiro de dados para o sistema de processamento salarial corporativo, onde são extraídos dados sobre as gorjetas de cada empregado.

  • Distribuir ficheiros por toda a sua empresa. Por exemplo, um pacote pode usar uma tarefa de Fila de Mensagens para enviar um ficheiro de pacote para outro computador. Um pacote a correr no computador de destino utiliza então uma tarefa de Mensagem Queue para recuperar e guardar o pacote localmente.

Ao enviar ou receber mensagens, a tarefa Fila de Mensagens utiliza um de quatro tipos de mensagens: ficheiro de dados, cadeia de caracteres, mensagem de cadeia de caracteres para variável ou variável. O tipo de mensagem de sequência para o tipo de mensagem variável só pode ser usado ao receber mensagens.

A tarefa utiliza um gestor de ligações MSMQ para se ligar a uma fila de mensagens. Para mais informações, consulte o MSMQ Connection Manager. Para mais informações sobre Fila de Mensagens, consulte a Biblioteca MSDN.

A tarefa da Fila de Mensagens exige que o serviço de Serviços de Integração esteja instalado. Alguns componentes do SQL Server que pode selecionar para instalação na página de Componentes a Instalar ou na página de Seleção de Funcionalidades do Assistente de Instalação do SQL Server instalam um subconjunto parcial dos componentes dos Serviços de Integração. Estes componentes são úteis para tarefas específicas, mas a funcionalidade dos Serviços de Integração será limitada. Por exemplo, a opção SQL Server Data Tools (SSDT) instala os componentes de Serviços de Integração necessários para desenhar um pacote, mas o serviço de Serviços de Integração não está instalado e, por isso, a tarefa da Fila de Mensagens não está funcional. Para garantir uma instalação completa dos Serviços de Integração, deve selecionar Serviços de Integração na página Componentes a Instalar . Para mais informações sobre a instalação e execução da tarefa Message Queue, consulte Instalar Serviços de Integração.

Observação

A tarefa de Fila de Mensagens não cumpre a Norma Federal de Processamento de Informação (FIPS) 140-2 quando o sistema operativo do computador está configurado em modo FIPS e a tarefa utiliza encriptação. Se a tarefa da Fila de Mensagens não usar encriptação, a tarefa pode correr com sucesso.

Tipos de mensagem

Pode configurar os tipos de mensagens que a tarefa Message Queue fornece das seguintes formas:

  • A mensagem do ficheiro de dados especifica que um ficheiro contém a mensagem. Ao receber mensagens, pode configurar a tarefa para guardar o ficheiro, sobrescrever um ficheiro existente e especificar o pacote do qual a tarefa pode receber mensagens.

  • A mensagem string especifica a mensagem como uma string. Ao receber mensagens, pode configurar a tarefa para comparar a string recebida com uma string definida pelo utilizador e agir consoante a comparação. A comparação de cadeias pode ser exata, sensível a maiúsculas ou não sensível a maiúsculas, ou usando uma substring.

  • String message to variable especifica a mensagem de origem como uma string que é enviada para uma variável de destino. Pode configurar a tarefa para comparar a string recebida com uma string definida pelo utilizador usando por comparação exata, sem distinção entre maiúsculas e minúsculas, ou por correspondência de substring. Este tipo de mensagem está disponível apenas quando a tarefa está a receber mensagens.

  • A variável especifica que a mensagem contém uma ou mais variáveis. Pode configurar a tarefa para especificar os nomes das variáveis incluídas na mensagem. Ao receber mensagens, pode configurar a tarefa para especificar tanto o pacote de onde pode receber mensagens como a variável que é o destino da mensagem.

Envio de Mensagens

Ao configurar a tarefa Message Queue para enviar mensagens, pode usar um dos algoritmos de encriptação atualmente suportados pela tecnologia de Message Queuing, RC2 e RC4, para encriptar a mensagem. Ambos estes algoritmos de encriptação são agora considerados criptograficamente fracos em comparação com algoritmos mais recentes, que a tecnologia de Fila de Mensagens ainda não suporta. Por isso, deve considerar cuidadosamente as suas necessidades de criptografia ao enviar mensagens usando a tarefa Message Queue.

Receção de Mensagens

Ao receber mensagens, a tarefa da Fila de Mensagens pode ser configurada das seguintes formas:

  • Ignorar a mensagem ou removê-la da fila.

  • Especificando um tempo de pausa.

  • Falha se ocorrer um timeout.

  • Sobrescrevendo um ficheiro existente, se a mensagem estiver armazenada num ficheiro Data.

  • Guardar o ficheiro de mensagem com um nome de ficheiro diferente, caso a mensagem utilize o tipo de Mensagem de ficheiro de dados.

Mensagens de registo personalizadas disponíveis na tarefa da fila de mensagens

A tabela seguinte lista as entradas de registo personalizadas para a tarefa Fila de Mensagens. Para obter mais informações, consulte o Log de Serviços de Integração (SSIS) .

Entrada de log Description
MSMQAfterOpen Indica que a tarefa terminou de abrir a fila de mensagens.
MSMQBeforeOpen Indica que a tarefa começou a abrir a fila de mensagens.
MSMQBeginReceive Indica que a tarefa começou a receber uma mensagem.
MSMQBeginSend Indica que a tarefa iniciou o envio de uma mensagem.
MSMQEndReceive Indica que a tarefa terminou de receber uma mensagem.
MSMQEndSend Indica que a tarefa terminou de enviar uma mensagem.
MSMQTaskInfo Fornece informações descritivas sobre a tarefa.
MSMQTaskTimeOut Indica que a tarefa excedeu o tempo limite.

Configuração da Tarefa da Fila de Mensagens

Você pode definir propriedades por meio do SSIS Designer ou programaticamente. Para informações sobre as propriedades que pode definir no SSIS Designer, clique no seguinte tópico:

Para informações sobre como definir programaticamente estas propriedades, consulte a documentação da classe Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask no Developer Guide.

Para mais informações sobre como definir estas propriedades no SSIS Designer, veja Definir as Propriedades de uma Tarefa ou Contentor.

Editor de Tarefas da Fila de Mensagens (Página Geral)

Use a página Geral da caixa de diálogo Editor de Tarefas da Fila de Mensagens para nomear e descrever a tarefa da Fila de Mensagens, especificar o formato da mensagem e indicar se a tarefa envia ou recebe mensagens.

Opções

Nome
Forneça um nome único para a tarefa Message Queue. Esse nome é usado como o rótulo no ícone da tarefa.

Observação

Os nomes das tarefas devem ser exclusivos dentro de um pacote.

Descrição
Escreva uma descrição da tarefa Fila de Mensagens.

Use2000Format
Indique se deve usar o formato 2000 de Fila de Mensagens (também conhecido como MSMQ). O padrão é False.

MSMQConnection
Selecione um gestor de ligações MSMQ existente ou clique em <Nova ligação...> para criar um novo gestor de ligações.

Tópicos Relacionados: Gestor de Ligações MSMQ, Editor do Gestor de Conexões MSMQ

Message
Especifique se a tarefa da Fila de Mensagens envia ou recebe mensagens. Se selecionares Enviar mensagem, a página Enviar aparece no painel esquerdo da caixa de diálogo; se selecionar Receber mensagem, a página Receber aparece listada. Por defeito, este valor está definido como Enviar mensagem.

Editor de Tarefas da Fila de Mensagens (Página de Envio)

Use a página Enviar da caixa de diálogo do Editor de Tarefas da Fila de Mensagens para configurar uma tarefa da Fila de Mensagens para enviar mensagens a partir de um pacote Microsoft SQL Server Integration Services.

Opções

UseEncryption
Indique se deve encriptar a mensagem. O padrão é False.

AlgoritmoDeEncriptação
Se optar por usar encriptação, especifique o nome do algoritmo de encriptação a utilizar. A tarefa Message Queue pode usar os algoritmos RC2 e RC4. O padrão é RC2.

Observação

O algoritmo RC4 só é suportado para compatibilidade com versões anteriores. O novo material só pode ser encriptado utilizando RC4 ou RC4_128 quando a base de dados estiver no nível de compatibilidade 90 ou 100. (Não recomendado.) Em vez disso, use um algoritmo mais recente, como um dos algoritmos AES. Na versão atual do SQL Server, material encriptado usando RC4 ou RC4_128 pode ser desencriptado em qualquer nível de compatibilidade.

Importante

Estes são os algoritmos de encriptação que a tecnologia de Fila de Mensagens (também conhecida como MSMQ) suporta. Ambos estes algoritmos de encriptação são agora considerados criptograficamente fracos em comparação com algoritmos mais recentes, que o Message Queuing ainda não suporta. Por isso, deve considerar cuidadosamente as suas necessidades de criptografia ao enviar mensagens usando a tarefa Message Queue.

TipoDeMensagem
Selecione o tipo de mensagem. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Mensagem do ficheiro de dados A mensagem é armazenada num ficheiro. Ao selecionar o valor, apresenta-se a opção dinâmica, DataFileMessage.
Mensagem variável A mensagem é armazenada numa variável. Ao selecionar o valor, apresenta-se a opção dinâmica, VariableMessage.
Mensagem de String A mensagem é armazenada na tarefa Fila de Mensagens. Ao selecionar o valor, apresenta-se a opção dinâmica, StringMessage.

Opções Dinâmicas do MessageType

MessageType = Mensagem de ficheiro de dados

DataFileMessage
Digite o caminho do ficheiro de dados, ou clique nas reticências (...) e depois localize o ficheiro.

MessageType = Mensagem variável

VariableMessage
Digite os nomes das variáveis ou, se preferir, clique na reticência (...) e depois selecione as variáveis. As variáveis são separadas por vírgulas.

Tópicos Relacionados: Variáveis selecionadas

MessageType = String mensagem

StringMessage
Escreva a mensagem de texto, ou clique na reticência (...) e depois escreva a mensagem no diálogo Enter String Message.

Editor de Tarefas da Fila de Mensagens (Página de Recepção)

Use a página Receber da caixa de diálogo do Editor de Tarefas da Fila de Mensagens para configurar uma tarefa da Fila de Mensagens para receber mensagens Microsoft Message Queuing (MSMQ).

Opções

RemoveFromMessageQueue
Indique se deve remover a mensagem da fila depois de recebida. Por defeito, este valor está definido como Falso.

ErrorIfMessageTimeOut
Indique se a tarefa falha quando a mensagem expira, mostrando uma mensagem de erro. O padrão é False.

Timeout Após
Se optar por mostrar uma mensagem de erro na falha da tarefa, especifique o número de segundos a esperar antes de mostrar a mensagem de time-out.

TipoDeMensagem
Selecione o tipo de mensagem. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Mensagem do ficheiro de dados A mensagem é armazenada num ficheiro. Ao selecionar o valor, apresenta-se a opção dinâmica, DataFileMessage.
Mensagem variável A mensagem é armazenada numa variável. Ao selecionar o valor, apresenta-se a opção dinâmica, VariableMessage.
Mensagem de texto A mensagem é armazenada na tarefa Fila de Mensagens. Ao selecionar o valor, apresenta-se a opção dinâmica, StringMessage.
Mensagem de cadeia para variável A mensagem

Ao selecionar o valor, apresenta-se a opção dinâmica, StringMessage.

Opções Dinâmicas do MessageType

MessageType = Mensagem de ficheiro de dados

SaveFileAs
Escreva o caminho do ficheiro a usar, ou clique no ícone (...) e depois localize o ficheiro.

Substituir
Indique se deve sobrescrever os dados num ficheiro existente ao guardar o conteúdo de uma mensagem de ficheiro de dados. O padrão é False.

Filtro
Especifique se deve aplicar um filtro à mensagem. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Sem filtro A tarefa não filtra mensagens. Ao selecionar o valor, apresenta a opção dinâmica, IdentifierReadOnly.
De pacote A mensagem recebe apenas mensagens do pacote especificado. Ao selecionar o valor, apresenta-se a opção dinâmica, Identificador.

Opções Dinâmicas de Filtro

Filter = Sem filtro

IdentifierReadOnly
Esta opção é só de leitura. Pode estar em branco ou conter o GUID de um pacote quando a propriedade Filtro tiver sido definida previamente.

Filtro = Do pacote

Identificador
Se optar por aplicar um filtro, escreva o identificador único do pacote a partir do qual as mensagens podem ser recebidas, ou clique no botão de reticência (...) e depois especifique o pacote.

Tópicos Relacionados:Selecione um Pacote

MessageType = Mensagem variável

Filtro
Especifique se deve aplicar um filtro às mensagens. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Sem filtro A tarefa não filtra mensagens. Ao selecionar o valor, apresenta a opção dinâmica, IdentifierReadOnly.
De pacote A mensagem recebe apenas mensagens do pacote especificado. Ao selecionar o valor, apresenta-se a opção dinâmica, Identificador.

Variable
Escreve o nome da variável, ou clica <em Nova variável...> e depois configura uma nova variável.

Tópicos Relacionados:Adicionar variável

Opções Dinâmicas de Filtro

Filter = Sem filtro

IdentifierReadOnly
Esta opção está em branco.

Filter = Do pacote

Identificador
Se optar por aplicar um filtro, escreva o identificador único do pacote a partir do qual as mensagens podem ser recebidas, ou clique no botão de reticência (...) e depois especifique o pacote.

Tópicos Relacionados:Selecione um Pacote

MessageType = String mensagem

Comparar
Especifique se deve aplicar um filtro às mensagens. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Nenhum As mensagens não são comparadas.
Correspondência exata As mensagens devem corresponder exatamente à string na opção CompareString .
Ignorar o caso A mensagem deve corresponder à string na opção CompareString, mas a comparação não diferencia entre maiúsculas e minúsculas.
Contendo A mensagem deve conter a cadeia na opção CompareString .

CompareString
A menos que a opção Comparar esteja definida como Nenhuma, forneça a cadeia à qual a mensagem é comparada.

MessageType = String message para variável

Comparar
Especifique se deve aplicar um filtro às mensagens. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Nenhum As mensagens não são comparadas.
Correspondência exata A mensagem deve corresponder exatamente à cadeia na opção CompareString .
Ignorar o caso A mensagem deve coincidir com a string na opção CompareString , mas a comparação não distingue maiúsculas e minúsculas.
Contendo A mensagem deve conter a cadeia na opção CompareString .

CompareString
A menos que a opção Comparar esteja definida como Nenhuma, forneça a cadeia à qual a mensagem é comparada.

Variable
Escreve o nome da variável para conter a mensagem recebida, ou clica <em Nova variável...> e depois configura uma nova variável.

Tópicos Relacionados:Adicionar variável

Variáveis selecionadas

Use a caixa de diálogo Selecionar Variáveis para especificar as variáveis a usar numa operação de envio de mensagens na tarefa Fila de Mensagens. A lista de Variáveis Disponíveis inclui variáveis definidas pelo sistema e pelo utilizador que estão no âmbito da tarefa da Fila de Mensagens ou do seu contentor pai. A tarefa utiliza as variáveis da lista de Variáveis Selecionadas .

Opções

Variáveis Disponíveis
Selecione uma ou mais variáveis.

Variáveis selecionadas
Selecione uma ou mais variáveis.

Flechas Direitas
Mova variáveis selecionadas para a lista de Variáveis Selecionadas .

Flechas Esquerdas
Mova as variáveis selecionadas de volta para a lista de Variáveis Disponíveis .

Nova Variável
Crie uma nova variável.

Tópicos Relacionados:Adicionar variável

Ver também

Tarefas dos Serviços de Integração
Controle de Fluxo