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