PDA

View Full Version : Subsystem-Job endet immer automatisch nach ca. 3,5 Stunden



JoergHamacher
24-01-19, 09:10
Hallo,

wir haben auf einer Kundenmaschine ein eigenes Subsystem (V7R3) im Einsatz, in dem ein einziger Job läuft. Dieser Job arbeitet in einer Dauerschleife und fragt permanent bei einem Webshop nach,ob dort Aufträge vorhanden sind, bzw. schickt Kunden- und Artikeldaten in regelmäßigen Intervallen an den Shop. Das funktioniert auch alles bestens.

Das Problem ist nur, dass der Job innerhalb des Subsystems immer beinahe exakt nach 3 Stunden und 40 Minuten einfach verschwindet. Es gibt ein ca. 5000 Seiten langes Job-Protokoll, in dem keine Fehler protokolliert sind und der Beendigungscode ist immer "0".

Wir kommen nicht dahinter, wo die Ursache liegen könnte.
An welchen Stellen kann man denn noch nachsehen, wenn alle verwendeten Dateien auf *NOMAX stehen und auch die Jobnachrichtenwarteschlange auf *WRAP?

Das Subsystem wird im CL gestartet, der Subsystem-Job dann auch:
STRSBS SBSD(WEBSHOP)
SBMJOB JOB(WEBSHOP) JOBD(WWS400_SBS/WEBSHOP) +
JOBQ(WEBSHOP) RTGDTA(WEBSHOP_RUN) +
INLLIBL(*CURRENT)

Der Aufruf erfolgt im Job-Scheduler.


Vielen Dank im Voraus,
Jörg

Fuerchau
24-01-19, 17:38
Der Grund ist das Joblog bereits.
Wenn nämlich das Joblog in der Größe beschränkt ist und kein *PRTWRAP für die Aktion definiert ist, endet der Job wenn das Joblog voll ist.

Nun kann man entweder PRTWRAP verwenden, was allerdings auch lästig sein kann, alle 4 Stunden ein Joblog zu bekommen.

Man kann allerdings auch, wenn ein Arbeitsschritt erfolgreich beendet ist und man wieder auf den DLYJOB o.ä. geht, per RMVMSG alle alten Nachrichten des Joblogs entfernen.

hel400
25-01-19, 10:57
Der Grund ist das Joblog bereits.
Wenn nämlich das Joblog in der Größe beschränkt ist und kein *PRTWRAP für die Aktion definiert ist, endet der Job wenn das Joblog voll ist.

Nun kann man entweder PRTWRAP verwenden, was allerdings auch lästig sein kann, alle 4 Stunden ein Joblog zu bekommen.

Man kann allerdings auch, wenn ein Arbeitsschritt erfolgreich beendet ist und man wieder auf den DLYJOB o.ä. geht, per RMVMSG alle alten Nachrichten des Joblogs entfernen.

?? er schreibt doch, dass das Joblog auf *WRAP steht (und nicht *NOWRAP), daher werden die alten Einträge überschrieben.
Erst bei *NOWRAP wird der Job beendet

Fuerchau
25-01-19, 11:02
Den Status zur Laufzeit prüfen. Was in der JOBD steht, kann ja zur Laufzeit geändert werden.

Robi
25-01-19, 13:03
Klingt vielleicht etwas blöd ... aber hast du mal geprüft ob die "Dauerschleife"

z.B. 1320 mal mit einem dly von 10 definiert ist (o.ä.)

Das soll sich so mach einer auch schon mal verrechnet haben ...(Erfahrung)

VG
Robi

holgerscherer
25-01-19, 17:11
ein CHGJOB JOB(*) LOG(4 00 *SECLVL) LOGCLPGM(*YES) am Anfang,
und ein DSPJOBLOG am Ende, samt Kopie der letzten 10 Zeilen; das wäre viel dienlicher als lange Diskussionen.