Verwenden Sie einen
FileOutput-Knoten, um eine Datei in ein Verzeichnis auf
einem fernen FTP oder SFTP-Server zu schreiben.
Dieses Beispiel zeigt, wie Sie mit einer möglichen Einstellungskombination der
Eigenschaften
Datensatzdefinition,
Begrenzer und
Begrenzertyp aus mehreren Nachrichten eine Datei
erstellen. Das Beispiel ist eine Erweiterung des Beispiels im Abschnitt
Datei in das lokale Dateisystem schreiben und beschreibt die Verwendung eines
FileOutput-Knotens in einem Nachrichtenfluss.
Bei den
Anweisungen wird vorausgesetzt, dass Sie ein Windows-System
verwenden und bereits einen Nachrichtenfluss, der einen
FileOutput-Knoten enthält, erstellt haben. Sie benötigen
außerdem folgende Ressourcen:
- Einen FTP oder SFTP-Server. Stellen Sie sicher, dass ein
FTP oder SFTP-Server mit folgenden Einstellungen vorhanden ist
(damit Sie dem Beispiel folgen können):
- Server
- ftpserver.hursley.abc.com
- Port
- 21 (für FTP)
oder 22 (für SFTP)
- Arbeitsverzeichnis
- /ftpfileoutput
- Benutzer-ID
- myuserid
- Kennwort
- mypassword
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 Anweisungen in dieser Aufgabe die geeigneten
Werte festlegen können.
- Eine Sicherheitsidentität. Definieren Sie mit dem Befehl
mqsisetdbparms eine
Sicherheitsidentität mit dem Namen myidentity für Ihre Benutzer- und
Kennwortdaten.
Wenn
Sie eine Verbindung mit einem FTP-Server herstellen möchten, muss die Sicherheitsidentität das
Präfix
ftp:: haben, damit die Dateiknoten die Identitätsdefinition finden können. Verwenden Sie also beispielsweise für einen Broker namens
MyBroker folgenden
Befehl:
mqsisetdbparms MyBroker -n ftp::myidentity -u myuserid -p mypassword
Wenn Sie eine Verbindung mit einem SFTP-Server herstellen möchten, muss die Sicherheitsidentität
das Präfix
sftp:: haben, so wie im folgenden Beispiel gezeigt:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -p mypassword
Sie 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 einen Verschlüsselungstext statt
eines Kennworts angeben. Beispiel:
mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -i identity_file -r passphrase
Weitere Informationen zur Konfiguration von Verbindungen mit einem SFTP-Server finden Sie im
Abschnitt Dateien mit SFTP sicher übertragen.
- Die folgenden Nachrichten, die von dem Nachrichtenfluss, der dem
FileOutput-Knoten vorausgeht, erzeugt werden müssen:
Gehen Sie dazu wie folgt vor:
- Legen Sie für den FileOutput-Knoten die erforderlichen Knoteneigenschaften fest. Die folgende Tabelle enthält eine Übersicht über die Eigenschaften des
FileOutput-Knotens, die Sie festlegen müssen. Außerdem
ist angegeben, auf welchen Registerkarten die Eigenschaften angezeigt werden und welche Werte in
diesem Beispiel verwendet werden.
Registerkarte |
Eigenschaft |
Wert |
Grundeinstellung |
Verzeichnis |
C:\FileOutput\TestDir |
Dateiname oder Muster |
test_output1.xml |
Modus für das Schreiben von Daten in eine Datei |
In
Durchgangsverzeichnis zwischenspeichern und bei Dateibeendigung in Ausgabeverzeichnis
verschieben |
Maßnahme, falls Datei vorhanden ist |
Zeitmarke,
bestehende Datei archivieren und ersetzen |
Doppelt vorhandene Archivdateien ersetzen |
Ausgewählt |
Datensätze und Elemente |
Datensatzdefinition |
Datensatz 'Daten mit Begrenzer' |
Begrenzer |
Linienende des Brokersystems |
Begrenzertyp |
Postfix |
FTP |
Fernübertragung |
Ausgewählt |
Übertragungsprotokoll |
FTP oder
SFTP |
Ferner Server und
Port |
ftpserver.hursley.abc.com |
Sicherheitsidentität |
myidentity |
Serververzeichnis |
/ftpfileoutput |
Übertragungsmodus |
ASCII (nur
für FTP) |
Maßnahme, falls ferne Datei vorhanden ist |
Vorhandene Datei
ersetzen oder an vorhandene Datei anhängen |
Lokale Datei nach Übertragung behalten |
Ausgewählt |
Falls Sie für die
FTP oder SFTP-Serverressource andere Werte eingestellt haben,
geben Sie die betreffenden Werte ein. Die hier verwendeten Einstellungen sind identisch mit den
Einstellungen des Beispiels im Abschnitt Datei in das lokale Dateisystem schreiben, außer dass die
Eigenschaft
Fernübertragung
ausgewählt wurde und die Registerkarte FTP nun Eigenschaften enthält.
Wenn
Sie die Eigenschaft
Fernübertragung
inaktivieren, verhält sich der Knoten wie im Beispiel im Abschnitt
Datei in das lokale Dateisystem schreiben. Die Eigenschaften auf der Registerkarte
FTP bleiben zwar erhalten, werden aber ignoriert.
Sie können die Eigenschaft
Ferner Server und Port des
Knotens überschreiben, indem Sie einen Wert in der lokalen Umgebung festlegen. Der Abschnitt Überschreibungen für den fernen Server auf dem FileOutput in der lokalen Umgebung enthält weitere Informationen hierzu.
- Implementieren Sie den Nachrichtenfluss auf dem Broker. Weitere Informationen hierzu finden Sie unter Verpacken und implementieren.
- Senden Sie die ersten drei Nachrichten an das Eingangsterminal des FileOutput-Knotens.
- Senden Sie die abschließende Nachricht an das Dateibeendigungsterminal des FileOutput-Knotens.
- Ist die ferne Datei vorhanden, kann mit dem Modus zum
Schreiben von Dateien in die ferne Datei angegeben werden, ob die übertragene Datei eine
vorhandene Datei ersetzen oder Daten an die vorhandene Datei anfügen soll. Die Übertragung erfolgt
im Rahmen der Aktion 'Datei beenden'. Um die Verwendung von
Append zu unterstützen, müssen Sie gegebenenfalls die
Konfiguration Ihres FTP-Servers aktualisieren.
Bei der Ausführung dieser Schritte geschieht Folgendes:
- Die Datei wird verarbeitet. Der FileOutput-Knoten
generiert einen Datensatz pro Nachricht, von denen jeder mit einem Zeilenbegrenzer des lokalen
Dateisystems endet. Die generierte Datei enthält folgende Daten, wobei jede Zeile mit einem
Zeilenbegrenzer endet. Auf einem Windows-System ist dies ein
Rücklaufzeichen (X'0D') gefolgt von einem Zeilenvorschubzeichen (X'0A'):
<Message>test1</Message>
<Message>testzwei</Message>
<Message>testdrei</Message>
- Die Datensätze werden in der Datei test_output1.xml im
Durchgangsverzeichnis C:\FileOutput\TestDir\mqsitransit akkumuliert.
Sobald
die abschließende Nachricht an das Dateibeendigungsterminal gesendet wird, wird die Datei in das
Verzeichnis des fernen FTP- oder SFTP-Servers verschoben (weil
die Eigenschaft
Fernübertragung
ausgewählt ist). Dies führt dazu, dass die Datei
/ftpfileoutput/test_output1.xml erstellt wird.
- Falls im Verzeichnis auf dem fernen FTP oder SFTP-Server
bereits eine Datei mit demselben Namen vorhanden ist, wird die vorhandene Datei überschrieben.
Wenn der ferne FTP-Server nicht auf einem Windows-System
ausgeführt wird und die Eigenschaft Übertragungsmodus auf
ASCII gesetzt ist, werden die Zeichencodierung und die
Zeilenbegrenzerzeichen nach der Übertragung möglicherweise geändert. Beispielsweise wird auf einem
FTP-Server unter z/OS ASCII-Text üblicherweise in EBCDIC
konvertiert, und das Zeilenbegrenzer-Zeichenpaar wird durch das EBCDIC-Zeilenvorschubzeichen
(X'15') ersetzt.
Die Konvertierung von ASCII-Zeichen auf anderen FTP-Servern weicht hiervon
eventuell ab. Bei Verwendung von SFTP wird die Eigenschaft
Übertragungsmodus ignoriert und Dateien werden als binäre
Dateien gesendet.
- Da die Eigenschaft Lokale Datei nach Übertragung
behalten ausgewählt ist, wird die Datei auf dem lokalen System nicht gelöscht, sondern aus
dem Durchgangsverzeichnis mqsitransit in das Ausgabeverzeichnis
C:\FileOutput\TestDir verschoben.
Wenn bereits eine Datei mit demselben Namen im Ausgabeverzeichnis vorhanden ist, wird die
vorhandene Datei umbenannt und in das Archivverzeichnis mqsiarchive
verschoben.
Es kann beispielsweise folgende Datei erstellt werden:
C:\FileOutput\TestDir\mqsiarchive\20081124_155346_312030_test_output1.xml
Falls das Archivverzeichnis jedoch bereits eine Datei mit diesem Namen enthält, wird die vorhandene
Datei entsprechend der Einstellung der Eigenschaft Doppelt
vorhandene Archivdateien ersetzen des
FileOutput-Knotens überschrieben.
Weitere Informationen finden Sie im
Eigenschaft Datensatzdefinition für die FileOutput- und FTEOutput-Knoten festlegen,
in dem gezeigt wird, zu welchen Ergebnissen dieser Vorgang führt, wenn für die Eigenschaften
Datensatzdefinition,
Begrenzer und
Begrenzertyp des
FileOutput-Knotens verschiedene Werte festgelegt werden.
Auch die folgenden Abschnitte enthalten Beispiele für die Verwendung dieses Knotens:
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message
Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im
WebSphere Message
Broker Toolkit integrierte Information Center verwendet wird.