PDA

View Full Version : Bibliotheksliste vom job ermitteln



Seiten : 1 [2]

Fuerchau
26-06-13, 18:35
Nun ja, richtig wäre es jedem USRPRF eine korrekte JOBD (der Anwendung) anzuhängen, denn JDBC/ODBC sowie auch eigentlich alles andere setzt die USRLIBL durch diese JOBD ja korrekt.
Dann könnte ich das Javateil auch auf einem anderen Server ohne problem laufen lassen.

Aber wer kümmert sich schon um JOBD's, QDFTJOBD reicht doch allemal, den Rest macht man dann wieder per Programmcode.

max40
27-06-13, 08:47
... da kann doch Java nix dafür, was manche Dumpfbacken damit anrichten - ich weiß schon, warum ich diesen Dollschachtel Krumschel meide, wo immer es geht.

Das hilft mir jetzt wie weiter?

Fuerchau
27-06-13, 09:55
Vielleicht hilft dir das ja weiter:

AS400 system = new AS400();
ProgramCall pgm = new ProgramCall(system);
pgm.setThreadSafe(true); // Indicates the program is to be run on-thread.

public void setThreadSafe(boolean threadSafe)Specifies whether or not the program should be assumed thread-safe. The default is false.
Note: This method has no effect if the Java application is running remotely, that is, is not running "natively" on an IBM i system. When running remotely, the Toolbox submits all program calls through the Remote Command Host Server, regardless of the value of the threadSafe attribute.
Note: This method does not modify the actual program object on the system.
Note: If the program is run on-thread, it will run in a different job than if it were run off-thread.
Parameters:threadSafe - true if the program should be assumed to be thread-safe; false otherwise.

BenderD
27-06-13, 14:01
... wenn man auf Programmier-technische Komplexität stößt, sollte man zuerst über sein Design nachdenken, aber solange Du hinter dem Berg hältst, was Du eigentlich vorhast, ist Dir nicht zu helfen, allenfalls kann man da Beihilfe leisten in den nächsten Kackhaufen zu treten...

D*B

Fuerchau
27-06-13, 16:01
Wie du siehst, bzgl. der Kackhaufen helfe ich doch gerne :).

ILEMax
27-06-13, 16:55
@db
wir haben auch permanennt das Prob., das Java keine LibList kennt.
Daher schreiben wir Sie in eine envvar und Java liest sie wieder.

wir starten ein Java "Programm" mit



CHGVAR VAR(&QCMD) VALUE('cd ' *BCAT &PATH *TCAT +
';./bin/run.sh ' *BCAT &DTAQ *BCAT &DLIB)
SBMJOB CMD(QSH CMD(&QCMD)) JOB(myjob) +
JOBD(*LIBL/kundenjobd) JOBQ(JAVA) +
JOBPTY(*JOBD) OUTPTY(*JOBD) +
PRTDEV(*CURRENT) PRTTXT(*CURRENT) +
RTGDTA(QCMDB) SYSLIBL(*CURRENT) +
CURLIB(*CURRENT) INLLIBL(*CURRENT) ...
Danach laufen 4 Jobs im SBS Java mit der 'richtigen' Liblist
und einer, QZRCSRVS im subsystem QUSRWRK mit eine falschen Liblist.
Und ausgerechnet der macht die Arbeit.
Beim Kunden wird die Liblist beim SBMJOB über die JOBD vergeben.

Der Javajob liest Dateien mit SQL
um xml excel html ... auszugeben.
Und er weis nix von TEST oder von ECHT Umgebung. Nur durch das setzen der Envvar. Führt immer mal zu Fehlern, weil ein in 'LibList' denkender AS400 Entwickler die envvar vergisst.

Der ILEmax