'Utilice un nodo FileInput para leer un archivo de un directorio de un servidor FTP o SFTP remoto y, a continuación, propagar los mensajes que se basan en el contenido de este archivo.
Antes de empezar:Este ejemplo es una extensión del ejemplo descrito en
Utilización de un archivo local como entrada del flujo de mensajes y describe cómo utilizar un nodo
FileInput en un flujo de mensajes.
En las siguientes instrucciones se da por supuesto que está utilizando un sistema operativo
Windows y que ha creado un flujo de mensajes que contiene un nodo
FileInput. También requiere los siguientes recursos:
- Un servidor FTP o SFTP. Asegúrese de que exista un servidor FTP o SFTP con los valores siguientes:
- Servidor
- ftpserver.hursley.abc.com
- Puerto
- 21 (para FTP)
o 22 (para SFTP)
- Directorio de trabajo
- /ftpfileinput
- ID de usuario
- myuserid
- Contraseña
- mypassword
Estos valores sólo sirven para este ejemplo. Si utiliza otros valores, anótelos de modo que pueda establecer los valores adecuados durante la tarea.
- Una identidad de seguridad. Utilice el mandato mqsisetdbparms para definir una identidad de seguridad denominada myidentity para obtener los detalles de usuario y contraseña.
Si desea conectarse a un servidor FTP, la identidad de seguridad debe tener un prefijo
ftp::, para habilitar los nodos de archivo de forma que busquen la definición de la identidad. Por ejemplo, utilice el siguiente mandato para un intermediario denominado
MyBroker:
mqsisetdbparms MyBroker -n ftp::myidentity -u myuserid -p mypassword
Si desea conectarse a un servidor SFTP, la identidad de seguridad debe tener un prefijo
sftp::, tal como se muestra en el ejemplo siguiente:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -p mypassword
También puede configurar una conexión a un servidor SFTP para que utilice la autenticación de clave pública especificando un archivo de identidad
SSH y una frase de paso en lugar de una contraseña. Por ejemplo:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -i identity_file -r passphrase
Para obtener más información sobre la configuración de conexiones en un servidor
SFTP, consulte Transferencia segura de archivos utilizando SFTP.
- Un archivo de entrada. Para seguir este escenario de ejemplo, cree un archivo de entrada llamado test_input1.xml con el siguiente contenido:
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
Cada línea finaliza con un terminador de línea adecuado para el sistema en el que reside el servidor
FTP o SFTP. No coloque este archivo en el directorio de entrada sino que debe colocarlo en el directorio del servidor
FTP o SFTP /ftpfileinput.
- Un conjunto de mensajes. Este ejemplo utiliza un conjunto de mensajes llamado xml1 que utiliza el analizador XMLNSC. El conjunto de mensajes xml1 modela los mensajes de la siguiente forma:
<Message>...</Message>
Lleve a cabo los siguientes pasos:
- Establezca las propiedades de nodo necesarias en el nodo FileInput. En la siguiente tabla se resumen las propiedades del nodo
FileInput que debe establecer, el separador en el que se visualizan, si son obligatorias y los valores requeridos.
Separador |
Propiedad |
Valor |
Básicas |
Directorio de entrada |
C:\FileInput\TestDir Si el directorio de entrada no existe, no se procesa ningún archivo, aun cuando
se procesen archivos a través de FTP o SFTP.
|
Nombre de archivo o patrón |
test_input1.xml |
Acción si el proceso es satisfactorio |
Mover a subdirectorio de archivado |
Sustituir archivos archivadores duplicados |
Seleccionado |
Análisis de mensaje de entrada |
Dominio de mensajes |
XMLNSC |
Modelo de mensaje |
xml1 |
Sondeo |
Intervalo de sondeo |
3 |
Reintento |
Acción si el archivo falla |
Añadir indicación de fecha y hora y mover a subdirectorio de restitución |
Registros y elementos |
Detección de registros |
Delimitados |
Delimitador |
Fin de línea de DOS o UNIX |
Tipo de delimitador |
Posfijo |
FTP |
Transferencia remota |
Seleccionado |
Protocolo de transferencia |
FTP o SFTP |
Servidor y puerto remotos |
ftpserver.hursley.abc.com |
Identidad de seguridad |
myidentity |
Directorio de servidor |
/ftpfileinput |
Modalidad de transferencia |
ASCII (solamente para FTP) |
Retardo de exploración |
45 |
Si ha utilizado otros valores para el recurso del servidor FTP o SFTP, escríbalos. Los valores utilizados son idénticos a los que se han utilizado en el ejemplo de Utilización de un archivo local como entrada del flujo de mensajes, salvo que se ha seleccionado la propiedad Transferencia remota y que ahora hay propiedades en el separador FTP. Si deselecciona la propiedad Transferencia remota, el nodo funciona igual que en el ejemplo de Utilización de un archivo local como entrada del flujo de mensajes; las propiedades del separadorFTP permanecen establecidas pero se ignoran.
- Despliegue el flujo de mensajes en el intermediario. Consulte el apartado Empaquetado y despliegue.
Las siguientes acciones se efectúan al realizar estos pasos:
- El archivo test_input1.xml se transfiere del directorio del servidor
FTP o SFTP
(/ftpfileinput) al directorio local (C:\FileInput\TestDir).
El archivo se suprime del directorio del servidor FTP o SFTP.
- El nodo FileInput detecta registros que terminan en un fin de línea DOS o
UNIX y crea un mensaje para cada uno que encuentra, tal como definen las propiedades en el separador Registros y elementos.
El nodo propaga tres mensaje al flujo de mensajes conectado al terminal Out (de salida):
- Si hay un nodo conectado al terminal End of Data, el mensaje End of Data (fin de datos) se propaga una vez que se ha procesado el último registro en el archivo.
- Cuando finaliza el proceso, el archivo test_input1.xml se mueve al subdirectorio
mqsiarchive, C:\FileInput\TestDir\mqsiarchive.
Si un archivo llamado test_input1.xml existe en el subdirectorio mqsiarchive, se sobrescribirá.
- Si el flujo de mensajes falla, el proceso de reintento se intenta según los valores establecidos en las propiedades del nodo FileInput. En esta tarea de ejemplo, se añade una indicación de fecha y hora al nombre del archivo y el archivo se mueve al directorio mqsibackout. A continuación se muestra un ejemplo de la vía de acceso a dicho archivo:C:\FileInput\TestDir\mqsibackout\20070928_150234_171021_test_input1.xml.
Si se produce un error en el lado de FTP, indicando que se deniega el acceso,
se crea un archivo de 0 bytes y se mueve al directorio mqsibackout.
Se crea un archivo de 0 bytes en el directorio mqsibackout para cada intento de operación FTP que falle.
Debido a que la propiedad está seleccionada, el retardo de exploración FTP de 45 segundos altera temporalmente el intervalo
de sondeo de 3 segundos.
Para más información, consulte Controlar cómo se separan los archivos en registros, que muestra los efectos de especificar
otras combinaciones de valores en las propiedades Detección de registros, Delimitador y Tipo de delimitador del nodo
FileInput.
En los ejemplos siguientes también se muestra cómo utilizar este nodo:
Puede
ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center
en línea. Puede
ejecutar ejemplos sólo cuando utilice el Information Center que está
integrado en WebSphere Message Broker Toolkit.