[NEWSboard IBMi Forum]
Seite 1 von 4 1 2 ... Letzte
  1. #1
    Registriert seit
    Sep 2013
    Beiträge
    21

    FTP Mysterium V7R1

    Hallo alle zusammen

    Ich habe den Eintrag von Joe gelesen http://newsolutions.de/forum-systemi...-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
    Code:
    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?

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    Keine Antwort, aber Hinweis an den Moderator / Admin

    Hallo,
    wenn ich mir unter Firefox 16.02 (früher aber auch schon) solche Artikel ansehe, wird der rechte Teil der Nachricht meistens von der Werbung überblendet und man kann nur ahnen was der Schreiber einem mittteilen wollte.

    Wäre nett wenn Ihr euer System Firefox kompatibel machen könntet.

    GG

  3. #3
    Registriert seit
    Feb 2013
    Beiträge
    51
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo,
    ...
    Wäre nett wenn Ihr euer System Firefox kompatibel machen könntet.
    Dies ist keine Firefox Inkompatibilität, sonder ein Fehler des Servers, der bei allen Browsern auftritt.
    Denn ich erhalte den selben "Mist" mit Firefox (23.0.1), IE8 und Chrome.

    Ich teile natürlich den Wunsch von KingofKning und wäre auch froh wenn dieser Fehler behoben wird.

    Danke im voraus.
    Gruss,
    Ernst

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Für die Passiv-Modi gibt es 2 Kommandos, da diese ohne Parameter sog. Toggle-Schalter sind, sollte man den Modus gezielt an/ausschalten:

    sendpasv 0
    sendepsv 0

    Diese in die Scripts einbauen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2013
    Beiträge
    21
    Hallo Fuerchau

    Wie im unteren Log zu sehen ist, ist dies bereits so!

    Code:
    230 user logged in
    UNIX
    Einen FTP-Unterbefehl eingeben.
    > SENDEPSV 0
    SENDEPSV ist nicht aktiv.
    Einen FTP-Unterbefehl eingeben.
    > SENDEPRT 0
    SENDEPRT ist nicht aktiv.(Unterbefehl EPRT nicht mit PUT(MPUT)-Unterbefehlen gesendet.)
    Einen FTP-Unterbefehl eingeben.
    > namefmt 1
    501 SITE unknown option Client NAMEFMT ist 1.
    Einen FTP-Unterbefehl eingeben.
    > cd get
    250 CWD successful
    Einen FTP-Unterbefehl eingeben.
    > lcd /idoc
    Das lokale Arbeitsverzeichnis ist /idoc                                       
    Einen FTP-Unterbefehl eingeben.
    > get 20130908100608589_00060696.xml
    Im locstat sieht das dann so aus:

    Code:
    locstat
    Es besteht eine Verbindung zu ftp.xxxx.com. Port 21 ist angemeldet.
    Der lokale Port ist 6326.
    SENDPASV ist aktiv.
    SENDEPSV ist nicht aktiv.
    SENDEPRT ist nicht aktiv.(Unterbefehl EPRT nicht mit PUT(MPUT)-Unterbefehlen gesendet.)
    SENDPORT ist aktiv.(Unterbefehl PORT wird mit PUT(MPUT)-Unterbefehlen gesendet.)
    SENDSITE ist inaktiviert. (Unterbefehl SITE wird nicht mit Unterbefehl PUT(MPUT) gesendet.)
    Die Datenart ist ASCII.
    Der Übertragungsmodus ist S.
    Struktur F wird zum Übertragen von Dateien benutzt.
    Auswahl LOCSITE TRIM ist auf 1 gesetzt.
    SUNIQUE ist inaktiviert.
    NAMEFMT des Servers wurde nicht durch den FTP-Client festgelegt.                            
    Client NAMEFMT ist 0.
    CRTCCSID Option auf *CALC gesetzt.
    NULLFLDS Option auf 0 gesetzt.
    Modus VERBOSE aktiviert.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Versuche es doch mal mit den Varianten für das normale "pasv" mit 0 oder 1.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Nov 2012
    Beiträge
    51

    Die Fehlermeldung steht doch da.

    PHP-Code:
    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 ErrorAborting.Einen FTP-Unterbefehl eingeben
    Der Client versteht den passive-Command, den der Server schickt, nicht. Das kann ich nicht ganz glauben, denn ein paar Zeilen weiter oben verstand er ihn noch sehr gut.

    PHP-Code:
    227 Entering Passive Mode (193,222,64,82,142,114
    Die zwei Zahlen hinter der IP-Adresse sind der Port für den Client, in dem Beispiel 256*142+114=36466.
    Der Client muss nun also eine Datenverbindung zu IP 193.222.64.82 Port 36466 aufbauen.

    Leider wissen wir nicht, welchen Port der Server beim Versuch, der fehlschlug, genannt hat.

    Irgendwie neige ich zu der Annahme, dass der Portbereich, in den der Versuch fiel, auf der Firewall gesperrt ist, der Client keine Verbindung aufbauen konnte und das ungeschickterweise so meldet...

    Das wäre zumindest eine Erklärung, warum's mal geht und mal nicht.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn die Firewall blockt, versuche es doch mal im Aktivmodus, also passiv ausschalten:

    sendpasv 0

    In einer Batchprozedur ist das doch letztlich egal.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Sep 2013
    Beiträge
    21
    Zuerst einmal Danke für Eure Anteilnahme und Eure Antworten.

    @Fuerchau
    Mit den Parametern habe ich schon sämtliche mögliche Kombinationen durchgespielt, immer mit dem gleichen Resultat!

    @Anton Gombkötö
    An der Firewall kann es insofern nicht liegen, da es auf dem alten System mit V5R3 jahrelang tadellos funktioniert hat. In der ganzen Umgebung wurde "nur" das System selbst gewechselt. Alles andere wie Firewall, Switches etc. blieb wie es vorher auch war.

    Das wäre zumindest eine Erklärung, warum's mal geht und mal nicht.
    Leider geht es immer nur 1x oder 2x. Danach kommt immer zuerst diese 500'er Fehlermeldung und dann ist schluss. Wenn es an der Firewall liegen würde, dann müsste es dann und wann auch das erste mal nicht gehen. Ist jedoch nicht der Fall.

    Zwischenzeitlich hat sich herausgestellt, dass das Problem bei einem anderen Kunden, bei welchen auch via FTP Bestelldaten abgeholt werden, ebenfalls auftritt. Bei diesem Kunden ist es jedoch nicht so problematisch, da selten mehr als 2 Dateien pro Lauf abzuholen sind. Aus diesem Grund ist es auch noch nicht aufgefallen.

    Seit der Umstellung mit den Pausen dazwischen läuft es immer tadellosund fehlerfrei. Nachfolgend ein Log:
    Code:
    > lcd /idoc
    Das lokale Arbeitsverzeichnis ist /idoc
    Einen FTP-Unterbefehl eingeben.
    > get 20130919024210534_00061284.xml
    227 Entering Passive Mode (193,222,64,82,149,70)
    150-Starting Transfer
    150-Downloading
    150-Checking file
    150 Starting Transfer
    226 Transfer Complete
     16483 Byte in 0.021 Sekunden übertragen. Übertragungsgeschwindigkeit 767.209
     KB/s.
    Einen FTP-Unterbefehl eingeben.
    > SYSCMD DLYJOB DLY(0001)
    Einen FTP-Unterbefehl eingeben.
    > get 20130919024243896_00061285.xml
    227 Entering Passive Mode (193,222,64,82,169,40)
    150-Starting Transfer
    150-Downloading
    150-Checking file
    150 Starting Transfer
    226 Transfer Complete
    8619 Byte in 0.009 Sekunden übertragen. Übertragungsgeschwindigkeit 980.651
    KB/s.
    Einen FTP-Unterbefehl eingeben.
    > SYSCMD DLYJOB DLY(0001)
    Einen FTP-Unterbefehl eingeben.
    > get 20130919024446085_00061286.xml
    227 Entering Passive Mode (193,222,64,82,128,130)
    150-Starting Transfer
    150-Downloading
    150-Checking file
    150 Starting Transfer
    226 Transfer Complete
     10213 Byte in 0.005 Sekunden übertragen. Übertragungsgeschwindigkeit 2091.622
     KB/s.
    Einen FTP-Unterbefehl eingeben.
    > SYSCMD DLYJOB DLY(0001)
    Einen FTP-Unterbefehl eingeben.
    > get 20130919024544364_00061287.xml
    227 Entering Passive Mode (193,222,64,82,139,99)
    150-Starting Transfer
    150-Downloading
    150-Checking file
    150 Starting Transfer
    226 Transfer Complete
    3083 Byte in 0.002 Sekunden übertragen. Übertragungsgeschwindigkeit 1578.496
    KB/s.
    Einen FTP-Unterbefehl eingeben.
    > SYSCMD DLYJOB DLY(0001)
    Einen FTP-Unterbefehl eingeben.
    > close
    221 Good-Bye 
    Einen FTP-Unterbefehl eingeben.
    > QUIT
    Wer hat sonst noch eine Idee? Wahrscheinlich werde ich dieses Problem mal an IBM weiterleiten müssen!

  10. #10
    Registriert seit
    Dec 2005
    Beiträge
    276
    Hallo Wolfgang,

    wenn du willst, würde ich mir einen TRCCNN ansehen.
    Habe jetzt den Befehl nicht bei der Hand, aber folgende Parameter müssen gesetzt werden:

    TRCCNN - F4
    Modus *ON
    Type *IP
    Tracetabellenname FTP
    Anzahl der Einheiten 128
    Maßeinheit *MB
    2.Seite
    Ferne IP Adresse <Adresse des FTP Servers>
    Enter

    Problem nachstellen

    Wenn der Fehler aufgetreten ist
    TRCCNN - F4
    Modus *OFF
    Tracetabellenname FTP
    Ausgabe *PRINT

    In WRKSPLF findest du dann eine QSYSPRT mit BenDaten TRCCNN. Wenn du mir die dann zukommen lassen kannst, würd ich sie mir mal ansehen.

    Mail Adresse kann ich per PM schicken.

    Du könntest noch ein DEBUG 100 in der FTP Sitzung einbauen, dann wird die FTP Client Seite getraced. Im WRKSPLF des Benutzers, der den FTP gestartet hat, findest du dann ein oder mehrere QTFTPTRC oder so ähnlich (bin mir mit dem Namen grad gar nicht sicher, findest die aber schon)

    Wenn der FTP Server auch eine AS400 ist, könnte man dort ein TRCTCPAPP *FTP machen.

    MFG Zerberus

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da frage ich mich, wie das Script aufgebaut ist.
    Gibst du mehrere Get's direkt hintereinander ab?
    Vielleicht ist das neue System da einfach schneller und der 2. get wird ausgelöst bevor der erste fertig ist!
    Mit dem DLY umgehst du halt die Schnelligkeit des Systems.

    Warum klappt mget nicht?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Sep 2013
    Beiträge
    21
    @Fuerchau
    Das Script ohne Pausen ist nichts anderes als viele get-Zeilen nacheinander.

    z.B.
    get 20130924035807706_00061469.xml
    get 20130924043211675_00061470.xml
    get 20130925063354322_00061471.xml
    get 20130925063426180_00061472.xml
    get 20130925063519055_00061473.xml
    get 20130925063625997_00061474.xml
    get 20130925063724171_00061475.xml
    etc.

    Und genau das ist der Krux an der ganzen Sache. Mehrere get (wie auch der mget, was ja nichts anderes ist) nacheinander funktionieren nicht. Baue ich hingegen eine Pause zwischen jedem Get ein dann klappt es! Die Symptomatik ist wie du sagst, dass der 2. get ausgelöst wird bevor der 1 beendet ist. Aber wie kann das sein?

    @Zerberus77
    Vielen Dank für Dein Angebot. Ich habe mal einen Testlauf gemacht und die Ausgabe bereit gestellt. Wo soll ich Sie hinschicken?

Similar Threads

  1. Daten perr FTP ins IFS
    By malzusrex in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-12-06, 13:38
  2. Ftp put hängt sich auf
    By TARASIK in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-11-06, 16:18
  3. FTP
    By KM in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 28-08-06, 13:50
  4. Savf File per FTP
    By wuwu in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 18-08-06, 08:09
  5. FTP von V5R3M0 nach V5R4M0
    By Frank.Sobanek in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 22-06-06, 20:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •