Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Transferências de arquivo de um para muitos usando o WebSphere MQ File Transfer Edition

Paul Cullen, Software Engineer, WebSphere MQ File Transfer Edition, IBM
Paul Cullen é engenheiro de software da equipe de desenvolvimento do WebSphere MQ File Transfer Edition no Laboratório de Desenvolvimento de Software da IBM em Hursley, no Reino Unido.

Resumo:  Este artigo mostra como configurar o WebSphere MQ File Transfer Edition para realizar transferências "de um para muitos", usando as funções de monitoramento de fila, de arquivo para mensagem e de mensagem para arquivo, que são todas novas na V7.0.3.

Data:  12/Mai/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  1059 visualizações
Comentários:  


Introdução

Este artigo descreve como fazer a configuração para realizar transferências de um para muitos, usando as funções de monitoramento de fila, de arquivo para mensagem e de mensagem para arquivo, que são todas novas na V7.0.3.

Um novo recurso no IBM® O WebSphere® MQ File Transfer Edition V7.0.3 (que, daqui em diante, será denominado de FTE) permite realizar uma transferência de origem única que envia um arquivo para diversos agentes de destino. Antes da V7.0.3, era possível fazer uma distribuição de arquivo de um para muito desenvolvendo um script Ant com todas as transferências individuais e depois executar o script como parte do comando de transferência. Este artigo mostra como os novos recursos na V7.0.3 tornam muito mais fácil enviar arquivos para diversos destinos executando uma única transferência de arquivo.

O artigo mostra como configurar a funcionalidade de arquivo para mensagem para enviar um único arquivo para um tópico de publicação/assinatura do WebSphere MQ usando uma fila alias do WebSphere MQ. Você irá configurar assinantes que assinarão o tópico, e as mensagens publicadas no tópico serão gravadas nas filas locais de assinatura. Depois você usará o monitoramento de fila do FTE para monitorar as filas preenchidas pelas assinaturas. Se houver novas mensagens presentes nas filas quando cada intervalo de monitoramento passar, uma transferência de mensagem para arquivo será acionada, entregando o arquivo original aos agentes remotos associados. Você também usará metadados, para que a transferência capture o ID de transferência originado, o nome do arquivo e o agente da origem, para que a transferência única de arquivo para mensagem original possa ser vinculada a todas as transferências resultantes de mensagem para arquivo, o que é bastante útil se estiver fazendo o log das transferências no criador de logs de um banco de dados.

Administradores de sistema experientes do WebSphere MQ podem se sentir mais à vontade usando um ambiente como esse para distribuir arquivos, já que ele desenvolve componentes do WebSphere MQ como filas, tópicos e publicação/assinatura, o que pode ser mais familiar do que codificar scripts Ant complexos.

Visão geral do cenário e da solução

Um departamento administrativo em Nova York quer enviar muitos arquivos para escritórios em todo o mundo. Eles desejam poder colocar os arquivos em um diretório em seu servidor e depois, a intervalos durante o dia, ter esses arquivos transferidos automaticamente para diversos escritórios remotos.

Este artigo mostra como configurar um ambiente para obter isso, usando o monitoramento de diretório, transferências de arquivo para mensagem, publicação/assinatura do WebSphere MQ, monitoramento de fila e transferências de mensagem para arquivo. Primeiro você irá criar um tópico do WebSphere MQ e assinantes desse tópico. A transferência inicial de arquivo para mensagem irá preencher o tópico com o conteúdo da mensagem, e cada assinatura irá, então, preencher uma fila local quando novas mensagens aparecerem no tópico. Monitores de fila serão usados para monitorar as filas de assinatura e iniciar transferências de mensagem para arquivo para seus agentes remotos associados.

Para obter detalhes sobre a configuração de publicação/assinatura do WebSphere MQ, consulte o tópico Configurando o sistema de mensagens de publicação/assinatura no centro de informações do WebSphere MQ V7.

O artigo demonstra a técnica usando um agente de origem e dois agentes de destino. É possível usar os conceitos descritos aqui para fazer transferências para um número maior de destinos – basta repetir as etapas para qualquer novo agente que desejar integrar na configuração.

Pré-requisitos

Antes de fazer a configuração da V7.0.3, é preciso definir o seguinte ambiente do FTE:

  1. Em um servidor, defina e instale os componentes a seguir. Um servidor do Microsoft® Windows® é usado como servidor admin "Nova York".
    1. Instale o WebSphere MQ V7.0.1 ou uma versão posterior, inclusive o WebSphere MQ Explorer.
    2. Defina um gerente de fila do WebSphere MQ chamado CENTRAL.ADMIN, que será usado como gerente de fila de coordenação, comando e agente.
    3. Defina um listener em uma porta não usada e inicie esse listener. Ele será usado pelos agentes remotos.
    4. Instale o WebSphere MQ FTE V7.0.3 Server Edition.
    5. Como parte da instalação do servidor, defina um agente chamado CENTRAL.AG1. Como ele é um agente local do gerente de fila, ele pode ser definido como um agente de conexão de ligações. Uma vez definido, o agente precisa ser ativado para transferências de arquivo para mensagem, editando o arquivo agent.properties e incluindo enableQueueInputOutput=true. Reinicie o agente depois de editar seu arquivo.
    6. Instale o plug-in do WebSphere MQ FTE V7.0.3 WebSphere MQ Explorer a partir da instalação de Ferramentas Remotas e Documentação.
  2. Nos dois servidores que estão atuando como lojas remotas (Paris e Londres), instale o WebSphere MQ FTE Server ou Client Edition e defina os seguintes itens:
    1. Um agente de conexão cliente em cada servidor. Um servidor deve ter um agente chamado PARIS.AGENT, e o outro um agente chamado LONDON.AGENT. Eles devem ser definidos para o cliente se conectar ao gerente de fila CENTRAL.ADMIN usando a porta que o listener definido anteriormente está monitorando, e usar o gerente de fila CENTRAL.ADMIN como gerente de fila de agente, comando e coordenação.
    2. Uma vez definido, ative o agente para transferências de arquivo para mensagem e de mensagem para arquivo editando o arquivo de propriedades do a gente e incluindoenableQueueInputOutput=true. Reinicie o agente depois de editar esse arquivo.

Se você for um iniciante no FTE e precisar de informações sobre como configurá-lo, consulte o artigo WebSphere MQ File Transfer Edition walkthrough. Quando a configuração básica estiver concluída, você estará pronto para começar a definir os novos componentes para transferências de um único arquivo para diversos destinos.

Definindo um tópico

Crie o tópico que pretende preencher com mensagens usando o comando a seguir a partir de uma sessão runmqsc para o gerente de fila CENTRAL.ADMIN:


Listagem 1. O comando definir tópico

C:\>runmqsc CENTRAL.ADMIN 
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. 
Starting MQSC for queue manager CENTRAL.ADMIN. 
DEFINE TOPIC(DAILY.PRICING.INFO) TOPICSTR(DAILY.PRICING.INFO)  

No WebSphere MQ V7, é possível definir uma fila alias que aponta para um tópico. Use a nova funcionalidade arquivo para mensagem para enviar uma mensagem única não agrupada para essa fila alias e preencher o tópico com o conteúdo dessa mensagem. Depois é possível usar publicação/assinatura do WebSphere MQ para distribuir essa mensagem para qualquer um que assine o tópico. Devido a uma restrição do WebSphere MQ, não é possível enviar um grupo de mensagem para o tópico, o que significa que não é possível separar arquivos de origem usando as opções –qs, -dqdt ou –dqdb.

Criando a fila alias

Crie uma fila alias para apontar para esse tópico, usando o comando a seguir, a partir de uma sessão runmqsc para o gerente de fila CENTRAL.ADMIN:


Listagem 2. O comando definir qalias

C:\>runmqsc CENTRAL.ADMIN 
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. 
Starting MQSC for queue manager CENTRAL.ADMIN. 
DEFINE QALIAS(PRICING.QUEUE) TARGTYPE(TOPIC) TARGET(DAILY.PRICING.INFO) +
DEFPSIST(YES) 

Definindo as assinaturas

Em seguida, crie as assinaturas locais para o tópico. Este exemplo configura duas assinaturas. É possível usar esse procedimento quantas vezes forem necessárias para configurar assinaturas para qualquer número de filas. Para a loja de Londres:

1. Crie uma fila local chamada LONDON.PRICING.INFO.


Listagem 3. Definindo a fila local
    
C:\>runmqsc CENTRAL.ADMIN 5724-H72 (C) 
Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. Starting MQSC for queue 
manager CENTRAL.ADMIN. 
DEFINE QLOCAL(LONDON.PRICING.INFO) 

2. A partir de uma sessão runmqsc par ao gerente de fila CENTRAL.ADMIN, defina uma assinatura:


Listagem 4. O comando definir assinatura

C:\>runmqsc CENTRAL.ADMIN 5724-H72 (C) 
Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED. Starting MQSC for queue 
manager CENTRAL.ADMIN. 
DEFINE SUB(LONDON.PRICING.SUB) TOPICSTR('DAILY.PRICING.INFO/#') +
    TOPICOBJ(DAILY.PRICING.INFO) DEST(LONDON.PRICING.INFO) +
    DESTCLAS(PROVIDED) DESTQMGR(CENTRAL.ADMIN) 

Repita as etapas acima para a assinatura de Paris, substituindo LONDON.PRICING.INFO por PARIS.PRICING.INFO.

Verificando a configuração

Para confirmar que a configuração está correta, use o programa de amostra amqsput do MQ para enviar uma mensagem para a fila alias. Isso deve resultar em uma mensagem idêntica sendo entregue para as filas LONDON.PRICING.INFO e PARIS.PRICING.INFO. Execute o programa amqsput usando QUEUE e QUEUE MANAGER como parâmetro, digite algum texto e pressione Enter para enviá-lo. Pressione Enter novamente para finalizar a entrada no programa de amostra.


Listagem 5. Comando para enviar uma mensagem de teste para a fila alias

C:\WMQFTE\bin>amqsput PRICING.QUEUE CENTRAL.ADMIN
Sample AMQSPUT0 start
target queue is PRICING.QUEUE
This is my test publication
Sample AMQSPUT0 end

Use o programa de amostra amqsget do WebSphere MQ para esvaziar as filas e confirmar que as mensagens chegaram:


Listagem 6. Comandos de exemplo para esvaziar as duas filas de assinatura

C:\>amqsget LONDON.PRICING.INFO CENTRAL.ADMIN
Sample AMQSGET0 start
<this is my test publication> 
C:\>amqsget PARIS.PRICING.INFO CENTRAL.ADMIN
Sample AMQSGET0 start message 
<this is my test publication> 

Criando os monitores de fila

A próxima etapa é configurar dois monitores para monitorar as filas preenchidas pelas assinaturas e enviar o conteúdo das filas para arquivos nos agentes remotos do FTE. É possível usar o recurso mensagem para arquivo para fazer isso e usar o monitoramento de fila do FTE para monitorar as filas de chegada de novas mensagens. O artigo explicará as maneiras de configurar isso e como é possível também vincular a publicação inicial de arquivo para mensagem do arquivo para o tópico para a segunda transferência de mensagem para arquivo, que é útil para auditar e rastrear objetivos, quando se quer identificar a origem de um arquivo.

Criando a tarefa XML de mensagem para arquivo

Use o utilitário de linha de comando fteCreateTransfer para criar dois arquivos de tarefa XML, um para cada agente. Não é possível usar o plug-in do WebSphere MQ Explorer para criar o monitor, porque a geração de tarefa usando o plug-in do MQ Explorer não revela a opção para selecionar mensagens a partir de uma fila por groupId. Mesmo que não esteja usando mensagens agrupadas no lado da publicação, é preciso ativar o seletor groupId no lado do recebimento, para que várias mensagens na fila sejam recebidas e gravadas em diversos arquivos. Crie a tarefa XML com as seguintes opções:

ParâmetroValorExplicação
-saCENTRAL.AG1Agente de origem
-daLONDON.AGENTAgente de destino
-df/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}O valor –df pode usar substituição de variável para criar um nome de arquivo exclusivo. É possível ler valores a partir de metadados nas propriedades do WebSphere MQ da mensagem, lê-los e usá-los para criar um nome de arquivo no destino, baseando-o no nome do arquivo que foi transferido na transferência inicial de arquivo para mensagem.

Neste exemplo, as mensagens que estão sendo enviadas para o tópico possuem metadados nas propriedades do WebSphere MQ da mensagem, inclusive um cabeçalho chamado WMQFTEFileName, que é o nome do arquivo de origem originário. É possível usá-lo para determinar o nome do arquivo de destino no qual os dados da mensagem serão gravados. A o definir esse arquivo como

/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}

a transferência gravará os dados na mensagem que foi acionada pela transferência em um arquivo no diretório pricingINfo e em um arquivo baseado apenas no nome do arquivo e não no caminho completo do arquivo de origem originário. Portanto, se o arquivo de origem era /menus/pricing/Christmas.txt, o destino seria /pricingInfo/Christmas.txt. O separador de barra de encaminhamento funciona no Windows porque todos os separadores do diretório são tratados como barras de encaminhamento no FTE.
-ttextoO modo pelo qual as mensagens são transferidas da fila para um arquivo. Pode ser definido como “binário” ou “texto”.
-gtc:\transferXML\london.xmlLocal para gravar o arquivo XML de transferência
-deerroSe a subscrição for definida e um arquivo de destino do mesmo nome já existir, então o arquivo de destino será sobrescrito. Se erro for definido e o arquivo de destino já existir, então a transferência irá falhar, exibindo a mensagem
"BFGIO0006E: File “<FULL FILE PATH>" já existe".
-sqgiA opção -sqgi diz ao monitor para processar somente grupos completos de mensagens, um grupo por vez. Mesmo que você não vá colocar grupos de mensagens na fila de destino, mensagens únicas não agrupadas serão tratadas como um grupo único de mensagens quando essa opção é usada, e, portanto, processadas individualmente. Se essa opção for omitida, a transferência estabelece como padrão ler todas as mensagens a partir da fila e gravá-las no arquivo de destino, o que poderia incluir mensagens contidas em outros grupos e mensagens de grupos incompletos, assim como as mensagens no grupo que acionaram a transferência!
-mdOriginatingSourceAgent=${WMQFTESourceAgent},
OriginatingTransferId=${WMQFTETransferId},
OriginatingFileName=${WMQFTEFileName},
OriginatingTransferMode=${WMQFTETransferMode}
Metadados extras podem ser passados para o comando de transferência. Eles serão conectados permanentemente no XML de transferência e é possível usá-los para vincular a transferência inicial de arquivo para mensagem e a transferência resultante de mensagem para arquivo. Se usar os valores abaixo, é possível conectar o agente originário, o arquivo de origem originário, o ID de transferência originário e os detalhes originários do modo de transferência, o que pode ser útil se quiser identificar a origem de um arquivo.
-sqLONDON.PRICING.INFOA fila para ler mensagens a partir de

Listagem 7: Comando de exemplo fteCreateTransfer com opções
 
fteCreateTransfer -sa CENTRAL.AG1 
    –da LONDON.AGENT 
    -df “/pricingInfo/${WMQFTEFileName{token=-1}{separator=/}}" 
    -t text 
    –gt c:\transferXML\london.xml 
    –de error 
    –sqgi 
    –md OriginatingSourceAgent=${WMQFTESourceAgent}, 
     OriginatingTransferId=${WMQFTETransferId}, 
     OriginatingFileName=${WMQFTEFileName}, 
     OriginatingTransferMode=${WMQFTETransferMode} 
    –sq LONDON.PRICING.INFO 

Repita o procedimento para a transferência de Paris

Repita a criação de um arquivo XML de transferência para as transferências para o agente de Paris, substituindo LONDON.PRICING.INFO por PARIS.PRICING.INFO, e o nome do agente de destino por PARIS.AGENT.

Atualizando os arquivos XML de transferência

Antes que os arquivos XML possam ser incluídos em um monitor, é preciso editá-los para incluir uma opção que não está disponível a partir da linha de comando. Para que as mensagens corretas sejam processadas depois que o monitor acionou a transferência, é preciso editar a transferência XML que foi criada nas etapas acima. O monitor deve passar o groupId da mensagem que o fez ser acionado para a definição da transferência que está sendo executada por esse monitor.

Incluir groupId=”${groupId}” no elemento da fila garante que a mensagem que acionou o monitor será a mensagem lida pela transferência resultante de mensagem para arquivo. Se ele não for incluído no modelo XML de transferência, então, em vez de a transferência ler a mensagem que acionou o monitor, a transferência resultante de mensagem para arquivo lerá a partir do início da fila e obterá a primeira mensagem encontrada na fila, que pode não ser a mensagem que você pretendia usar!

Edite o arquivo XML que acabou de criar e altere a seguinte linha:


Listagem 8: Alterações no XML

From:     <queue useGroups="true">LONDON.PRICING.INFO</queue>  
To:          <queue useGroups="true" groupId="${groupId}">LONDON.PRICING.INFO</queue>

