type=page
status=published
title=list-batch-jobs
next=list-batch-job-steps.html
prev=list-batch-job-executions.html
~~~~~~
list-batch-jobs
===============

[[list-batch-jobs-1]][[GSRFM861]][[list-batch-jobs]]

list-batch-jobs
---------------

lists batch jobs

[[sthref1348]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] list-batch-jobs [--help]
[--target target]
[--long={false|true}]
[--output output]
[--header={false|true}]
[job_name]
----

[[sthref1349]]

Description

The `list-batch-jobs` subcommand lists batch jobs and job details.

[[sthref1350]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--target`::
  Specifies the target for which to list batch jobs and job details.
  Valid values are as follows: +
  `server`;;
    Lists batch jobs for the default server instance `server` and is the
    default value.
  cluster-name;;
    Lists batch jobs for every server instance in the cluster.
  instance-name;;
    Lists batch jobs for a particular server instance.
`--long`::
`-l`::
  Displays detailed information about batch jobs. The default value is
  `false`.
`--output`::
`-o`::
  Displays specific details about batch jobs. Use a comma-separated list
  to specify the details to display and their order. The values are
  case-insensitive. The `jobname` and `instancecount` column headings
  are displayed by default. +
  Possible values are as follows: +
  `jobname`;;
    Displays the name of the job.
  `appname`;;
    Displays the name of the application.
  `instancecount`;;
    Displays the number of job instances.
  `instanceid`;;
    Displays the ID assigned to the job instance.
  `executionid`;;
    Displays the ID assigned to the execution of the batch job. A new
    execution is created the first time a job is started and every time
    the existing execution is restarted.
  `batchstatus`;;
    Displays the status of the job as set by the batch runtime.
  `starttime`;;
    Displays the start time of the job.
  `endtime`;;
    Displays the finish time of the job.
  `exitstatus`;;
    Displays the status of the job as set by the Job XML for the job or
    by the batch application. By default, the exit status and the batch
    status are the same unless the exit status is explicitly overridden.
`--header`::
`-h`::
  Specifies whether column headings are displayed when the `--long`
  option is used. The default value is `true`. To suppress the headings,
  set the `--header` option to `false`.

[[sthref1351]]

Operands

job_name::
  The name of the job for which to list details.

[[sthref1352]]

Examples

[[GSRFM862]][[sthref1353]]

Example 1   Listing Batch Jobs

This example lists batch jobs for the default server instance.

[source,oac_no_warn]
----
asadmin> list-batch-jobs
JOBNAME  INSTANCECOUNT 
payroll  9
bonus    6
Command list-batch-jobs executed successfully.
----

[[sthref1354]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1355]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:list-batch-job-executions.html#list-batch-job-executions-1[`list-batch-job-executions`(1)],
link:list-batch-job-steps.html#list-batch-job-steps-1[`list-batch-job-steps`(1)],
link:list-batch-runtime-configuration.html#list-batch-runtime-configuration-1[`list-batch-runtime-configuration`(1)],
link:set-batch-runtime-configuration.html#set-batch-runtime-configuration-1[`set-batch-runtime-configuration`(1)]


