PROCEDURE activate_mail_gateway (
  job_class, jc                 : name = $job_default(job_class, batch)
  load_map, lm                  : file = $optional
  log_options, lo               : any of
                                    key
                                      all, none
                                    keyend
                                   anyend = none
  status
  )


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

"   This request initiates the MAILVE_MG server application as a NOS/VE job.
*IFEND

  VAR
    application_job_name: name = $name('MAILVE_MG'//$mainframe(id))
    ignore_status: status
    log_options_s: string
    mail_library_4: file = $system.mailve_v2.bound_product_ring_4
    mail_library_d: file = $system.mailve_v2.bound_product_ring_d
    mailve_mg_job_log: file = $system.mailve_v2.mailve_mg_job_log
    manna_status: status
    map_file: string
    options: string
    select_status: status
    starting_procedure_name: name = mvp$mta_server
    submit_status: status
    system_job_name: name
    task_parameters: string = 'MTA_TYPE=GATEWAY'
  VAREND

  IF (NOT $file(mail_library_4  permanent)) OR  ..
        (NOT $file(mail_library_d  permanent)) THEN
    put_line lines=('  ', ' --ERROR-- Unable to activate:  MAILVE is not installed.') ..
          o=$response
    EXIT_PROC
  IFEND

  MANAGE_JOBS
    SELECT_JOB login_user=$SYSTEM login_family=$SYSTEM ..
      name=application_job_name job_state=(deferred, queued, initiated) ..
      status=select_status
    IF select_status.normal THEN
      IF $size(jmv$selected_jobs) > 0 THEN
        put_line ' MAILVE_MG is already active as job:' ..
          o=$response
        display_value jmv$selected_jobs o=$response
        EXIT procedure
      IFEND
    ELSE
      EXIT procedure WITH select_status
    IFEND
  QUIT

  IF $specified(load_map) THEN
    map_file = $string(load_map)
    options = 'all'
  ELSE
    map_file = '$null'
    options = 'none'
  IFEND

  log_options_s = 'log_options=' // $string(log_options)

  JOB user_job_name=application_job_name ..
      job_class=job_class ..
      job_recovery_disposition=terminate ..
      job_abort_disposition=terminate ..
      output_disposition=mailve_mg_job_log ..
      substitution_mark='?' ..
      system_job_name=system_job_name ..
      status=submit_status

    SOU capability=(system_administration, system_operation)

      TASK r=4
        execute_task library=(?mail_library_4?, ?mail_library_d?) ..
            starting_procedure=?starting_procedure_name? ..
            parameters='?task_parameters? ?log_options_s?' ..
            load_map=?map_file? ..
            load_map_options=?options?
      TASKEND

    QUIT
  JOBEND

  IF submit_status.normal THEN
    put_line ' MAILVE_MG has been activated as job  '//..
$string(application_job_name)//' ('//$string(system_job_name)//').' ..
        o=$response
  ELSE
    put_line ' --ERROR-- Unable to submit job for MAILVE_MG.' ..
      o=$response
  IFEND
  EXIT procedure WITH submit_status WHEN NOT submit_status.normal

PROCEND activate_mail_gateway
