wolfgang.w
22-09-13, 09:10
Hallo alle zusammen
Ich habe den Eintrag von Joe gelesen http://newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/18390-ftp-empfang-nach-umstellung-auf-v7r1.html. Leider ist die darin dargestellte Lösung bei mir nicht möglich! Ich möchte wissen ob vielleicht jemand anders eine ähnlich gelagertes Problem kennt bzw. sogar gelöst hat.
Vorgeschichte: Ein Job auf einer i5 mit V5R3 verbindet sich mehrmals pro Stunde via FTP mit einem Telecomanbieter um Bestellungsdaten runterzuladen. Das FTP-Script, das dabei läuft verwendet nach dem Wechseln in die richtigen Verzeichnisse (local und remote) den mget * Befehl. Dieser Job lief jahrelang fehlerfrei und problemlos.
Nach dem Wechsel auf eine neue 720'er Maschine mit V7R1 lassen wir den gleichen Job laufen. Nur - es kommen praktisch keine Daten an. Manchmal eine Datei, manchmal 2 und ganz, ganz selten 3. Schnell haben wir festgestellt, dass der neue FTP-Client automatisch die extended passive Verbindung sucht, also haben wir die mit den entsprechenden Befehlen (SENDEPSV und SENDEPRT) abgeschaltet. Die im Befehl 'locstat' angezeigten Einstellungen sind danach auch die gleichen wie auf der alten Maschine.
Trotzdem kommen immer nur eine oder zwei Dateien an. Danach bricht der Server die Verbindung ab. Hier ein kurzes Log
Einen FTP-Unterbefehl eingeben.
> get 20130908100608589_00060696.xml
227 Entering Passive Mode (193,222,64,82,142,114)
150-Starting Transfer
150-Downloading
150-Checking file
150 Starting Transfer
226 Transfer Complete 38638 Byte in 0.015 Sekunden übertragen. Übertragungsgeschwindigkeit 2637.688
KB/s.
Einen FTP-Unterbefehl eingeben.
> get 20130909010920830_00060725.xml
227 Entering Passive Mode (193,222,64,82,103,250)
150-Starting Transfer
150-Downloading150-Checking file
150 Starting Transfer
226 Transfer Complete 19495 Byte in 0.006 Sekunden übertragen. Übertragungsgeschwindigkeit 3327.147
KB/s.
Einen FTP-Unterbefehl eingeben.
> get 20130909011036534_00060726.xml
500 Bad passive command from server
Es kann keine aktive Datenverbindung zum Server hergestellt werden.
Ursachencode 1.
Verwendung von PASV ist für diese Server-Sitzung inaktiviert.
150 Error. Aborting.Einen FTP-Unterbefehl eingeben.
> get 20130909011050678_00060727.xml
421 invalid command during xfer
Vor allem die letzte 421'er wiederholt sich dann bei jedem automatischen get-Befehl. Diese Meldung besagt ja, dass ein ungültiger Befehl während eines Dateitransfers erfolgte. Warum passiert so etwas? Einzigen Grund den ich mir vorstellen konnte war, dass der Client nicht auf die Abschlussmeldnungen der Servers wartet und einfach seine 'get' Befehle absendet.
Ich schrieb den Job um und umging damit den mget - Befehl. Das heisst ich habe zuerst das remote-Verzeichnis ausgelesen und dann ein Script erstellt, welches jede einzelne Datei mit einem 'get' Befehl abholt. Damit dachte ich, umgehe ich den zu schnellen Automatismus des mget - Befehles. Leider war dem nicht so. Eine oder zwei Dateien und dann kamen die gleichen Fehlermeldungen wie vorher.
Um das Bombardement der vielen get - Befehlen auf den Server einzudämmen, habe ich dann zwischen jedem get noch eine Pause von 1Sek. eingebaut (SYSCMD DLYJOB DLY(0001)). Und siehe da, jetzt kommen alle Dateien problemlos an. Im Log sind keine Fehlermeldungen zu finden und die Kontrollen ergeben, dass wirklich jedesmal alle verfügbaren Dateien abgeholt werden.
Meine Frage:
Kennt jemand diese Problematik, dass der FTP-Client nicht auf die Abschlussfehle des Servers wartet? Vielleicht liege ich mit meiner Vermutung auch falsch und es hat einen anderen Grund - aber welchen?
Ich habe den Eintrag von Joe gelesen http://newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/18390-ftp-empfang-nach-umstellung-auf-v7r1.html. Leider ist die darin dargestellte Lösung bei mir nicht möglich! Ich möchte wissen ob vielleicht jemand anders eine ähnlich gelagertes Problem kennt bzw. sogar gelöst hat.
Vorgeschichte: Ein Job auf einer i5 mit V5R3 verbindet sich mehrmals pro Stunde via FTP mit einem Telecomanbieter um Bestellungsdaten runterzuladen. Das FTP-Script, das dabei läuft verwendet nach dem Wechseln in die richtigen Verzeichnisse (local und remote) den mget * Befehl. Dieser Job lief jahrelang fehlerfrei und problemlos.
Nach dem Wechsel auf eine neue 720'er Maschine mit V7R1 lassen wir den gleichen Job laufen. Nur - es kommen praktisch keine Daten an. Manchmal eine Datei, manchmal 2 und ganz, ganz selten 3. Schnell haben wir festgestellt, dass der neue FTP-Client automatisch die extended passive Verbindung sucht, also haben wir die mit den entsprechenden Befehlen (SENDEPSV und SENDEPRT) abgeschaltet. Die im Befehl 'locstat' angezeigten Einstellungen sind danach auch die gleichen wie auf der alten Maschine.
Trotzdem kommen immer nur eine oder zwei Dateien an. Danach bricht der Server die Verbindung ab. Hier ein kurzes Log
Einen FTP-Unterbefehl eingeben.
> get 20130908100608589_00060696.xml
227 Entering Passive Mode (193,222,64,82,142,114)
150-Starting Transfer
150-Downloading
150-Checking file
150 Starting Transfer
226 Transfer Complete 38638 Byte in 0.015 Sekunden übertragen. Übertragungsgeschwindigkeit 2637.688
KB/s.
Einen FTP-Unterbefehl eingeben.
> get 20130909010920830_00060725.xml
227 Entering Passive Mode (193,222,64,82,103,250)
150-Starting Transfer
150-Downloading150-Checking file
150 Starting Transfer
226 Transfer Complete 19495 Byte in 0.006 Sekunden übertragen. Übertragungsgeschwindigkeit 3327.147
KB/s.
Einen FTP-Unterbefehl eingeben.
> get 20130909011036534_00060726.xml
500 Bad passive command from server
Es kann keine aktive Datenverbindung zum Server hergestellt werden.
Ursachencode 1.
Verwendung von PASV ist für diese Server-Sitzung inaktiviert.
150 Error. Aborting.Einen FTP-Unterbefehl eingeben.
> get 20130909011050678_00060727.xml
421 invalid command during xfer
Vor allem die letzte 421'er wiederholt sich dann bei jedem automatischen get-Befehl. Diese Meldung besagt ja, dass ein ungültiger Befehl während eines Dateitransfers erfolgte. Warum passiert so etwas? Einzigen Grund den ich mir vorstellen konnte war, dass der Client nicht auf die Abschlussmeldnungen der Servers wartet und einfach seine 'get' Befehle absendet.
Ich schrieb den Job um und umging damit den mget - Befehl. Das heisst ich habe zuerst das remote-Verzeichnis ausgelesen und dann ein Script erstellt, welches jede einzelne Datei mit einem 'get' Befehl abholt. Damit dachte ich, umgehe ich den zu schnellen Automatismus des mget - Befehles. Leider war dem nicht so. Eine oder zwei Dateien und dann kamen die gleichen Fehlermeldungen wie vorher.
Um das Bombardement der vielen get - Befehlen auf den Server einzudämmen, habe ich dann zwischen jedem get noch eine Pause von 1Sek. eingebaut (SYSCMD DLYJOB DLY(0001)). Und siehe da, jetzt kommen alle Dateien problemlos an. Im Log sind keine Fehlermeldungen zu finden und die Kontrollen ergeben, dass wirklich jedesmal alle verfügbaren Dateien abgeholt werden.
Meine Frage:
Kennt jemand diese Problematik, dass der FTP-Client nicht auf die Abschlussfehle des Servers wartet? Vielleicht liege ich mit meiner Vermutung auch falsch und es hat einen anderen Grund - aber welchen?