[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2007
    Beiträge
    16

    Java via QSH - ENDJOB abfragen

    Hallo Forum,

    ich bin gerade beim Testen und es geht natürlich nicht Schulbuchmäßig.

    Ein Java-Programm soll in einer Methode das JOB-Ende des aufrufenden Batch-Jobs ermitteln.

    Hier der Testcode:
    Code:
        AS400 system = new AS400();
        ProgramCall pgm = new ProgramCall(system);
        pgm.setThreadSafe(true);  // Indicates the program is to be run on-thread.
        
        try {
    String jobNbr = pgm.getServerJob().getNumber(); String jobUser = pgm.getServerJob().getUser(); String jobName = pgm.getServerJob().getName();
    System.out.println("job: " + jobNbr + " " + jobUser + " " + jobName);
    Job job = new Job(system, jobName, jobUser, jobNbr); while (job.getStatus().equals(Job.JOB_STATUS_ACTIVE)) { // Wait a while. Thread.sleep(1000); // Refresh the attribute values. job.loadInformation(); System.out.println("Job status is: " + job.getStatus()); } System.out.println("Job status is: " + job.getStatus());
    } catch (AS400SecurityException | ErrorCompletingRequestException | IOException | InterruptedException | ObjectDoesNotExistException e) { // TODO Auto-generated catch block e.printStackTrace(); }
    Das Java Programm wird via QSH mit Java -jar aufgerufen.

    Leider wird als Job-Daten nicht der zugehörige Stapeljob ermittelt, der die QSH aufruft, sondern ein QSYSWRK-Job:

    266472 QUSER QZRCSRVS

    Liegt das am JAR?

    Wie bekomme ich den ordentlichen Jobnamen meines OS/400 Stapeljobs, der die QSH aufruft, außer das ich ihn als Parameter übergebe?
    Klappt natürlich auch nicht bei interaktiver QSH-Konsole

    Viele Grüße

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Jede JVM wird in einem eigenen Job gestartet, egal ob aus dem Dialog oder Batch.
    Beim Start aus QSH hast du sogar 3 Jobs im Spiel:
    - den Aufrufer
    - den QSH-Job
    - den Java-Job
    Welchen willst du denn?
    Java kommt an den Aufrufer nicht mehr dran, wenn er über QSH gestartet ist.
    Allerdings kann man in Java sich bestimmt an ein zentrales "Ereignis" Anwendungsende hängen.
    Da weiß ggf. D*B was oder das Java-Toolkit gibt da was her.
    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
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von alex.kretschmer Beitrag anzeigen
    Ein Java-Programm soll in einer Methode das JOB-Ende des aufrufenden Batch-Jobs ermitteln.
    ... was soll das denn werden? eh der aufrufende Job fertig ist, sägt er alles runter, was im callstack unter ihm ist.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Sep 2007
    Beiträge
    16
    @Fuerchau: Danke für die Info. Der erzeugende Batch-Job würde mit CONTROLLED beendet werden - sorry, das hatte ich nicht erwähnt.
    Dann hätte o.g. Abfrage das Potential, noch Prozesse abzuschließen und sauber auszusteigen, wenn z.B. das Subsystem beendet wird (mit controlled).

    @Bender: Ja, danke für das Zitat und die super schlaue Frage als Antwort.
    Daher würde die Funktion bei gesteuertem Jobende verwendet werden.
    Es ist keinesfalls untypisch, Jobende abzufragen und sauber aus Prozessen auszusteigen. Abfrage des Systemende-Anzeigers kann man ja auch aus der native Anwendungen abfragen. Somit kann ich auf das "was soll das denn werden" nicht mehr dazu sagen.

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von alex.kretschmer Beitrag anzeigen
    @Fuerchau: Danke für die Info. Der erzeugende Batch-Job würde mit CONTROLLED beendet werden - sorry, das hatte ich nicht erwähnt.
    Dann hätte o.g. Abfrage das Potential, noch Prozesse abzuschließen und sauber auszusteigen, wenn z.B. das Subsystem beendet wird (mit controlled).

    @Bender: Ja, danke für das Zitat und die super schlaue Frage als Antwort.
    Daher würde die Funktion bei gesteuertem Jobende verwendet werden.
    Es ist keinesfalls untypisch, Jobende abzufragen und sauber aus Prozessen auszusteigen. Abfrage des Systemende-Anzeigers kann man ja auch aus der native Anwendungen abfragen. Somit kann ich auf das "was soll das denn werden" nicht mehr dazu sagen.
    ... eigentlich wollte ich Schlaubergern, die ihre Frage schräg formulieren und dann einen Antworter anraunzen ignorieren, aber seis drum.

    Sieh dir mal SecurityManager und checkExit an.

    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
    Sep 2007
    Beiträge
    16
    Ja, danke für die Info.

    Ich weiß nicht, wo die Schlaubergerei und die Schrägheit in meiner Frage hervorkommt.

    Außer daß ich vergessen hatte, Controlled zu erwähnen - hätte sich aber auch selbst erschlossen.

    Habe nur auf das "was soll das den werden" geantwortet, die ja eher nach Schlaubergerei klingt.

    Na, dann nichts für ungut und weiterhin "dickes Fell".

    Ich werde mir Deine Tipps gerne weiterhin ansehen!

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von alex.kretschmer Beitrag anzeigen
    Ja, danke für die Info.

    Ich weiß nicht, wo die Schlaubergerei und die Schrägheit in meiner Frage hervorkommt.

    Außer daß ich vergessen hatte, Controlled zu erwähnen - hätte sich aber auch selbst erschlossen.

    Habe nur auf das "was soll das den werden" geantwortet, die ja eher nach Schlaubergerei klingt.

    Na, dann nichts für ungut und weiterhin "dickes Fell".

    Ich werde mir Deine Tipps gerne weiterhin ansehen!
    ... du findest in meinem Open Source Project CommandGate ein Beispiel:
    http://appserver4rpg.cvs.sourceforge...v/commandgate/
    im CommandGateHandler, bzw. im ExitPreventer

    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. MONMSG: Inhalt abfragen
    By JoergHamacher in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 03-02-16, 12:47
  2. SQL Anweisungen auf AS400 abfragen
    By Rene_M in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 29-01-14, 15:27
  3. SQL - Datum (8,0) drehen und abfragen
    By Peter Kosel in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-05-03, 14:33
  4. QRCVDTAQ User abfragen
    By DEVJO in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 09-07-02, 09:46
  5. OVRDBF in CL-PGM abfragen
    By Amalie in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 23-11-01, 09:37

Tags for this Thread

Berechtigungen

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