type=page
status=published
title=list-nodes-config
next=list-nodes-dcom.html
prev=list-nodes.html
~~~~~~

= list-nodes-config

[[list-nodes-config-1]][[GSRFM00188]][[list-nodes-config]]

== list-nodes-config

Lists all {productName} nodes that do not support remote
communication in a domain

[[sthref1709]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-nodes-config [--help]
[--long={false|true}]
----

[[sthref1710]]

=== Description

The `list-nodes-config` subcommand lists all {productName} nodes
that do not support remote communication in a domain.

[NOTE]
====
To list all nodes in a domain regardless of the type of the node, run
the link:list-nodes.html#list-nodes-1[`list-nodes`(1)] subcommand.
====

By default, the subcommand displays the following information for each
node that is listed:

* The name of the node
* The type of the node, which is `CONFIG`
* The name of the host that the node represents

The `--long` option of the subcommand specifies whether the nodes are
listed in long format. In long format, the following additional
information about each node is displayed:

* The path to the parent of the base installation directory of
{productName} on the host that the node represents
* A comma-separated list of the names of the {productName} instances
that reside on the node

If the `--terse` option of the
link:asadmin.html#asadmin-1m[`asadmin`(1M)] utility is `true` and the
`--long` option of the subcommand is `false`, the subcommand lists only
the name of each node.

This subcommand is supported in remote mode only.

[[sthref1711]]

=== 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.
`--long`::
`-l`::
  Specifies whether the nodes are listed in long format. +
  Possible values are as follows:

  `true`;;
    The nodes are listed in long format.
  `false`;;
    The nodes are listed in short format (default).

[[sthref1712]]

=== Examples

[[GSRFM690]][[sthref1713]]

==== Example 1   Listing {productName} Nodes

This example displays the name, type, and host for all {productName}
nodes that do not support remote communication in the domain `domain1`.

[source]
----
asadmin> list-nodes-config
localhost-domain1  CONFIG  localhost
devnode  CONFIG  localhost
Command list-nodes-config executed successfully.
----

[[GSRFM691]][[sthref1714]]

==== Example 2   Listing Only the Names of {productName} Nodes

This example uses the `--terse` option of the `asadmin` utility to list
only the names of the {productName} nodes that do not support remote
communication in the domain `domain1`.

[source]
----
asadmin> list-nodes-config --terse=true
localhost-domain1
devnode
----

[[GSRFM692]][[sthref1715]]

==== Example 3   Listing {productName} Nodes in Long Format

This example lists the {productName} nodes that do not support
remote communication in the domain `domain1` in long format.

[source]
----
asadmin> list-nodes-config --long=true
NODE NAME           TYPE     NODE HOST   INSTALL DIRECTORY    REFERENCED BY
localhost-domain1   CONFIG   localhost   /export/glassfish7
devnode             CONFIG   localhost   /export/glassfish7   pmdsa1
Command list-nodes-config executed successfully.
----

[[sthref1716]]

=== Exit Status

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

[[sthref1717]]

=== See Also

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

link:create-node-config.html#create-node-config-1[`create-node-config`(1)],
link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:create-node-ssh.html#create-node-ssh-1[`create-node-ssh`(1)],
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:delete-node-ssh.html#delete-node-ssh-1[`delete-node-ssh`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:list-nodes-dcom.html#list-nodes-dcom-1[`list-nodes-dcom`(1)],
link:list-nodes-ssh.html#list-nodes-ssh-1[`list-nodes-ssh`(1)]


