alex.kretschmer
28-09-16, 19:39
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:
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
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:
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