[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte

Hybrid View

  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    249

    Abfrage Jobq leer

    In einem CL wird pro LIB ein Job in eine JOBQ gestellt (Sicherung in *savf, ftp auf NAS).
    In dieser JOBQ sind 3 jobs auf einmal erlaubt, damit die ganze Sache schneller fertig ist.

    Wenn alle jobs abgearbeitet sind, soll noch ein Befehl laufen (z.B. reboot System).

    Meine Frage jetzt: gibts eine Möglichkeit abzufragen, ob noch jobs in einer JOBQ sind? Erst wenn 0, dann soll ja der Ende-Job gestartet werden.

    Oder denk ich da falsch und es gäbe andere Möglichkeiten?

  2. #2
    Registriert seit
    Jun 2012
    Beiträge
    30
    Glaub die Jobq reicht nicht. Nur weil die JOBQ leer ist, können noch (in deinem Fall) bis zu 3 Jobs laufen, die die Daten sichern. Die siehts du im Subsystem aber nicht mehr in der JOBQ.

    Also müsstest du auch die Jobs im Subsystem beachten. z.B. per SQL:
    https://www.rpgpgm.com/2020/06/subsy...using-sql.html

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Gibts inzwischen per SQL:

    https://www.ibm.com/docs/en/i/7.4?to...e-entries-view
    https://www.ibm.com/docs/en/i/7.4?to...table-function

    Da die Jobs hoffentlich alle denselben Namen haben, kannst du mit dem Namen danach filtern.
    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

  4. #4
    Registriert seit
    Aug 2007
    Beiträge
    249
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Gibts inzwischen per SQL:

    https://www.ibm.com/docs/en/i/7.4?to...e-entries-view
    https://www.ibm.com/docs/en/i/7.4?to...table-function

    Da die Jobs hoffentlich alle denselben Namen haben, kannst du mit dem Namen danach filtern.
    Vielen Dank, thats it :-)

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... schon wieder so ein Graberjob, der rumrödelt und nix tut und am Ende auf Dinge wartet, die schon fertig sind.

    Auf etwas geduldig warten und unmittelbar zuschlagen, wenn etwas fertig ist, macht man über Sperren oder Nachrichten.

    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/

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

    Wink

    Zitat Zitat von BenderD Beitrag anzeigen
    ... schon wieder so ein Graberjob, der rumrödelt und nix tut und am Ende auf Dinge wartet, die schon fertig sind.

    Auf etwas geduldig warten und unmittelbar zuschlagen, wenn etwas fertig ist, macht man über Sperren oder Nachrichten.

    D*B
    Das ist Old School Herr Dinosaurier. ;-)
    Heute hat die Kiste mehr Wumms als meine D02 je von zu träumen wagte.

    GG 2250

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Trotzdem muss man sich nur vorstellen, wie die neuen SQL-Views arbeiten, da die Daten nicht als Tabelle vorliegen sondern erst eben die API's bemüht werden, um diese dann als dynamische Sicht darzustellen.
    Wenn man die API's selber bemühen würde, wäre das auch schneller.

    Dieter kann ich aber auch verstehen. Denn die parallelen Jobs, die von einem andere Job in einer vorgegebene Anzahl gestartet werden, könnten am Ende einen Zähler in einer Tabelle rauf- oder runterzählen und bei Erreichen des Ziels kan ein Trigger dann den nächsten Folgejob starten. Somit ist ein permanenter Überwachungsjob dann vollkommen unnötig.

    Das hat dann mit Oldschool nun gar nichts zu tun.
    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

  8. #8
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das hat dann mit Oldschool nun gar nichts zu tun.
    Sehe ich etwas anders.
    Zu Zeiten als ich noch im Team COBOL geschrieben habe, habe ich mit dem Kollegen manchmal stundenlang über den besten Weg gestritten.
    Mit dem Ergebnis das wir auch Jahre später noch glücklich mit der Lösung waren.

    Der Lösungsansatz der hier beschrieben Problemstellung sieht für mich nicht nach lange drüber nachgedacht aus. Warum auch immer.

    Sprich Old School ist für mich viel Erfahrung und einen Optimalen Lösungsansatz zu wählen anstatt Maschinenpower zu verschwenden.

    Aber ohne Bier ist das Diskutieren darüber blöd, und jeder soll auf seine Weise Glüklich werden.

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Sollen oder müssen hier wirklich alle Jobs gleich heißen?
    Welche Protokolldatei soll per E-Mail gesendet werden?
    Was bringt ein Neustart am Schluß?

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... es geht hier nicht um Power oder Performance. Es geht um Stabilität, Transparenz, Korrektheit und Modularisierung.

    Unix hat zum Beispiel eine Funktion waitpid(), die wartet bis ein Prozess mit einer bestimmten Prozess id fertig ist. Damit kann man sehr flexibel Prozesse koordinieren.

    Dazu braucht man:

    eine procedure createProcess, die einen neuen Prozess startet und eine ProzessID zurückgibt.
    (create DTAQ zur Kommunikation
    Submit des Tochterjobs
    ALCOBJ auf ein Synchronobject (Rxxxxxx xxxxxx = JobNr
    Ausführung der angeführten Funktion (CommanString)
    bei Ende wird der ALC automatuisch frei gegeben)

    eine procedure joinProcess mit der man auf einen kindjob warten kann.

    Bedienen tut man dass dann mit

    pid = createProces( commandString, length)

    joinProcess(pid)

    Damit kann man beliebige schedules bauen, die nahtlos ablaufen.

    Haben wir mal benutzt um Langläufer massiv parallel abzufahren. (100te von Millionen Transaktionen in den Ladeprozessen eines DWHs).

    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 2003
    Beiträge
    2.403
    Einfach IBM i ohne Neustart durchlaufen lassen!?

    Zitat Zitat von programmer400 Beitrag anzeigen
    Wenn alle jobs abgearbeitet sind, soll noch ein Befehl laufen (z.B. reboot System). (…)
    Oder denk ich da falsch und es gäbe andere Möglichkeiten?

  12. #12
    Registriert seit
    Aug 2007
    Beiträge
    249
    Zitat Zitat von Pikachu Beitrag anzeigen
    Einfach IBM i ohne Neustart durchlaufen lassen!?
    Geht nicht nur um Neustart, es soll ein Mail mit Protokolldatei geschickt werden, wenn alles fertig gelaufen ist.

Similar Threads

  1. Neue Cache Batterie plötzlich leer (2748)
    By schatte in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 08-08-18, 18:03
  2. CPYTOIMPF Blank beim Export aber Inhalt von Feld = leer
    By TheDevil in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 05-06-14, 21:47
  3. QNTC ist leer auf neuer AS400 (V7R1)
    By mott in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 20-11-13, 14:08
  4. JOBQ(*JOBD) oder JOBQ(LIB/JOBQ) an SBMJOB übergeben
    By hww in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 12-12-06, 15:27
  5. Papierfach leer
    By Jörg Schmidt in forum NEWSboard Drucker
    Antworten: 0
    Letzter Beitrag: 24-10-06, 08:56

Berechtigungen

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