Repita o procedimento para o arquivo XML de transferência dos monitores de PARIS.

Definindo os monitores

Defina os monitores usando o script de linha de comando fteCreateMonitor. O plug-in do WebSphere MQ Explorer não permite mencionar um arquivo XML criado previamente. É exigido um monitor por fila e, portanto, é preciso criar dois monitores, um par monitorar a fila LONDON.PRICING.INFO e outro para monitorar a fila PARIS.PRICING.INFO. Usando o utilitário de linha de comando fteCreateMonitor, configure o monitor usando as seguintes opções:

ParâmetroValorExplicação
-maCENTRAL.AG1Agente a ser definido para o monitor
-mqLONDON.PRICING.INFOFila a ser monitorada
-mn"London Monitor"Nome do monitor
-mtc:\transferXML\london.xmlCaminho completo para o arquivo XML de transferência criado nas etapas anteriores
-trcompleteGroupsEmbora os grupos de mensagens não sejam enviados para a fila alias, é preciso definir o monitor a ser acionado em grupos completos. A condição de acionamento nessa instância é completeGroups e só permitirá que o monitor acione o arquivo XML de transferência se um grupo completo de mensagens existir na fila monitorada. As mensagens únicas sem a sinalização de Mensagem em grupo do WebSphere MQ são tratadas como um grupo exclusivo de mensagens e processadas individualmente.
-dvWMQFTEFileName="UNKNOWN_FILE_NAME",
WMQFTESourceAgent="UNKNOWN_SOURCE_AGENT",
WMQFTETransferId="UNKNOWN_ORIGINAL_TRANSFER_ID",
WMQFTETransferMode="UNKNOWN"
Esse exemplo aguarda metadados nas propriedades do WebSphere MQ da primeira mensagem no grupo que aciona a transferência. Se aparecer uma mensagem na fila sem qualquer metadado, é possível usar a opção –dv para passar os valores padrão para a solicitação de transferência, como no exemplo ao qual recorremos para obter quatro valores que estão sendo definidos. Esse exemplo aguarda os metadados a seguir, que são todos incluídos como padrão quando uma transferência de mensagem para arquivo é iniciada com a opção –qmp true:

${WMQFTESourceAgent}
${WMQFTEFileName}
${WMQFTETransferId}
${WMQFTETransferMode}

Portanto, é possível definir valores padrão para eles, se não aparecerem, o que significa que um arquivo padrão chamado UNKNOWN_FILE_NAME é criado se uma mensagem com metadados nas propriedades do WebSphere MQ da primeira mensagem aparecer.
-puminutosUnidades para pesquisar o monitor em
-pi5Intervalo, relacionado à opção -pu, para pesquisar o monitor em

Listagem 9: Comando de exemplo fteCreateMonitor com opções

fteCreateMonitor -ma CENTRAL.AG1 
    -mq LONDON.PRICING.INFO 
    -mn "London monitor" 
    -mt C:\transferXML\london.xml 
    -tr completeGroups –dv WMQFTEFileName="UNKNOWN_FILE_NAME", 
    WMQFTESourceAgent="UNKNOWN_SOURCE_AGENT",
    WMQFTETransferId="UNKNOWN_ORIGINAL_TRANSFER_ID",
    WMQFTETransferMode="UNKNOWN" 
    -pi 5 
    -pu minutes                            

Repita essa configuração para o monitor de fila de Paris. A criação do monitor deve ser repetida para o monitor de Paris, usando a fila PARIS.PRICING.INFO e definindo um novo nome para o monitor.

Configurando um monitor de diretório para acionar a transferência de arquivo para mensagem

Criando o XML de transferência

Para concluir a configuração, crie um monitor de diretório que irá transferir qualquer arquivo colocado em um diretório para a fila alias. Use os utilitários de linha de comando para criar o XML de transferência e o monitor do diretório que irá acionar a transferência. Primeiro, crie um arquivo XML de transferência usando o comando fteCreateTransfer, com as seguintes opções:

ParâmetroValorExplicação
-saCENTRAL.AG1Nome do agente de origem
-daCENTRAL.AG1Nome do agente de destino
-dqPRICING.QUEUENome da fila de destino
-ttextoModo de transferência
-gtc:\transferXML\outboundfiles.xmlLocal para gravar o arquivo XML de transferência
-qmpverdadeiroAtiva as propriedades de mensagem do WebSphere MQ na mensagem
${FilePath}O arquivo a ser transferido pode ser definido para essa variável, o que significa que o arquivo que aciona o monitor será passado para o XML e será transferido.

