×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Thanks Scott, this is great. (More methods then I'd realized)

Thanks to everyone else who took the time to reply.

Andy


----- Original Message -----
From: "Scott Klement" <klemscot@xxxxxxxxxxxx>
To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
Sent: Wednesday, February 26, 2003 4:18 PM
Subject: Re: DLYJOB in RPG


>
> On Wed, 26 Feb 2003, Andy Hautamaki wrote:
> >
> > I have a series of batch jobs that if they get a record lock on update
will
> > call a CLP program and pass it how long to do a DLYJOB and then after
the
> > 'Delay' my RPG programs will try to retrieve the record again.
> >
>
> Well... you could just do OVRDBF FILE(MYFILE) WAITRCD(xxx), and not have
> to do a delay at all...  (Unless I don't understand your question
> correctly)
>
> > My question is, instead of doing this 'DLYJOB' from a CLP can it be done
> > directly from within RPG? ........ API maybe????
> >
>
> If for some reason, you don't want to use the WAITRCD() method above,
> here's a few ways of doing delays in an RPG program.   This is an actual
> program that compiles and runs :)
>
>      H DFTACTGRP(*NO) BNDDIR('QC2LE')
>
>      D QcmdExc         PR                  extpgm('QCMDEXC')
>      D   command                    200A   const
>      D   length                      15P 5 const
>
>      d cmd             s            200A
>      D len             s             15P 5
>
>      D select          PR            10I 0 extproc('select')
>      D   max                         10I 0 value
>      d   read                          *   value
>      d   write                         *   value
>      d   except                        *   value
>      d   timeout                       *   value
>
>      D tv              ds
>      D   tv_sec                      10I 0
>      D   tv_usec                     10I 0
>
>      D sleep           PR            10U 0 extproc('sleep')
>      D   seconds                     10U 0 value
>
>      D usleep          PR            10I 0 extproc('usleep')
>      D   microsecs                   10U 0 value
>
>       *
>       * QcmdExc can run just about any command that you
>       * can type from the command-line, including DLYJOB
>       *
>      c     'one'         dsply
>      c                   callp     QcmdExc('DLYJOB DLY(1)': 200)
>
>       *
>       * Or, if you're feeling nostalgic, here's another way to
>       * call QCMDEXC
>       *
>      c     'two'         dsply
>      c                   eval      cmd = 'DLYJOB DLY(1)'
>      c                   eval      len = 200
>
>      c                   call      'QCMDEXC'
>      c                   parm                    cmd
>      c                   parm                    len
>
>       *
>       * Another exciting way would be to use the select() API.
>       * This has the advantage that you can wait for strange time
>       * values... such as 1.8 seconds...
>       *
>      c     'three'       dsply
>      c                   eval      tv_sec = 1
>      c                   eval      tv_usec = 800000
>      c                   callp     select(0: *NULL: *NULL: *NULL:
%addr(tv))
>
>       *
>       *  Then, there's the ILE C runtime  (requires BNDDIR('QC2LE'))
>       *
>      c     'four'        dsply
>      c                   callp     sleep(1)
>
>       *
>       *  Or, the ILE C runtime that can do things in microseconds
>       *    (also requires BNDDIR('QC2LE'))
>       *
>      c     'five'        dsply
>      c                   callp     usleep(1000000)
>
>      c                   eval      *inlr = *on
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.