[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    66

    max. 200 Dateien ins IFS

    Hallo Forum,
    ich versuche mittels eines Tools unseres Softwareherstellers archivierte Spooldateien als Textdateien .txt ins IFS zu kopieren. Funktioniert wunderbar, leider bricht der Vorgang immer mit der Meldung "Fehler beim Öffnen einer Datei im IFS - keine Überschreibungen auf angegebener Ebene" ab. Wie ich jetzt festgestellt habe tut er das immer sobald exakt 200 Dateien erstellt wurden. Ich habe mich jetzt durch die IBM Seiten gewühlt und dabei endeckt das es sowas wie eine "Default maximum number of file and socket descriptor per job" gibt mit "Value 200".
    Dort wiederum steht geschrieben "Default can be changed with DosSetRelMaxFH() - change Maximum Number of File Descriptors."
    So so ... ja ja ... Kann vielleicht jemand damit was anfangen??
    Was kann/muß ich tun damit ich bis zu 1500 Dateien ins IFS portieren kann. Bin für jeden Tip dankbar.
    Haben eine AS400 825 mit V5R2.
    Gruß Stefan

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.262
    Nun, sieht ganz so aus, als ob das Tool die Dateien nicht schließt. Es gibt durchaus Verzeichnisse mit mehr als 200 Dateien, aber 1 Job kann nicht mehr als 200 IFS-Dateien geöffnet halten !
    Im IFS können pro Verzeichnis ca. 32000 Dateien stehen, also lass mal den Fehler bei deiner Software suchen.
    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

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.879

    DosSetRelMaxFH()

    Hallo Stefan,

    bei DosSetRelMaxFH()=Change Maximum Number of File Descriptors handelt es sich um ein "Unix Type API".

    Unter dem folgenden Link findest Du die Beschreibung zu diesem API.
    DosSetRelMaxFH()

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    66

    und weiter geht's

    Hallo Forum,
    okay, jetzt habe ich mich noch tiefer herein gewühlt. Nun weiß ich das es eine Bibliothek QSYSINC gibt in der sich die sogenannten API's befinden. Dort gibt es unter SYS in der Teildatei TYPES auch tatsächlich den Eintrag "#define FD_SETSIZE 200 /* Maximum descriptors in set */ ". Und nu. Jetzt bin ich ja nicht unbedingt der API Spezialist, aber ich kann die Datei mit dem Editor öffnen und bearbeiten. Also hab ich gedacht mach aus 200 mal 2000. Aber ich kann die Änderung nicht abspeichern. Es erscheint die Meldung " Datei QSYSINC/SYS kann nicht als Ausgabedatei verwendet werden". Und dann stellt sich noch die Frage, war das dann alles? oder muß das ganze nicht anschließend noch irgendwie compiliert werden, mit C Compiler und/oder so. Hoffe mal das es vielleicht noch jemanden gibt der sich spezieller mit diesem API Getöse auskennt. Ansonsten stöber ich mal weiter durch den Blätterwald der IBM. Bin weiterhin für jeden Tip dankbar. :-)
    Gruß Stefan

  5. #5
    Registriert seit
    Dec 2000
    Beiträge
    450
    Hallo Stefan,

    selbstverständlich müsste das Programm neu erstellt werden, wenn du in der include-Datei was veränderst. Aber in deinem ersten Beitrag hast du geschrieben, dass es sich um ein Tool eines Softwareherstellers handelt. Dann ist das auch die Aufgabe dieses Softwareherstellers, das Problem zu beheben. Wenn du die Programmquelle nicht hast, kannst du eh nichts tun.

    Gruß
    Bruno

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    66

    :-(

    Hallo Bruno, Du hast wohl recht und mir wird nichts anderes übrig bleiben. Das Programm vom Softwarehersteller ist ein OS400 Command, dahinter verbirgt sich wiederum ein CL und ich vermutet das dieses API innerhalb dieses CL's aufgerufen wird. Aber es ist richtig, ohne den eigentlich Source kann ich selber da wohl nicht viel machen. Ein RTVCLSRC ist leider nicht möglich. Sollte sich wider erwarten noch ne andere Lösung ergeben meld ich mich.
    Gruß Stefan

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.262
    Nochmal zur Erklärung:

    Anders als bei der DB/400 (ODP) werden Descriptoren beim Beenden eines Programmes nicht geschlossen.
    Wenn ich in C/C++ eine IFS-Datei eröffne (open, fopen) erhalte ich einen Descriptor auf dem die Befehle read(), write(), fread() usw. anwende. Ich muss also diese Datei auch mit close() / fclose() wieder schließen, sonst wird die Resource nicht freigegeben.

    Mit C++ sieht es geringfügig anders aus, wenn ich die richtigen Klassen verwende. Dann übernimmt der sog. Destruktor das Schließen und freigeben.

    Da aber inzwischen viele C-Funktionen aus ILE-RPG aufrufen, gibt es diesen Automatismus nicht.
    Selbst wenn ich die Include-Datei ändere, hat das keine Auswirkung auf die Laufzeit ! Auch nicht bei einer neuen Umwandlung !!!
    Die Systembeschränkung kann nicht umgangen werden, da sich die internen Tabellen damit nicht ändern lassen siehe hierzu: http://publib.boulder.ibm.com/iserie...is/sysconf.htm

    Einzige Lösung ist hier die Fehlerbehebung des Software-Tools, d.h. CLOSE der IFS-Datei wenn man fertig ist !!!
    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

Similar Threads

  1. ASCII-Spoolfile ins IFS kopieren
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 23-01-07, 10:02
  2. Dateien aus dem IFS löschen
    By Bobou in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 16-01-07, 10:26
  3. Dateien im IFS bzw. QDLS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 08-12-06, 19:14
  4. Daten perr FTP ins IFS
    By malzusrex in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-12-06, 13:38
  5. Dateien per FTP von IFS auf der AS400 holen
    By kroehn in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 08-11-06, 19:36

Berechtigungen

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