Listagem 10: Comando de exemplo fteCreateTransfer com opções

fteCreateTransfer -sa CENTRAL.AG1
    -da CENTRAL.AG1 
    -dq PRICING.QUEUE 
    -t text 
    -gt c:\transferXML\outboundfiles.xml 
    -qmp true 
    ${FilePath}

Criando o monitor de diretório:

Depois de criar o XML de transferência, defina a tarefa do monitor usando as seguintes opções:

ParâmetroValorInformações extras
-maCENTRAL.AG1Agente a ser definido para o monitor
-mdc:\outboundFilesDiretório a ser monitorado
-mnMonitor de arquivos de saídaNome do monitor
-mtc:\transferXML\outboundfiles.xmlCaminho completo para o arquivo xml de transferência criado nas etapas anteriores
-trmatch,*A condição de acionamento deve ser definida de modo a corresponder a qualquer arquivo colocado no diretório

Listagem 11: Comando de exemplo fteCreateMonitor com opções

fteCreateMonitor 
    -ma CENTRAL.AG1 
    -md c:\outboundFiles 
    -mn "Outbound files monitor" 
    -mt C:\transferXML\outboundfiles.xml 
    -tr match,* 

Verificando a configuração

  1. Coloque um arquivo no diretório local que está sendo monitorado pelo monitor de diretório. Ele deve ser acionado depois de um minuto e o arquivo será enviado para PRICING.QUEUE, que é uma fila alias que irá enviar o conteúdo para o TOPIC do WebSphere MQ para o qual está apontando. Cada uma das filas de assinatura irá obter uma cópia dessa mensagem.
  2. Depois que o intervalo de pesquisa definido para os monitores de fila tiver transcorrido, as filas de assinatura devem ser esvaziadas e cada mensagem deve aparecer no destino como um novo arquivo.

Figura 1. Transferências concluídas no WebSphere MQ Explorer
Completed transfers in WebSphere MQ Explorer

Se você examinar as propriedades da transferência e olhar os metadados associados à transferência, será possível associá-los à transferência original de arquivo para mensagem:


Figura 2. Metadados associados à transferência final de mensagem para arquivo
 Metadata associated with the final message-to-file transfer

Perguntas frequentes

1. Por que usar metadados nas propriedades do WebSphere MQ da primeira mensagem nos arquivos que deseja distribuir, ou o que acontece se uma mensagem acabar na fila sem metadados nas propriedades do WebSphere MQ da primeira mensagem?

Neste exemplo, se os metadados não estiverem presentes nas propriedades do WebSphere MQ da primeira mensagem, então as variáveis de substituição de valor padrão são usadas em seu lugar (elas são definidas no monitor usando a opção –dv). Se nenhum metadado estiver presente nas propriedades do WebSphere MQ da primeira mensagem que é criada pela transferência de arquivo para mensagem, quando essa mensagem acionar o monitor, nenhum detalhe pode ser passado para a transferência resultante de mensagem para arquivo, e, em vez disso, os valores de substituição padrão são usados. Neste exemplo, isso resultaria em um arquivo UNKNOWN_FILE_NAME produzido no diretório de destino. No XML da transferência de mensagem para arquivo, isso também significa que uma transferência originária desconhecida, um agente originário desconhecido e um arquivo de origem originário desconhecido serão conectados e não será possível associar essa transferência à transferência originária de arquivo para mensagem. Usar metadados nos permite associar facilmente o arquivo de origem originário e o ID de transferência ao arquivo de destino.

2. O que acontece se o arquivo de destino já existir ― ele é sobrescrito?

A resposta depende do valor usado para a opção –de quando o XML de transferência é gerado. Como explicado acima, quando o comando fteCreateTransfer é executado para criar o arquivo de definição de transferência que será levado pela tarefa do monitor, é possível usar a opção -de para definir quais ações devem acontecer se um arquivo com o mesmo nome já existir. Se a subscrição for definida e um arquivo de destino do mesmo nome já existir, o arquivo de destino será sobrescrito com os novos dados na mensagem que acionou a transferência. Se erro for especificado, a transferência irá falhar e será exibida a mensagem BFGIO0006E: File <FULL FILE PATH> já existe. Se a transferência falhar, a variável monitorGroupRetryLimit determina quantas tentativas de transferência serão realizadas. A variável monitorGroupRetryLimit precisa ser definida no arquivo agent.properties para o agente iniciar a transferência de mensagem para arquivo. Por padrão, se o arquivo agent.properties não contiver esse valor, o limite de tentativas é 10. Quando o limite de tentativas for atingido, a transferência só será acionada novamente se o agente que inicializa a transferência for reiniciado. P Para alterar o valor de monitorGroupRetryLimit, atualize o arquivo agent.properties file e reinicie o agente.

3. Os arquivos de texto de transferências de exemplo ― posso usar esse procedimento para transferir arquivos binários?

Se deseja transferir arquivos binários e de texto, há várias abordagens a serem adotadas:

  • É possível configurar um ambiente idêntico ao ambiente para transferências de texto ― uma fila alias apontando para um tópico no qual arquivos binários são publicados. Seria necessário um conjunto completo de filas e assinaturas do tópico no qual os arquivos binários estão sendo publicados. Seria necessário, então, um conjunto de monitores de fila para essas filas e configurar as transferências, para que elas realizassem uma transferência de mensagem para arquivo no modo binário.
  • Ou é possível usar as informações nos metadados nas propriedades do WebSphere MQ da primeira mensagem para determinar o modo de transferência do arquivo. Devido a um defeito no FTE V7.0.3, o produto não executa a configuração nessa etapa, mas uma correção temporária pode ser fornecida para permitir o atributo de modo no elemento do item.

    Quando arquivos são enviados para filas de mensagem usando o recurso arquivo para mensagem e quando os cabeçalhos de mensagem são ativados, um dos cabeçalhos de mensagem padrão é WMQFTETransferMode. Depois que o XML tiver sido criado, na etapa em que a opção groupId é incluída, o mode="text" pode ser alterado para "${WMQFTETransferMode}".

    Por exemplo, <item checksumMethod="MD5" mode="${WMQFTETransferMode}"> faz com que a transferência resultante de mensagem para arquivo insira o valor a partir dos metadados na mensagem que acionou a transferência no XML para a realização da transferência. Essa abordagem permite enviar arquivos binários e de texto para a fila alias, e, enquanto eles possuírem metadados nas propriedades do WebSphere MQ da primeira mensagem, eles podem ser processados corretamente pela transferência de mensagem para arquivo.

4. Ao tentar uma transferência de arquivo para mensagem para a fila alias a ser publicado no tópico, recebo a mensagem de erro "BFGIO0197E: An attempt to write to a queue was rejected by the destination agent. The agent must have enableQueueInputOutput=true set in the agent.properties file to support transferring to a queue".

As funções arquivo para mensagem e mensagem para arquivo precisam ser ativadas porque elas estão desativadas como padrão. Para ativar essa funcionalidade, é preciso ter enableQueueInputOutput=true definido no arquivo agent.properties de seus agentes. Reinicie o agente para obter as alterações.

5. Ao tentar enviar arquivo para o tópico, a transferência de arquivo para mensagem falha, com uma mensagem de erro "BFGIO0178E: A queue write failed due to a WMQApiException with message text cc=2 rc=2417 op=put - MQPUT to PRICING.QUEUE".

O código "2417 MQRC_MSG_NOT_ALLOWED_IN_GROUP" retornado do MQ significa que a fila na qual você tentou colocar mensagens rejeitou a tentativa, porque você está tentando colocar um grupo de mensagens na fila. Quando publicadas em um tópico, as mensagens que fazem parte de um grupo serão rejeitadas. A causa mais comum desse erro é uma tentativa de transferência de arquivo para mensagem com as opções –qs, -dqdt ou –dqdb para dividir o arquivo de origem, o que não é permitido ao enviar mensagens para um tópico.

Restrições

  • Somente transferências de arquivo único para mensagem única, já que a publicação/assinatura do WebSphere MQ V7 não suporta mensagens agrupadas. Portanto, não é possível dividir os arquivos de origem usando as opções –qs, -dqdt, ou –dqdb.
  • Em uma rede padrão do WebSphere MQ, o tamanho máximo da mensagem é de 4 MB. Portanto, a menos que a configuração do MQ seja alterada, o tamanho máximo de arquivo que pode ser enviado é 4 MB.
  • A transferência de arquivo para mensagem que ocorre deve usar a opção "–qmp true" para incluir metadados nas propriedades do WebSphere MQ da mensagem.
  • A configuração só aceitará um modo de transferência, texto ou binário. Para usar substituição de variável para ativar o tipo de arquivo a ser transferido usando as mesmas filas, é preciso aplicar a correção temporária da IBM.

