-
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
-
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.
-
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
-
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
-
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
-
:-(
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
-
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 !!!
Similar Threads
-
By Souljumper in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 23-01-07, 10:02
-
By Bobou in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 16-01-07, 10:26
-
By dino in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 08-12-06, 19:14
-
By malzusrex in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-12-06, 13:38
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks