Estendendo a Amostra Managed File Transfer

Antes de poder estender a Amostra Managed File Transfer você deve ter concluído uma das seguintes tarefas:

Após ter importado ou construído a amostra, você pode estendê-la:

Se você encontrar problemas ao executar a amostra, consulte Preparando o Ambiente para Nós do WebSphere MQ File Transfer Edition ou consulte Resolvendo Problemas ao Executar Amostras na documentação do WebSphere Message Broker.

Processando múltiplas filiais

A amostra manipula uma filial. Para estender a amostra para trabalhar com múltiplas filiais no fluxo de mensagens FTEInputBranch2HQMFlow, altere os filtros do nó FTEInput. A filtragem permite que o nó FTEInput escolha quais mensagens selecionar e processar. Por exemplo:

Você também deve simular um agente para cada filial adicional. No cenário de amostra, o cliente .mbtest é usado para simular o envio de uma mensagem de pedido de fornecimento de estoque a partir da filial. Para indicar de qual filial a mensagem foi enviada, o campo de cabeçalho de dados de origem do aplicativo é preenchida com o número de filiais. O cabeçalho é, em seguida, usado para configurar o nome do arquivo configurando a correspondência curinga no ambiente local.

Para ativar a amostra para operar com múltiplas filiais no fluxo de mensagens FTEOutputHQ2BranchMFlow, altere as seguintes propriedades do nó FTEOutput:

  1. No ambiente local, configure o Diretório de destino ou o Nome do agente, ou ambos, para rotear as mensagens para a filial correta, consulteMetadados FTE.

  2. Insira um nó Resequence no FTEOutputHQ2BranchMFlow, consulte Usando instâncias do fluxo de mensagens adicional.

Agora a amostra pode processar arquivos de várias filiais com agentes local e remoto.

Usando Instâncias Adicionais do Fluxo de Mensagens

Se o cenário de varejo da amostra for estendido para operar com várias filiais, geralmente as instâncias do fluxo são configuradas para operar com instâncias adicionais para melhor rendimento.

Com instância adicionais, o aplicativo de estoque recebe e processa mensagens de filiais diferentes e combina a ordem dos dados recebidos. O fluxo de mensagens que usa o nó FTEOutput pode abrir e processar arquivos para muitas filiais em um dado momento e reiniciar a construção de arquivos simultaneamente.

Com o processamento de fluxo múltiplo, não é garantido que a ordem da saída dos dados pelo aplicativo de estoque esteja na ordem em que foram recebidas. É essencial que o registro Fim dos Dados seja recebido por último para uma determinada filial, de forma que o arquivo seja fechado somente quando concluído. A ordem dos dados do produto está em formato XML e pode ser gravado em qualquer ordem.

O seguinte diagrama mostra duas abordagens para este problema. No fluxo superior, um nó Resequence é colocado antes do nó FTEOutput. O nó Resequence controla a ordem na qual as mensagens de entrada de uma filial são propagadas pelo nó, com base no número de sequência que é inserido em cada registro. Para manter a integridade dos dados de uma filial, uma tag do grupo de mensagens (como o nome da filial) é inserida para garantir que o nó Resequence monte somente os produtos para sua filial de destino. Entretanto, o nó Resequence requer que as mensagens pertencentes à mesma filial (grupo de sequência) sejam manipuladas somente por um único encadeamento. Este cenário é contrário ao requisito original para a operação de múltiplas instâncias. O sequenciamento correto é atingido em detrimento da operação de fluxo de múltiplas instâncias.

Se o fluxo de mensagens for reprojetado no fluxo inferior, este conflito será resolvido. Aqui, o nó Resequence é colocado após o nó FTEOutput.

Re-sequenceFTEOuput

Agora o fluxo pode operar em um modo multiencadeado, gravando os dados do produto à medida que eles chegam ao terminal de entrada. A saída do nó FTEOutput é capturada por um nó Resequence, que sempre aguarda o último registro ser recebido antes de propagar registros. O registro Fim dos Dados é enviado diretamente para o nó Resequence, no ponto em que o nó propaga o registro somente se o nó tiver recebido o conjunto integral de registros para uma filial. Um nó Filter descarta os registros de dados e envia somente o registro Fim dos Dados para o nó FTEOutput. O nó FTEOutput agora pode fechar o arquivo e chamar o agente para transferir o arquivo.

