ContentsIndexPreviousNext

"asynch.cbl"

identification division.
program-id. asynch.
author. MJE.
remarks.
  Used to test asynchronous calls.  Need prog2 on server.
working-storage section.
01  h-call-prog2      usage handle.
01  state-of-call      pic s9.
01  call-status      pic xx.
 88  call-complete      value "ok".
01  customer-info.
 05  requested-age.
  10  low-age      pic x(2).
  10  high-age     pic x(2).
 05  age-group-count    pic 9(3).
procedure division.
main-logic.
      move "35" to low-age.
      move "39" to high-age.
      call "C$ASYNCRUN" using h-call-prog2 "prog2" customer-info.
      if return-code not equal zero
           display "CALL ERROR#: " return-code
           accept omitted
           stop run
      end-if.
      display "age-group-count immediately after async call: "
          age-group-count.
      display "Begin sleep for 5".
      call "C$SLEEP" using 5.
      display "End sleep, call asyncpoll".
      perform until call-complete
       call "C$ASYNCPOLL" using
           h-call-prog2 state-of-call customer-info
       if return-code not equal zero
           display "CALL ERROR#: " return-code
           accept omitted
           stop run
       end-if
       if state-of-call = 1
           display "Number of customers between " low-age " and "
                   high-age ": " age-group-count
           set call-complete to true
           accept omitted
       end-if
      end-perform.
      stop run.