Use um nó FileInput para ler um arquivo
em um diretório em um servidor FTP ou SFTP remoto
e, em seguida, propagar mensagens que são baseadas no conteúdo desse
arquivo.
Antes de começar:Este exemplo
é uma extensão do exemplo descrito em
Usando um Arquivo Local como Entrada para Fluxo de Mensagens e
ele descreve como usar um nó
FileInput
em um fluxo de mensagens. As instruções assumem que você está usando um sistema operacional
Windows e que
você criou um fluxo de mensagens contendo um nó
FileInput. Também são necessários
os seguintes recursos:
- Um servidor FTP ou SFTP. Assegure
que um servidor FTP ou SFTP exista,
com as seguintes configurações:
- Servidor
- ftpserver.hursley.abc.com
- Port (Porta)
- 21 (para FTP)
ou 22 (para SFTP)
- Diretório de trabalho
- /ftpfileinput
- ID do Usuário
- myuserid
- Senha
- mypassword
Esses valores são somente para a finalidade deste exemplo. Se você usar outros valores, registre-os para que possa configurar os
valores apropriados durante a tarefa.
- Uma identidade de segurança. Use o comando mqsisetdbparms
para definir uma identidade de segurança chamada myidentity para
seus detalhes de usuário e senha.
Se
você desejar se conectar a um servidor FTP, a identidade de segurança deve ter
um prefixo
ftp::, para ativar os nós do arquivo para localizar
a definição de identidade. Por exemplo, utilize o seguinte comando para um broker chamado
MyBroker:
mqsisetdbparms MyBroker -n ftp::myidentity -u myuserid -p mypassword
Se você desejar se conectar a um servidor SFTP,
a identidade de segurança precisará ter um prefixo
sftp::,
conforme mostrado no exemplo a seguir:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -p mypassword
Também é possível configurar uma conexão com
um servidor SFTP para usar a autenticação de chave pública, especificando
um arquivo de identidade SSH e passphrase, em vez de uma senha. Por exemplo:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -i identity_file -r passphrase
Para obter
informações adicionais sobre como configurar conexões com um servidor SFTP,
consulte Transferindo Arquivos de Forma Segura Usando SFTP.
- Um arquivo de entrada. Para seguir esse cenário de exemplo, crie um arquivo de entrada chamado test_input1.xml com o seguinte conteúdo:
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
Cada linha termina com
um terminador de linha que é adequado para o sistema no qual o servidor FTP ou SFTP está localizado. Não coloque
este arquivo no diretório de entrada mas, em vez disso, coloque-o no diretório do servidor FTP ou SFTP /ftpfileinput.
- Um conjunto de mensagens. Este exemplo utiliza um conjunto de mensagens chamado xml1,
que utiliza o analisador
XMLNSC. O conjunto de mensagens xml1 modela mensagens do seguintes formato:
<Message>...</Message>
Execute as etapas a seguir:
- Defina as propriedades do nó exigidas no nó FileInput. A
tabela a seguir resume as propriedades do nó FileInput que
você deve configurar, a guia na qual elas são exibidas, se elas são
obrigatórias e os valores necessários.
Guia |
Propriedade |
Valor |
Básica |
Diretório de Entrada |
C:\FileInput\TestDir Se
o diretório de entrada não existir, nenhum arquivo será processado, mesmo se
você estiver processando arquivos sobre FTP ou SFTP.
|
Nome ou padrão de arquivo |
test_input1.xml |
Ação no processamento bem-sucedido |
Mover para Subdiretório de Archive |
Substituir arquivos duplicados no archive |
Selecionados |
Análise de Mensagem de Entrada |
Domínio de mensagem |
XMLNSC |
Modelo de Mensagem |
xml1 |
Sondagem |
Intervalo de Sondagem |
3 |
Tentar Novamente |
Ação no arquivo com falha |
Incluir Registro de Data e Hora e
Mover para Subdiretório de Restauração |
Registros e Elementos |
Detecção de registro |
Delimitado |
Delimitador |
Final de linha do DOS ou do UNIX |
Tipo de Delimitador |
Postfix |
FTP |
Transferência Remota |
Selecionados |
Protocolo de Transferência |
FTP ou SFTP |
Servidor e Porta Remotos |
ftpserver.hursley.abc.com |
Identidade de Segurança |
myidentity |
Diretório de Servidor |
/ftpfileinput |
Modo de Transferência |
ASCII (apenas para FTP) |
Atraso de Varredura |
45 |
Se você usou outros valores para seu recurso do servidor
FTP ou SFTP, insira aqueles valores. As configurações
usada aqui são idênticas àquelas usadas no exemplo em Usando um Arquivo Local como Entrada para Fluxo de Mensagens, exceto que a propriedade Transferência Remota
foi selecionada e agora há propriedades na guia FTP.
Se
você limpar a propriedade Transferência Remota,
o nó operará como ele faz no exemplo em Usando um Arquivo Local como Entrada para Fluxo de Mensagens;
as propriedades na guia FTP permanecem configuradas mas
são ignoradas.
- Implemente o fluxo de mensagens no broker. Consulte o Empacotando e Implementando.
As ações a seguir ocorrem quando você execute estas etapas:
- O arquivo test_input1.xml é transferido do
diretório do servidor FTP ou SFTP
(/ftpfileinput) para o diretório local (C:\FileInput\TestDir).
O arquivo é excluído do diretório do servidor FTP ou
SFTP.
- O nó FileInput detecta registros que
terminam com um final de linha do DOS ou do UNIX e
cria uma mensagem para cada um que ele localiza, conforme definido pelas propriedades na
guia Registros e Elementos.
O nó propaga
três mensagens para o fluxo de mensagens que está conectado ao terminal Out:
- Se um nó estiver conectado ao terminal Fim dos Dados, a mensagem
Fim dos Dados será propagada após o último registro no arquivo ter sido
processado.
- Quando o processamento estiver concluído, o arquivo test_input1.xml será
movido para o subdiretório de mqsiarchive, C:\FileInput\TestDir\mqsiarchive.
Se um arquivo chamado test_input1.xml existir no subdiretório mqsiarchive,
ele será sobrescrito.
- Se o fluxo de mensagens falhar, tente repetir o processamento de acordo com o conjunto de valores nas propriedades do nó FileInput. Nesta tarefa de exemplo,
um registro de data e hora é incluído no nome do arquivo e o arquivo é movido
para o diretório mqsibackout. Segue um exemplo de caminho para tal arquivo:
C:\FileInput\TestDir\mqsibackout\20070928_150234_171021_test_input1.xml.
Se ocorrer um erro do lado FTP dizendo que o acesso foi negado, um arquivo de 0 byte é criado e movido ao diretório mqsibackout.
Um arquivo de 0 byte é criado no diretório mqsibackout para cada tentativa falha do FTP.
Como a propriedade Transferência Remota
está selecionada, o atraso da varredura de FTP de 45 segundos substitui o intervalo de sondagem
de 3 segundos.
Para obter informações adicionais, consulte Controlando como Arquivos São Separados em Registros, que mostra os efeitos
de especificar outras combinações de valores nas propriedades Detecção de Registro, Delimitador e Tipo de Delimitador do nó FileInput.
As amostras a seguir
também mostram como usar este nó:
Você
só pode visualizar informações sobre amostras quando usa o centro de informações
que está integrado ao WebSphere Message Broker Toolkit ou o centro de
informações on-line. Você só poderá
executar amostras quando usar o centro de informações que está integrado ao
WebSphere Message Broker Toolkit.