PDA

View Full Version : Bibliotheksliste vom job ermitteln



Seiten : [1] 2

max40
26-06-13, 14:40
Wenn ein java job gestartet wird und ich mir die Bibliotheksliste anschaue, sieht alle gut aus.
Bei meinem AS400 Object bzw. bei meiner JDBC Connection habe ich eine andere.

Wie kann ich mir in meinem Programm die Bibliotheksliste ermitteln?

Gruß
Max

Fuerchau
26-06-13, 14:54
Die JDBC-Verbindung startet in einem QZDASOINIT-Job.
Die benötigte LIBL gibst du in der Verbindungsfolge der Connection an.
Wie, das sagt dir die Dokumentation.

Es nützt dir nichts, die Libl per API zu ermitteln, da der JDBC-Job ja ein anderer ist.

max40
26-06-13, 15:02
Das ich beim AS400JDBCConnectionPoolDataSource ein Liblist setzen kann war klar.

Meine Frage war nicht, wie setzte ich eine Liblist, sondern wie ermittle ich die von mein Java-Programm damit ich diese am AS400 Object und beim AS400JDBCConnectionPoolDataSource setzen kann.

Fuerchau
26-06-13, 15:11
In wie weit die Toolbox Job-API's bereitstellt kann ich nicht sagen, da musst du mal suchen.

Alternativ kannst du die LIBL ja im CLP per RTVJOBA abrufen und als Argument dem Javateil mitgeben.
2.Variante ist, per Java-Programmcall ein CLP aufrufen, dass dir per RTVJOBA die LIBL zurückgibt.

max40
26-06-13, 15:22
Dann werde ich in der Toolbox jobapi weiterschauen.

deiner 1. Variante wäre eine möglichkeit an die wir auch schon gedacht haben.

deine alternative verstehe ich nicht, würde ja bedeuten ich brauche für ein commandcall ein as400 Object und dann würde ich doch nur die libl vom as400 object bekommen, die ist ja falsch oder verstehe ich das falsch

Fuerchau
26-06-13, 15:28
Ja :).
Wenn du die LIBL nicht als Argument übergibst, kannst du ein CLP über Java "ProgramCall" (nicht per SQL!) aufrufen.
Da die Libl des Java-Jobs ja wohl passt, sollte das Ergebnis das Richtige sein.

max40
26-06-13, 16:13
also, habe jetzt getestet:
Der Java-Job:

Ausw Job Benutzer Art -----Status----- Funktion
QP0ZSPWP MAX BATCHI AKTIV JVM-AS400Test Option 5 -> Option 13 : Bibliotheksliste Perfekt!
Das ruft das Programm auf das mir die Libl zurückgeben soll.

QZRCSRVS MAX BCI 0,0 DLY-10 DLYW Option 5 -> Option 13 : Bibliotheksliste versaut!

Also das was ich meinte, das AS400 Object hat keine verünftige Libl gesetzt, also kann er mir auch nichts vernünftiges zurückgeben.

Fuerchau
26-06-13, 16:44
Dies ist der Nachteil von Java, dass Programm-Calls wohl wieder über einen Serverjob abgewickelt werden.

Mittels Job-Klasse kannst du Job-Informationen, z.B.
Job (http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzahh/javadoc/com/ibm/as400/access/Job.html#getUserLibraryList)() herausholen.
Wie man an die eigene Job-Nr. herankommt, musst du mal suchen :).

Fuerchau
26-06-13, 17:00
Vielleicht gibts ja noch eine andere Alternative.
Per SETENVVAR kannst du beliebige Variablen im Job setzen, die du dann im Java-Programm abfragen kannst (falls eben nicht als Argument).

Bedenke dabei aber immer, dass dieses Javaprogramm dann auch immer auf der AS/400 laufen muss.

BenderD
26-06-13, 17:46
Dies ist der Nachteil von Java, dass Programm-Calls wohl wieder über einen Serverjob abgewickelt werden.

Mittels Job-Klasse kannst du Job-Informationen, z.B.
Job (http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzahh/javadoc/com/ibm/as400/access/Job.html#getUserLibraryList)() herausholen.
Wie man an die eigene Job-Nr. herankommt, musst du mal suchen :).

... 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.