PDA

View Full Version : Sleep in OPM Cobol



Neptun
07-09-05, 09:00
Hallo!

Hat die AS/400 im OPM Cobol einen "SLEEP" Befehl.
Bei anderen Compilern heißt es z.B.
CALL C$SLEEP USING 100
um 100 Sekunden zu warten.

Ziel ist, dass die Verarbeitung eine gewisse Zeit einfach warten soll. Möchte keine Schleife mit Index oder Subskript programmieren, weil dies sehr prozessorintensiv ist. Gibt es da eine Möglichkeit, dies effektiv zu lösen?

Gruß
Neptun

csupp
07-09-05, 11:35
Ruf doch einen CL-Befehl auf DLYJOB DLY(100) um 100 Sekunden zu warten. In einem RPG Programm geht das, sollte also im Cobol bei der 400 auch gehen, oder??

Gruß

Neptun
07-09-05, 12:17
Ruf doch einen CL-Befehl auf DLYJOB DLY(100) um 100 Sekunden zu warten. In einem RPG Programm geht das, sollte also im Cobol bei der 400 auch gehen, oder??

GrußJa, das geht natürlich. Per QCMDEXC sind CL-Befehle problemlos auch aus OPM Cobol aufrufbar. "Schöner" wäre natürlich ein direkter Cobol-Befehl.

Danke, und Gruß
Neptun

Fuerchau
07-09-05, 12:56
ANSI-COBOL kennt eben keinen Sleep o.ä.

wwg
12-12-06, 20:00
Hallo,
Ja, das geht natürlich. Per QCMDEXC sind CL-Befehle problemlos auch aus OPM Cobol aufrufbar. "Schöner" wäre natürlich ein direkter Cobol-Befehl. Auch wenn die Frage schon anderthalb Jahre alt ist (ich bin neu im Forum), hier meine Lösung (vielleicht ja noch von Interesse): mit ILE-Cobol ein Kürzest-Programm zum Aufruf von 'sleep' schreiben (bei mir: 'SLEEP' in Großbuchstaben) und dann vom OPM-Cobol aufrufen. Ist deutlich schöner als mit QCMDEXEC (wie ich es früher auch gemacht habe). Bei mir sieht es so aus:

------------------------------
process nomonoprc.
identification division.
program-id. sleep.

environment division.

data division.

working-storage section.

linkage section.
01 sleep-time pic 9(9) binary.
01 result pic s9(9) binary.

procedure division using sleep-time result.

alles.
call procedure "sleep"
using by value sleep-time
giving result
goback.
--------------------------

Grüße, Werner Grzemba.