-
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
-
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.
-
Zitat von alex.kretschmer
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.
-
@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.
-
Zitat von alex.kretschmer
@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
-
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!
-
Zitat von alex.kretschmer
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
Similar Threads
-
By JoergHamacher in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 03-02-16, 11:47
-
By Rene_M in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 29-01-14, 14:27
-
By Peter Kosel in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 02-05-03, 13:33
-
By DEVJO in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 09-07-02, 08:46
-
By Amalie in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 23-11-01, 08:37
Tags for this Thread
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