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

= list-batch-job-executions

[[list-batch-job-executions-1]][[GSRFM884]][[list-batch-job-executions]]

== list-batch-job-executions

Lists batch job executions and execution details

[[sthref1340]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-batch-job-executions [--help]
[--target target]
[--executionid execution-id]
[--long={false|true}]
[--output output]
[--header={false|true}]
[instance_ID]
----

[[sthref1341]]

=== Description

The `list-batch-job-executions` subcommand lists batch job executions
and execution details.

[[sthref1342]]

=== 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 job executions and
  execution details. Valid values are as follows:

  `server`;;
    Lists executions for the default server instance `server` and is the
    default value.
  cluster-name;;
    Lists executions for every server instance in the cluster.
  instance-name;;
    Lists executions for a particular server instance.

`--executionid`::
`-x`::
  Specifies the execution ID of a specific batch job execution.
`--long`::
`-l`::
  Displays detailed information about batch job executions. The default
  value is `false`.
`--output`::
`-o`::
  Displays specific details about batch job executions. Use a
  comma-separated list to specify the details to display and their
  order. The values are case-insensitive. A subset of all possible
  headings is displayed by default. +
  Possible values are as follows:

  `jobname`;;
    Displays the name of the job.
  `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.
  `starttime`;;
    Displays the start time of the execution.
  `endtime`;;
    Displays the finish time of the execution.
  `batchstatus`;;
    Displays the status of the execution as set by the batch runtime.
  `exitstatus`;;
    Displays the status of the execution 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.
  `jobparameters`;;
    Displays the properties passed to the batch runtime for the batch
    job execution, listed as name/value pairs.
  `stepcount`;;
    Displays the number of steps in the batch job execution.

`--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`.

[[sthref1343]]

=== Operands

instance_id::
  The ID of the job instance for which to list execution details.

[[sthref1344]]

=== Examples

[[GSRFM885]][[sthref1345]]

==== Example 1   Listing Batch Job Executions

This example lists batch job executions for the default server instance
and displays specific details.

[source]
----
asadmin> list-batch-job-executions -o=jobname,executionid,batchstatus,exitstatus
JOBNAME  EXECUTIONID  BATCHSTATUS  EXITSTATUS
payroll  9            COMPLETED    COMPLETED
bonus    6            FAILED       FAILED
Command list-batch-job-executions executed successfully.
----

[[sthref1346]]

=== Exit Status

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

[[sthref1347]]

=== See Also

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

link:list-batch-jobs.html#list-batch-jobs-1[`list-batch-jobs`(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)]


