Use um nó FileOutput para gravar um
arquivo em um diretório em um servidor FTP ou
SFTP remoto.
Este exemplo mostra como uma combinação de valores nas propriedades
Definição de Registro,
Delimitador e
Tipo de Delimitador resultam
na criação de um arquivo a partir de múltiplas mensagens. O exemplo é uma
extensão do exemplo descrito no
Gravando um Arquivo em seu Sistema de Arquivos Local
e descreve o uso de um nó
FileOutput em um fluxo de
mensagens.
Estas instruções assumem que você está usando um sistema Windows e que já
criou um fluxo de mensagens contendo um nó FileOutput. 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, para que você possa seguir este cenário de exemplo:
- Servidor
- ftpserver.hursley.abc.com
- Port (Porta)
- 21 (para FTP)
ou 22 (para SFTP)
- Diretório de trabalho
- /ftpfileoutput
- 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 quando seguir as instruções nesta 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 autenticação da 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.
- As mensagens a seguir, que devem ser produzidas pelo fluxo de mensagens
que precede o nó FileOutput:
Execute as etapas a seguir:
- Defina as propriedades do nó exigidas no nó FileOutput. A
tabela a seguir resume as propriedades do nó FileOutput
que você deve configurar, as guias nas quais elas são exibidas e os valores
que são usados neste exemplo:
Guia |
Propriedade |
Valor |
Básica |
Diretório |
C:\FileOutput\TestDir |
Nome ou padrão de arquivo |
test_output1.xml |
Modo de composição no arquivo |
Migrar dados no percurso e mover para o diretório de saída na
Conclusão do Arquivo |
Ação se o arquivo existir |
Registrar Data e Hora, Arquivar
e Substituir Arquivo Existente |
Substituir arquivos duplicados no archive |
Selecionados |
Registros e Elementos |
Definição de registro |
O registro são dados delimitados |
Delimitador |
Final de linha do sistema broker |
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 |
/ftpfileoutput |
Modo de Transferência |
ASCII (apenas para FTP) |
Ação se o arquivo remoto existir |
Substituir Arquivo Existente ou Anexar
ao Arquivo Existente |
Reter arquivo local após transferência |
Selecionados |
Se você usou outros outroes para seu recurso do servidor FTP ou SFTP, use aqueles valores. As configurações usadas aqui são idênticas às configurações usadas no exemplo em Gravando um Arquivo em seu Sistema de Arquivos Local, exceto se a propriedade Transferência Remota tiver sido selecionada, e houver propriedades na guia FTP.
Se
você limpar a propriedade Transferência Remota,
o nó operará como ele faz no exemplo em Gravando um Arquivo em seu Sistema de Arquivos Local;
as propriedades na guia FTP permanecem configuradas mas
são ignoradas.
É possível substituir a propriedade Servidor Remoto e Porta no nó configurando um valor no ambiente local. Para obter informações adicionais, consulte Substituições do Ambiente Local para o servidor remoto no nó FileOutput.
- Implemente o fluxo de mensagens no broker. Consulte o Empacotando e Implementando.
- Envie as três primeiras mensagens ao terminal In do nó FileOutput.
- Enviar a mensagem final para o terminal Finish File do nó FileOutput.
- Se o arquivo remoto existir, o modo para gravar no arquivo remoto será usado para especificar, se o arquivo transferido substitui um arquivo existente ou anexa dados ao arquivo existente. A transferência ocorre na ação Concluir Arquivo. Para suportar o uso de Anexar, talvez seja necessário atualizar
a configuração do servidor FTP.
As ações a seguir ocorrem quando você execute estas etapas:
- o arquivo é processado. O nó FileOutput gera um
registro por mensagem com um terminador de linha do sistema de arquivos local após
cada um. O arquivo contém os seguintes dados, com cada linha terminada
por um par de caracteres de retorno de linha (X'0D') e feed de linha (X'0A')
(em um sistema Windows):
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
- Os registros são acumulados no arquivo test_output1.xml
no diretório C:\FileOutput\TestDir\mqsitransit.
Quando
a mensagem final é enviada ao terminal Finish File, o arquivo é
movido para o diretório do servidor FTP ou SFTP remoto
(porque a propriedade Transferência Remota
está selecionada). Como resultado, o arquivo /ftpfileoutput/test_output1.xml é
criado.
- Se um arquivo com o mesmo nome existir no diretório do servidor FTP ou SFTP remoto, o arquivo
existente será sobrescrito.
Se o servidor FTP remoto não estiver em execução em um sistema Windows e a propriedade Modo de Transferência estiver configurada como ASCII, a codificação de
caracteres e os caracteres do terminador de linha poderão ser modificados após a transferência. Por
exemplo, em um servidor FTP do z/OS,
o texto ASCII é geralmente convertido em EBCDIC e os pares de caractere
terminador de linha são substituídos por caracteres de nova linha EBCDIC (X'15').
Outros servidores FTP podem tratar transferências ASCII de forma diferente. Se estiver usando SFTP, a propriedade Modo de Transferência será ignorada
e arquivos serão enviados como arquivos Binários.
- Como a propriedade Reter arquivo local
após transferência está selecionada, o arquivo local não é
excluído, mas é movido do subdiretório mqsitransit
para o diretório de saída, C:\FileOutput\TestDir.
Se um arquivo com o mesmo nome existir no diretório de saída, o arquivo existente
será renomeado e movido para o diretório mqsiarchive.
Por exemplo, o seguinte arquivo pode ser criado:
C:\FileOutput\TestDir\mqsiarchive\20081124_155346_312030_test_output1.xml
Entretanto,
se um arquivo com este nome existir neste diretório de archive, ele será sobrescrito
de acordo com o valor da propriedade Substituir
archives duplicados configurada no nó FileOutput.
Para obter informações adicionais, consulte
Configurando a PropriedadeDefinição de Registro para os Nós FileOutput e FTEOutput, que mostra os resultados da execução desta
tarefa com diferentes valores configurados nas propriedades
Definição de
Registro,
Delimitador
e
Tipo de Delimitador
do nó
FileOutput.
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.