type=page
status=published
title=list-configs
next=list-connector-connection-pools.html
prev=list-components.html
~~~~~~
list-configs
============

[[list-configs-1]][[GSRFM00156]][[list-configs]]

list-configs
------------

lists named configurations

[[sthref1399]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] list-configs [--help] 
[target]
----

[[sthref1400]]

Description

The `list—configs` subcommand lists named configurations in the
configuration of the domain administration server (DAS). The list can be
filtered by cluster, instance, or named configuration.

This subcommand is supported in remote mode only.

[[sthref1401]]

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.

[[sthref1402]]

Operands

target::
  Filters the list of configurations. Valid values are as follows: +
  `domain`;;
    Lists all named configurations in the current domain.
  cluster-name;;
    Lists the named configuration that defines the configuration of
    instances in the specified cluster.
  instance-name;;
    Lists the named configuration that defines the configuration of the
    specified instance.
  configuration-name;;
    Lists the specified named configuration. Use this option to
    determine whether a named configuration exits.

[[sthref1403]]

Examples

[[GSRFM648]][[sthref1404]]

Example 1   Listing All Named Configurations in a Domain

This example lists all named configurations in the current domain.

[source,oac_no_warn]
----
asadmin> list-configs
server-config
default-config
pmdclust-config
pmdsharedconfig
pmdcpinst-config
ymlclust-config
il1-config
il2-config

Command list-configs executed successfully.
----

[[sthref1405]]

Exit Status

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

[[sthref1406]]

See Also

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

link:copy-config.html#copy-config-1[`copy-config`(1)],
link:delete-config.html#delete-config-1[`delete-config`(1)]

link:configuration.html#configuration-5asc[`configuration`(5ASC)]


