PROCEDURE activate_job_environment, actje (
  network_activation, na: boolean = true
  start_hpa, shpa: boolean = true
  status)

*IF $variable(rav$proc_doc,declared)<>'UNKNOWN'

" PURPOSE:
"   This procedure activates system processes which will allow user jobs
"   to execute.
"
" NOTES:
"   Margins have been turned off (set to 0) until all messages can be properly aligned together.  To
"   turn the margins back on replace the 0's with a 2.
*IFEND

*copy rav$margin
*copy rav$system_paths

  "$FORMAT=OFF
  VAR
    rav$event_message: (XDCL) status
    ignore_status: status
    local_status: status
    proc_status: status
  VAREND
  "$FORMAT=ON"

  local_status.normal = true
  proc_status.normal = true

  rap$display_message mm=initiation_messages mn=activating_job_environment m=rav$margin t=$response ..
        status=ignore_status
  rav$margin = rav$margin + 0

  rap$run_initiation_commands icn=job_activation_prolog status=local_status
  IF NOT local_status.normal THEN
    rap$handle_status si=local_status so=proc_status
  IFEND

  $system.include_command 'change_tape_validation validate_tape_access=true enforce_tape_security=false' ..
       status=ignore_status

  rap$establish_job_classes initiate_jobs=true status=local_status
  IF NOT local_status.normal THEN
    rap$handle_status si=local_status so=proc_status
  IFEND

" IF start_hpa THEN
    start_hpa_monitor_job status=local_status
    IF NOT local_status.normal THEN
      rap$handle_status si=local_status so=proc_status
    IFEND
" IFEND

  IF $job(c170_os_type) <> 'NONE' THEN
    activate_dual_state_tasks status=local_status
    IF NOT local_status.normal THEN
      rap$handle_status si=local_status so=proc_status
    IFEND
  IFEND

  IF network_activation THEN
    activate_network status=local_status
    IF NOT local_status.normal THEN
      rap$handle_status si=local_status so=proc_status
    IFEND
  IFEND

  rap$run_initiation_commands icn=job_activation_epilog status=local_status
  IF NOT local_status.normal THEN
    rap$handle_status si=local_status so=proc_status
  IFEND

  rav$margin = rav$margin - 0

  IF proc_status.normal THEN
    rap$display_message mm=initiation_messages mn=job_environment_activated m=rav$margin t=$response ..
          status=ignore_status
  ELSE
    EXIT procedure WITH $status(false, 'RA', rae$errors_occurred_warning, 'ACTIVATE_JOB_ENVIRONMENT')
  IFEND

PROCEND activate_job_environment

