[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Sep 2004
    Beiträge
    327

    Dateierzeugung im IFS und FTP versendet unfertige Files trotzdem

    Hallo Zusammen,
    heute hatten wir folgendes Problem:
    - Data convert ins IFS und Erzeugung einer 40 MB großen Datei
    - gleichzeitig krallt sich der FTP Async Job die Datei und versendet 6 MB davon und sagt fertig

    Der FTP Process liest mit den API's OPENDIR, READDIR das Verzeichnis aus.

    Gibt es eine Möglichkeit hier einzuschreiten um nur "fertige" Files zu ermitteln. Es gibt wohl keine Möglichkeit die IFS File solange zu sperren, bis sie fertig erzeugt ist.

    Danke.
    Gruß Klaus

  2. #2
    Registriert seit
    Nov 2020
    Beiträge
    315
    Hallo Klaus,

    Du kannst leider nie ausschließen, dass ein Programm lesend auf eine Datei zugreift.
    Die einfachste und sicherste Variante ist, dass du die Datei temporäre z.B. im /tmp erstellen lässt und erst nach fertigstellung in dein FTP Verzeichnis stellen.
    Falls dein FTP-Prozess auf bestimmte Dateinamen geht (z.B. *.csv), kannst du auch während der Konvertierung in .csv.tmp und dann nach Fertigstellung auf .csv umbenennen.

    lg Andreas

  3. #3
    Registriert seit
    Sep 2004
    Beiträge
    327
    Danke Dir Andreas,
    eventuell geben die SQL Table functions mehr her. Ich teste mal, sonst bleibt nur der beschriebene Weg von Dir.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Auch die Tablefunction macht genau das selbe und kann daher auch ggf. nur Teile einlesen.
    In FTP-Scripts muss daher man erst in eine Arbeitsdatei, z.B. "xxx.wrk" hochladen und bei Fertigstellung in den erwarteten Namen "xxx.csv" umbenennen.
    FTP unterstützt da auch das Rename-Kommando.
    Bei der Verarbeitung filtert man halt auf *.csv Dateien.

    U.U. kann mit CHKOUT eine Sperre geprüft werden, die mit CHKIN gelöst wird.
    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 2004
    Beiträge
    327
    Danke Euch, hatte es befürchtet, auch die Table functions zeigen keine Unterschiede bei den Attributen zu den bereits fertigen Files.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Was soll auch der Unterschied sein? SQL greift mit denselben C-Funktionen auf das IFS zu was du mit ILERPG auch kannst und was CPYxxxSTMF/CPY...IMPF auch tun.
    Wie gesagt, du kannst probieren mit CHKIN/CHKOUT einen Schreibschutz zu versuchen. Während FTP noch überträgt sollte es nicht klappen. Ebenso ein Rename sollte erfolglos sein.
    Sobald es klappt, kannst du verarbeiten.
    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
    Jun 2001
    Beiträge
    1.973
    Moin,
    wir machen ein LS (oder find?) in eine Outfile, dann 10 Sekunden warten, das selbe nochmal.
    mit SQL lesen wir die Outfile gegroupt incl Datum und Zeit mit having count(*) = 2.
    Bei uns reichen 10 Sekunden. Laufende Jobs haben innerhalb der 10 Sekunden die Datei verändert.
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Sicher ist das auch nicht, da die Datei immer noch in Benutzung sein kann.
    Eine FTP-Übertragung oder auch Kopiervorgang kann schon eine Weile dauern.
    Ohne eine Sperre zu setzen ist das halt nicht sicher.
    Wenn 10 Sekunden bei euch reichen hast du nur Glück gehabt.
    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
    Jun 2001
    Beiträge
    1.973
    na ja, wenn die Datei noch geschrieben wird, verändert sich die Zeit.
    Dann übertrage ich Sie nicht, erst(evtl) beim nächsten Lauf (bei uns alle 15 Minuten)
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... Problem ist doch in all diesen Fällen das miserable Design! Die Daten enthalten kein Prüfkriterium für Vollständigkeit oder es wird nicht geprüft und dann auch noch das nicht auszurottende Haufenkacker-Graber-Prinzip angewandt. Asynchrone Übertragungen können auch abbrechen, dann hilft warten nichts und durch HKGP kommt dann noch das Problem von Doppelübertragungen hinzu - schließlich merkt der Sender ja, dass es nicht gefunzt hat und machts nochmal.

    Am einfachsten und saubersten ist es, wenn der Sender nach erfolgreichem senden ein Event auf dem Zielsystem auslöst, das den Empfang regelt. Statt an Murkslösungen festzuhalten und Aufwand in untaugliche Versuche zu stecken, das irgendwie zu heilen, die bestenfalls die Fehlerquote verkleinern, sollte man das Übel lieber an der Ursache - dem miesen Design - anpacken.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Nov 2020
    Beiträge
    315
    Am einfachsten, sichersten und schnellsten ist die Methode mit dem Umbenennen wie von mir oben beschriebn.
    Alles andere hat Fehleranfälligkeiten an vielen verschiedenen Stellen und man schafft sich mehr Probleme als das es hilft.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Andreas_Prouza Beitrag anzeigen
    Am einfachsten, sichersten und schnellsten ist die Methode mit dem Umbenennen wie von mir oben beschriebn.
    Alles andere hat Fehleranfälligkeiten an vielen verschiedenen Stellen und man schafft sich mehr Probleme als das es hilft.
    ... seltsamerweise arbeitet kein einziges Internetprotokoll mit umbenennen.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Antworten: 7
    Letzter Beitrag: 10-11-21, 09:21
  2. Antworten: 17
    Letzter Beitrag: 24-11-16, 15:03
  3. Antworten: 8
    Letzter Beitrag: 26-05-14, 14:10
  4. FTP: Generische Uebertragung von Files
    By roman in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 05-12-06, 15:53
  5. Ftp von physikalischen Files?
    By Timmo in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 22-06-01, 10:30

Tags for this Thread

Berechtigungen

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