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

[[list-batch-job-steps-1]][[GSRFM895]][[list-batch-job-steps]]

list-batch-job-steps
--------------------

lists steps for a specific batch job execution

[[sthref1356]]

Synopsis

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

[[sthref1357]]

Description

The `list-batch-job-steps` subcommand lists steps for a specific batch
job execution.

[[sthref1358]]

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 steps. Valid values
  are as follows: +
  `server`;;
    Lists steps for the default server instance `server` and is the
    default value.
  cluster-name;;
    Lists steps for every server instance in the cluster.
  instance-name;;
    Lists steps for a particular server instance.
`--long`::
`-l`::
  Displays detailed information about batch job steps. The default value
  is `false`.
`--output`::
`-o`::
  Displays specific details about batch job steps. 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: +
  `stepname`;;
    Displays the name of the step.
  `stepid`;;
    Displays the step ID.
  `starttime`;;
    Displays the start time of the step.
  `endtime`;;
    Displays the finish time of the step.
  `batchstatus`;;
    Displays the status of the step as set by the batch runtime.
  `exitstatus`;;
    Displays the status of the step 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.
  `stepmetrics`;;
    Displays metrics for the step.
  `value`;;
    Displays a value for each step metric. The value represents the
    number of items read, written, committed, and so on.
`--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`.

[[sthref1359]]

Operands

execution_id::
  The ID of the execution for which to list batch job steps and details.

[[sthref1360]]

Examples

[[GSRFM896]][[sthref1361]]

Example 1   Listing Batch Job Steps

This example lists batch job steps and specific step details for a job
execution with the execution ID of `7`. The target is the default server
instance.

Some lines of output are omitted from this example for readability.

[source,oac_no_warn]
----
asadmin> list-batch-job-steps o=stepname,stepid,batchstatus,stepmetrics 7
STEPNAME   STEPID   BATCHSTATUS   STEPMETRICS
prepare    7        COMPLETED     METRICNAME          VALUE
                                  READ_COUNT          8
                                  WRITE_COUNT         8
                                  PROCESS_SKIP_COUNT  0
process    8        COMPLETED     METRICNAME          VALUE
                                  READ_COUNT          8
                                  WRITE_COUNT         8
                                  PROCESS_SKIP_COUNT  0
...
Command list-batch-job-steps executed successfully.
----

[[sthref1362]]

Exit Status

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

[[sthref1363]]

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-executions.html#list-batch-job-executions-1[`list-batch-job-executions`(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)]


