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.
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:
Para filtrar por local do diretório, configure o campo Filtro do diretório para apontar para o diretório para o qual os agentes das filiais transferem as mensagens.
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:
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.
Agora a amostra pode processar arquivos de várias filiais com agentes local e remoto.
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.
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.
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
Bem vindo ao WebSphere MQ File Transfer
Edition.
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.
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>