View previous topic :: View next topic
|
Author |
Message |
jerryte
Active User
Joined: 29 Oct 2010 Posts: 202 Location: Toronto, ON, Canada
|
|
|
|
Has anyone used the LE routine CEE3DLY to invoke a delay in a program? Any problems or bad experiences with it? |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
Introduced with z/OS 1.9, CEE3DLY uses seconds for the DELAY interval, whereas, CEE3DLYM uses milliseconds for the DELAY interval.
Not aware of any issues, but the more finite the interval (milliseconds), the more you're in control.
1 second = 1000 milliseconds.
Bill |
|
Back to top |
|
|
jerryte
Active User
Joined: 29 Oct 2010 Posts: 202 Location: Toronto, ON, Canada
|
|
|
|
Thanks. I checked the reference manual. The other routine is called CEEDLYM. Not sure why IBM decided to drop the "3" out of the name. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
keep the program name to 7 chars. |
|
Back to top |
|
|
vadim vashchenko
New User
Joined: 21 Mar 2011 Posts: 13 Location: usa
|
|
|
|
Works with no problems in batch. I know I can call it from CICS, but EXEC CICS DELAY is more convenient... |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
I would NOT encourage usage of a DELAY API in CICS, although there are times when there is no other choice.
In the CICS DELAY, the minimum interval is one second, which is an eternity in CICS.
Having said this, I have never tried to use CEEDLYM in CICS, which has a millisecond interval. But, in a CICS DELAY API, another asynchronous task can CANCEL this DELAY early, via the DELAYED Tasks REQID and TRANSID, which needs to be known by the asynchronous task. That would be ideal to prematurely cancel the DELAY. You want throughput to be as quick and uninterrupted in CICS.
Just my 2 cents....
Bill |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
Hi,
I am using this service CEE3DLY for issuing a wait in my cobol program. It seems to be working fine as expected.
But i have found the following definition in the IBM workshop "CEE3DLY provides a service for Language Environment-conforming applications that suspends the processing of the active enclave for a specified number of seconds."
Can you please let me know what an active enclave is?
If i am using a cobol program and JCL, is it just that the job waits for the specified time.
Thanks,
Surya |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
surya anem wrote: |
Can you please let me know what an active enclave is? |
"enclave" means A distinctly bounded area enclosed within a larger unit -- so if you're using a sub-program (PGMSURYA), for instance, to issue the delay then, when PGMSURYA is called, this sub-program, PGMSURYA, is active, in memory, so it's an "active enclave" for the given process.
They are manuals, so they try to use general-terms.
Hope this helps. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
In issuing a DELAY in CICS (using the CICS-API), you can specify a well-known "REQID". With that, another concurrent task can CANCEL this DELAY early, using the REQID instead of waiting until the DELAY interval expires.
Of course, the issuing task can't cancel itself....
Bill |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
The Workload Manager manual defines it as
Quote: |
enclave. A transaction that can span multiple dispatchable units (SRBs and tasks) in one or more address spaces and is reported on and managed as a unit. |
|
|
Back to top |
|
|
|