PDA

View Full Version : WRKSPLF und QUSER



Seiten : [1] 2

schwenth
18-09-06, 12:27
Hallo,

ich möchte über eine stored procedure eine Datei erzeugen, die die Namen aller Spoolfiles enthält, die ein (als Parameter übergebener) Benutzer in seinem Spool stehen hat.

Das sieht ungefähr so aus:

WRKSPLF SELECT(&USER) OUTPUT(*PRINT)

CPYSPLF FILE(QPRTSPLF) TOFILE(*LIBL/DOKSPLWK) +
SPLNBR(*LAST)

Die Datei DOKSPLWK sollte danach die Daten enthalten, die der Benutzer sehen würde, wenn er am Bildschirm WRKSPLF eingibt.

Wenn ich das CL bzw. die stored procedure direkt auf der AS400 aufrufe, funktionierts auch prima. Versuche ich das ganze aber über OLE-DB, bekomme ich den Fehler, dass die Datei QPRTSPLF nicht gefunden wurde. Der Fehler entsteht im Job QZDASOINIT im SBS QSERVER. Wenn man sich diesen Job anschaut stellt man fest, dass überhaupt kein Spoolfile generiert wurde.
Der Job QZDASOINIT läuft unter Benutzer QUSER. Kann das ein Berechtigungsproblem sein ? Oder woran liegts ??


Viele Grüsse,


Thilo

Fuerchau
18-09-06, 12:39
Schau mal ins Joblog, ob der WRKSPLF überhaupt ausgeführt wurde.

Im Übrigen wird der QZDA-Job mit dem Profil der ODBC-Anmeldung ausgeführt. Dieser User benötigt dann auch *SPLCTL um andere Spools als die eigenen zu sehen.

Fuerchau
18-09-06, 12:43
PS:
Selbst bei Angabe eines falschen Users gibts auf jeden Fall einen Spool.

Steht denn deine DOKSPLWK (über *LIBL) denn auch zur Verfügung ?
Ggf. must du hier noch qualifizieren. Was machst du im übrigen, wenn 2 ODBC's das selbe zur gleichen Zeit tun ?

schwenth
18-09-06, 12:45
Im Joblog sieht man, dass der wrksplf tatsächlich ausgeführt wird (ohne Fehlermeldung!), es entsteht dabei aber kein Spoolfile.

Der QZDA-Job läuft hier unter QUSER (ich hab mich nochmal vergewissert). Dem QUSER habe ich auch schon *SPLCTL und *ALLOBJ gegeben (inkl. anschliessendem IPL)...kein Erfolg

schwenth
18-09-06, 12:49
PS:
Selbst bei Angabe eines falschen Users gibts auf jeden Fall einen Spool.

Steht denn deine DOKSPLWK (über *LIBL) denn auch zur Verfügung ?
Ggf. must du hier noch qualifizieren. Was machst du im übrigen, wenn 2 ODBC's das selbe zur gleichen Zeit tun ?


Auch wenn ich die DOKSPLWK qualifiziert anspreche bricht das Pgm ab. Die Fehlermeldung bezieht sich aber auch auf die Spooldatei QPRTSPLF.

Das Problem des gleichzeitigen Aufrufs muss ich noch lösen (QTEMP)

Fuerchau
18-09-06, 12:49
Der Job wird zwar unter QUSER angezeigt läuft aber mitnichten unter QUSER !
Schau mal ganz an den Anfang des Joblogs, da steht meistens für wen dieser Serverjob gilt.

Wenn kein Spool vorhanden ist, wurde WRKSPLF mit Fehlermeldung abgewiesen !
Schalte per ODBC-Konfig mal den DEBUG-Modus ein und schau ins Joblog !

schwenth
18-09-06, 12:58
Im Joblog steht absolut nichts, dass der wrksplf nicht ausgeführt wurde.

Wie ich bei OLE-DB einen DEBUG-Modus einschalte weiss ich leider nicht.

Fuerchau
18-09-06, 12:59
Dann rufe in deinem CLP, dass du ja als Prozedure aufrufst mal zum Schluss den DSPJOBLOG auf.

Fuerchau
18-09-06, 13:04
Mal ne ganz blöde Frage:
Vielleicht wird dein Spool ja direkt gedruckt und ist sofort wieder weg ?

Mach vorher einen OVRPRTF ... HOLD(*YES) !

Hast du einen MONMSG in deinem CLP direkt am Anfang ?
Nimm den mal zu Testzwecken raus.

DVE
18-09-06, 13:05
Hallo, folgender Vorschlag im CLP OVRPRTF (..) SPLFOWN(*JOB).
Bei diesen QZD.. Jobs geht die Zuordnung Spoolfile zum Job verloren. Wenn du also CPYSPLF macht, musst du wissen wie der Job tatsächlich heißt. Durch obigen OVRPRTF bleibt die Zuordung Job zu Spoolfile erhalten.
Gruß
DVE