Datei in einem fernen FTP-, FTPS- oder SFTP- Verzeichnis lesen
Verwenden Sie einen FileInput -Knoten, um eine Datei in einem Verzeichnis auf einem fernen FTP-, FTPS- oder SFTP- Server zu lesen und anschließend Nachrichten weiterzugeben, die auf dem Inhalt dieser Datei basieren.
Vorbereitungen
- Einen FTP-, FTP- oder SFTP- Server. Stellen Sie sicher, dass ein
FTP-, FTPS- oder SFTP-Server mit folgenden Einstellungen vorhanden ist:
Diese Werte dienen nur zu Demonstrationszwecken in diesem Beispiel. Falls Sie andere Werte verwenden möchten, sollten Sie sich diese notieren, damit Sie bei Ausführung der Aufgabe die geeigneten Werte festlegen können.
- Eine Sicherheitsidentität. Mit dem Befehl mqsisetdbparms können Sie eine Sicherheitsidentität namens myidentity für Ihre Benutzer-und Kennwortdetails definieren.Wenn Sie eine Verbindung zu einem FTP-oder FTPS-Server herstellen möchten, muss die Sicherheitsidentität das Präfix
ftp::haben, damit die Dateiknoten die Identitätsdefinition finden können. Verwenden Sie beispielsweise folgenden Befehl:mqsisetdbparms workDir -n ftp::myidentity -u myuserid -p mypasswordWenn Sie eine Verbindung mit einem SFTP-Server herstellen möchten, muss die Sicherheitsidentität das Präfixsftp::haben, so wie im folgenden Beispiel gezeigt:mqsisetdbparms -w workDir -n sftp::myidentity -u myuserid -p mypasswordSie können eine Verbindung mit einem SFTP-Server auch für eine Authentifizierung über öffentliche Schlüssel konfigurieren, indem Sie eine SSH-Identitätsdatei und eine Kennphrase statt eines Kennworts angeben. Zum Beispiel:mqsisetdbparms -w workDir -n sftp::myidentity -u myuserid -i identity_file -r passphraseUm zu überprüfen, welche Sicherheitsberechtigungsnachweise bereits festgelegt sind, verwenden Sie den Befehl mqsireportdbparms . Weitere Informationen finden Sie unter Kennwort für eine Ressource überprüfen, die von einem Integrationsserver verwendet wird.
Weitere Informationen zum Konfigurieren von Verbindungen zu einem SFTP-Server finden Sie unter Dateien sicher über SFTP übertragen.
- Eine Eingabedatei. Um diesem Beispielszenario folgen zu können, sollten Sie eine Eingabedatei mit dem Namen test_input1.xml und folgendem Inhalt erstellen:
Jede Zeile endet mit einem Zeilenabschlusszeichen, das für das System geeignet ist, auf dem sich der FTP-, FTPS- oder SFTP -Server befindet. Stellen Sie diese Datei nicht in das Eingabeverzeichnis, sondern im FTP-, FTPS- oder SFTP- Serververzeichnis /ftpfileinput.<Message>test1</Message> <Message>testtwo</Message> <Message>testthree</Message> - Eine Nachrichtengruppe. In diesem Beispiel wird eine Nachrichtengruppe namens
xml1 verwendet, die den XMLNSC-Parser verwendet. Die Nachrichtengruppe xml1 modelliert Nachrichten mit dem folgenden Format:
<Message>...</Message>
Informationen zu dieser Task
Führen Sie die folgenden Schritte aus:
Vorgehensweise
Ergebnisse
- Die Datei test_input1.xml wird aus dem FTP-, FTPS- oder SFTP -Serververzeichnis (/ftpfileinput) in das lokale Verzeichnis (C:\FileInput\TestDir) übertragen. Die Datei wird aus dem FTP-, FTPS- oder SFTP- Serververzeichnis gelöscht.
- Der FileInput -Knoten erkennt Datensätze, die mit einem DOS-oder UNIX-Zeilenende enden, und erstellt für jeden gefundenen Datensatz eine Nachricht, wie durch die Eigenschaften auf der Registerkarte Datensätze und Elemente definiert. Der Knoten leitet drei Nachrichten an den Nachrichtenfluss weiter,
der an das Out-Terminal angeschlossen ist:
- Nachricht 1:
<Message>test1</Message> - Nachricht 2:
<Message>testtwo</Message> - Nachricht 3:
<Message>testthree</Message>
- Nachricht 1:
- Wenn dem End of Data-Terminal ein Knoten zugeordnet ist, wird nach der Verarbeitung des letzten Datensatzes der Datei eine Datenendnachricht weitergegeben.
- Nach Beendigung der Verarbeitung wird die Datei test_input1.xml in das mqsiarchive-Unterverzeichnis C:\FileInput\TestDir\mqsiarchive verschoben. Falls das Archivverzeichnis mqsiarchive bereits eine Datei mit dem Namen test_input1.xml enthält, wird diese durch die neue Datei überschrieben.
- Wenn der Nachrichtenfluss fehlschlägt, wird die Verarbeitung entsprechend den Werten, die in den Eigenschaften des FileInput -Knotens festgelegt sind, wiederholt. In
diesem Beispielvorgang wird dem Dateinamen eine Zeitmarke hinzugefügt, und die Datei wird in das
Verzeichnis mqsibackout verschoben. Hier ein Beispiel für den Pfad einer solchen Datei: C:\FileInput\TestDir\mqsibackout\20070928_150234_171021_test_input1.xml.
Wenn auf der FTP-Seite der Zugriff verweigert wird, wird eine Datei mit 0 Byte erstellt und in das Verzeichnis 'mqsibackout' gestellt. Für jeden fehlgeschlagenen FTP-Versuch wird eine Datei mit 0 Byte im Verzeichnis 'mqsibackout' erstellt.
Da die Eigenschaft Fernübertragung ausgewählt ist, setzt die FTP-Scanverzögerung von 45 Sekunden das Abfrageintervall von 3 Sekunden außer Kraft.
Nächste Schritte
Weitere Informationen finden Sie im Abschnitt Trennung von Dateien in Datensätze steuern, in dem die Auswirkungen der Angabe anderer Kombinationen von Werten in den Eigenschaften Datensatzerkennung, Begrenzerund Begrenzertyp des FileInput -Knotens dargestellt werden.