[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    47

    Ausnahmebedingung im QSH-Cmd ls

    Hallo Forum,

    ich habe folgendes Problem:

    Eine Funktion in einem CL-Programm (Einlesen des Inhaltes eines IFS-Verzeichnisses mittels
    Qsh cmd(‚ls /dirname1/dirname2 > qsys.lib/mylib.lib/filename.file/mbrname.mbr')
    hat jahrelang problemlos funktioniert und sendet plötzlich die Fehlermeldung

    QSH0007 - Befehlwurde durch eine Ausnahmebedingung beendet.


    Im Joblog habe ich noch folgende Ergänzung gefunden
    "Deskriptor 0 ist in dem Job nicht zugeordnet"

    Hat jemand eine Erklärung dafür bzw. eine Idee, wie ich das lösen kann?

    Vielen Dank im Voraus










  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ggf. ist dein HOME-Verzeichnis (USRPRF) nicht mehr "/", so dass der relative Pfad "qsys.lib" nun nicht mehr greift.
    Stelle mal ein "/" vor QSYS.LIB.
    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 2006
    Beiträge
    47
    /qsys.lib/mylib.lib etc. war leider auch nicht erfolgreich.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Diesen Text hatte ich übersehen:
    "Deskriptor 0 ist in dem Job nicht zugeordnet" deutet auf eine Überschreibung von STDIN hin, die allerdings ungültig ist. Somit ist die Eingabe nicht geöffnet.
    Da stellt sich nun die Frage, welchen Fehler das Kommando ursächlich hat um dann auf STDIN zugreifen zu wollen.
    Standardmäßig gibt es 3 Deskriporen:
    0 = STDIN, umleitbar mit "< /Dir/File"
    1 = STDOUT, umleitbar mit "> /Dir/File"
    2 = STDERR, umleitbar mit "2 > /Dir/file" oder " 2 > &1"
    Wenn also ein Deskriptor nicht zugeordnet ist, hast du ein Ressourcenproblem in deinem Job.

    Nun ist du Ursache natürlich schwer zu finden.
    Hast du die QSH mal manuell gestartet und den Befehl ausprobiert?
    Passiert dies bereits immer beim 1. Mal im Job?
    Hast du ggf. aktive Überschreibungen auf oben genannte Dateien?

    Letzteres verwende ich z.B. für FTP-Aufrufe um FTP zu automatisieren:
    OVRDBF STDIN TOFILE(MYLIB/MYFILE)
    OVRDBF STDOUT TOFILE(MYLIB/MYFILE)
    OVRDBF STDERR TOFILE(MYLIB/MYFILE)

    Damit habe ich dann eine Kette von Befehlen:
    OVRxxx
    STRFTP
    DLTOVR

    QSH ...
    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
    Aug 2006
    Beiträge
    47
    1.) Eingabe qsh und dann in der qsh-Befehlseingabe ls /dirname1 --> funktioniert
    2.) Eingabe von qsh cmd('ls /dirname1 > /qsys.lib/ ... ) -->es kommt sofort die Meldung mit der Ausnahmebedingung; unabhängig davon welches Verzeichnis angeführt wird.
    3.) Es gibt keine OVR auf die Dateien STDIN, STDOUT , STDERR

    Könnte es sein, dass da irgendwelche Log-Einträge erstellt werden, die zu einem Überlauf führen?

    Die ls-FUnktion läuft seit Jahren täglich in 15-Miinuten-Abständen...

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Da bin ich überfragt. Ggf. ist da nun ein IBM-Call aufzumachen.
    Vielleicht irgend ein PTF dazugekommen?
    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
    Aug 2006
    Beiträge
    47
    PTF ist keines dazugekommen; danke für deine Bemühungen. Werde wie vorgeschlagen den IBM-Weg beschreiten.

  8. #8
    Registriert seit
    Dec 2005
    Beiträge
    276
    Hallo fpxx,

    prüfe mal ob du ein /dev/null hast.

    Wenn nicht, dann mach folgendes:

    CALL QP2TERM
    cd /dev
    mknod null c 32769 1
    chmod 666 null

    MFG Zerberus
    MFG Zerberus

  9. #9
    Registriert seit
    Aug 2006
    Beiträge
    47
    Hallo Zerberus77,

    ich habe nicht einmal ein /dev

    Habe /dev angelegt und dann deine Schritte vollzogen.
    Bei Schritt "mknod null c 32769 1" bekomme ich dann die Message "mknod: null: Not owner"

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.304

Berechtigungen

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