Este projeto permite que o nó FTEOutput opere em fluxos com instâncias adicionais e mantenha a integridade dos dados destinados a um determinado arquivo.

Integração com WMQFTE

A amostra básica usa o agente broker FTE temporário. Para obter detalhes sobre como usar os agentes remotos WMQFTE com o agente broker e como usar o Message Broker Explorer Tooling para criar uma transferência e verificar o progresso da transferência, consulte Este link é aberto em uma nova janela Bem vindo ao WebSphere MQ File Transfer Edition.

WMQFTE

Metadados FTE

A amostra inclui fragmentos e descrições de códigos comentados no código Branch2HQDriver ESQL. Por exemplo:

-- Ao utilizar o nó FTEInput, ele armazena informações que você pode acessar nas árvores de mensagens LocalEnvironment.FTE e
-- LocalEnvironment.FTE.Transfer. A árvore de mensagens LocalEnvironment.FTE armazena informações relacionadas -- com o registro atual e é preenchida pelo broker. A árvore de mensagens LocalEnvironment.FTE.Transfer contém-- informações recebidas do WebSphere® MQ File Transfer Edition relativas ao arquivo
		
--LocalEnvironment.FTE.TimeStamp (CHARACTER)
--LocalEnvironment.FTE.Offset (INTEGER)
--LocalEnvironment.FTE.Record (INTEGER)
--LocalEnvironment.FTE.Delimiter (CHARACTER)
--LocalEnvironment.FTE.Transfer.Directory (CHARACTER)

Para obter informações sobre os metadados FTE, consulte Transferências de arquivos gerenciadas usando o WebSphere MQ File Transfer Edition na documentação do WebSphere Message Broker.

Pedido/resposta

A amostra básica demonstra o modelo pedido/resposta. A amostra usa o número da filial da mensagem XML e MQMD para garantir a correlação entre pedido/resposta. Essa seção está focada no uso do identificador de transferência e do nome da tarefa para a correlação entre pedido/resposta.

Quando um agente FTE transfere uma mensagem, o agente preenche o ambiente local com informações sobre a transferência. Essas informações podem ser sobrescritas, consulte Metadados FTE ou as informações podem ser usadas como estão para correlacionar as mensagens e assegurar que todas as mensagens sejam enviadas de volta para o agente FTE correto. Você pode ver essas informações nas propriedades de transferência de visualização do WebSphere Message Broker Explorer Tooling, por exemplo:

# INICIANDO

<?xml version="1.0" encoding="UTF-8"?>
<transaction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="414d51204d4237514d47522020202020bb73ea4b20046302"
agentRole="sourceAgent" version="3.00" xsi:noNamespaceSchemaLocation="TransferLog.xsd">
  <action time="2010-05-12T11:34:12.421Z">started</action>
  <sourceAgent QMgr="MB8QMGR" agent="MB8BROKER.FTEBRANCH123">
    <systemInfo architecture="x86" name="Windows XP" version="5.1 build 2600 Service Pack 3"/>
  </sourceAgent>
  <destinationAgent QMgr="MB8QMGR" agent="MB8BROKER.FTEHQ"/>
  <originator>
    <hostName>IBM-27BDFF76CFB</hostName>
    <userID>SYSTEM</userID>
    <mqmdUserID>SYSTEM</mqmdUserID>
  </originator>
  <transferSet bytesSent="0" startTime="2010-05-12T11:34:12.421Z" total="1">
    <metaDataSet>
      <metaData key="com.ibm.wmqfte.TransferId">414d51204d4237514d47522020202020bb73ea4b20046302</metaData>
      <metaData key="com.ibm.wmqfte.MqmdUser">SYSTEM</metaData>
      <metaData key="com.ibm.wmqfte.DestinationAgent">MB8BROKER.FTEHQ</metaData>
      <metaData key="com.ibm.wmqfte.OriginatingHost">IBM-27BDFF76CFB</metaData>
      <metaData key="com.ibm.wmqfte.OriginatingUser">SYSTEM</metaData>
      <metaData key="com.ibm.wmqfte.JobName">Branch123</metaData>
      <metaData key="com.ibm.wmqfte.SourceAgent">MB8BROKER.FTEBRANCH123</metaData>
    </metaDataSet>
  </transferSet>
  <job>
    <name>Branch123</name>
  </job>
</transaction>

Voltar para Home da Amostra