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

= list-nodes-dcom

[[list-nodes-dcom-1]][[GSRFM693]][[list-nodes-dcom]]

== list-nodes-dcom

Lists all {productName} nodes that support communication over DCOM
in a domain

[[sthref1718]]

=== Synopsis

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

[[sthref1719]]

=== Description

The `list-nodes-dcom` subcommand lists all {productName} nodes that
support communication over the Distributed Component Object Model (DCOM)
remote protocol. The DCOM protocol is available only on Windows systems.

[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 `DCOM`
* 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.

[[sthref1720]]

=== 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).

[[sthref1721]]

=== Examples

[[GSRFM694]][[sthref1722]]

==== Example 1   Listing {productName} Nodes

This example displays the name, type, and host for all {productName}
nodes that support communication over DCOM in a domain.

[source]
----
asadmin> list-nodes-dcom
xkyd  DCOM  xkyd.example.com
wpmdl2  DCOM  wpmdl2.example.com
wpmdl1  DCOM  wpmdl1.example.com
Command list-nodes-dcom executed successfully.
----

[[GSRFM695]][[sthref1723]]

==== 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 support communication
over DCOM in a domain.

[source]
----
asadmin> list-nodes-dcom --terse=true
xkyd
wpmdl2
wpmdl1
----

[[GSRFM696]][[sthref1724]]

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

This example lists the {productName} nodes that support
communication over DCOM in a domain in long format.

[source]
----
asadmin> list-nodes-dcom --long=true
NODE NAME    TYPE   NODE HOST            INSTALL DIRECTORY   REFERENCED BY
xkyd         DCOM   xkyd.example.com     C:\glassfish7
wpmdl2       DCOM   wpmdl2.example.com   C:\glassfish7       wdi2
wpmdl1       DCOM   wpmdl1.example.com   C:\glassfish7       wdi1
Command list-nodes-dcom executed successfully.
----

[[sthref1725]]

=== Exit Status

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

[[sthref1726]]

=== 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-config.html#list-nodes-config-1[`list-nodes-config`(1)],
link:#list-nodes-dcom-1[`list-nodes-dcom`(1)]


