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 \{product---name} nodes that do not support remote
communication in a domain

[[sthref1709]]

Synopsis

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

[[sthref1710]]

Description

The `list-nodes-config` subcommand lists all \{product---name} 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
\{product---name} on the host that the node represents
* A comma-separated list of the names of the \{product---name} 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 \{product---name} Nodes

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

[source,oac_no_warn]
----
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 \{product---name} Nodes

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

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

[[GSRFM692]][[sthref1715]]

Example 3   Listing \{product---name} Nodes in Long Format

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

[source,oac_no_warn]
----
asadmin> list-nodes-config --long=true
NODE NAME           TYPE     NODE HOST   INSTALL DIRECTORY    REFERENCED BY  
localhost-domain1   CONFIG   localhost   /export/glassfish3                  
devnode             CONFIG   localhost   /export/glassfish3   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)]