Recursos

  • Recursos do WebSphere MQ File Transfer Edition (FTE)
    • Centro de informações do WebSphere MQ FTE V7.0.3
      Um único portal da Web para toda a documentação do WebSphere MQ FTE V7, com informações conceituais, de tarefa e de referência sobre a instalação, a configuração e o uso do WebSphere MQ FTE V7.0.3.
    • Download da versão de teste do WebSphere MQ FTE
      Uma versão de teste de 90 dias, cheia de recursos e sem custo do WebSphere MQ e WebSphere MQ FTE.
    • Fórum do WebSphere MQ FTE
      Obtenha resposta para suas perguntas técnica sobre o WebSphere MQ FTE e compartilhe seu conhecimento sobre o WebSphere MQ FTE com outros usuários.
    • Passo a passo do WebSphere MQ FTE
      Um artigo de introdução e passo a passo do developerWorks sobre o WebSphere MQ FTE.
    • Introdução ao WebSphere MQ FTE
      Este artigo apresenta o WebSphere MQ FTE àqueles que já estão familiarizados com o WebSphere MQ e mostra como desenvolver uma arquitetura simples do FTE em AIX e Windows, inclusive o uso de gerente de fila de agente, comando e coordenação.
    • Segurança do WebSphere MQ FTE
      A segurança do WebSphere MQ FTE requer uma compreensão de como os componentes do FTE interagem com o sistema de arquivos e com o WebSphere MQ. Este artigo descreve a arquitetura de componentes e um caso de uso que mostra o design de rede e as tarefas de configuração requeridas para fortalecer uma rede do WebSphere MQ FTE.
    • IBM Redbook: Introdução ao WebSphere MQ FTE
      Este Redbook oferece uma visão geral técnica do produto, juntamente com um guia de instalação, configuração e administração para plataformas distribuídas e z/OS. Ele também oferece cenários que mostram como usar o WebSphere MQ FTE para criar soluções de transferência de arquivos gerenciadas.
    • IBM Redguide: Transferência gerenciada de arquivos para SOA usando o WebSphere MQ FTE
      O WebSphere MQ FTE oferece um recurso de transferência gerenciada de arquivos de nível corporativo robusto e fácil de usar. Ele usa a confiabilidade e a conectividade comprovadas do WebSphere MQ para transferir arquivos por uma ampla gama de plataformas e redes. Esta publicação do IBM Redguides oferece uma visão geral de negócio do WebSphere MQ FTE.

  • Recursos do WebSphere MQ
  • Recursos do WebSphere
  • Recursos do developerWorks
    • Downloads de teste de produtos de software IBM
      Downloads de teste sem custo de produtos do IBM® O DB2®, Lotus®, Rational®, Tivoli®e WebSphere® selecionados.
    • blogs do developerWorks
      Participe de uma conversa com os usuários e autores do developerWorks, e com editores e desenvolvedores da IBM.
    • Webcasts do developerWorks
      Sessões técnicas gratuitas por especialistas da IBM que podem acelerar sua curva de aprendizado e ajudá-lo a ser bem-sucedido em seus projetos de software mais difíceis. As sessões variam de Webcasts de uma hora a sessões ao vivo com duração de um dia ou metade de um dia em cidades de todo o mundo.
    • Podcasts do developerWorks
      Ouça entrevistas e discussões interessantes com inovadores de software.
    • developerWorks no Twitter
      Confira as nossas mensagens e URLs recentes no Twitter.
    • IBM Education Assistant
      Uma coleção de módulos educacionais multimídia que ajudam a entender melhor os produtos de software IBM e usá-los de forma mais efetiva para atender aos seus requisitos de negócios.

Sobre o autor

Paul Cullen é engenheiro de software da equipe de desenvolvimento do WebSphere MQ File Transfer Edition no Laboratório de Desenvolvimento de Software da IBM em Hursley, no Reino Unido.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=658372
ArticleTitle=Transferências de arquivo de um para muitos usando o WebSphere MQ File Transfer Edition
publish-date=05122011
author1-email=cullepl@uk.ibm.com
author1-email-cc=