type=page
status=published
title=create-node-dcom
next=create-node-ssh.html
prev=create-node-config.html
~~~~~~
create-node-dcom
================

[[create-node-dcom-1]][[GSRFM510]][[create-node-dcom]]

create-node-dcom
----------------

creates a node that is enabled for communication over DCOM

[[sthref453]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-node-dcom [--help]
--nodehost node-host
[--installdir as-install-parent] [--nodedir node-dir] 
[--windowsuser windows-user] [--windowsdomain windows-domain]
[--force={false|true}]
[--install={false|true}] [--archive archive]
node-name
----

[[sthref454]]

Description

The `create-node-dcom` subcommand creates a node that is enabled for
communication over the Distributed Component Object Model (DCOM) remote
protocol. The DCOM protocol is available only on Windows systems.

A node represents a host on which the \{product---name} software is
installed. A node must exist for every host on which \{product---name}
instances reside.

In a DCOM-enabled network, the domain administration server (DAS)
contacts a node's host through the DCOM connector to manage
\{product---name} instances that reside on the node. DCOM is used only
for communications between hosts. DCOM is never used for communications
within a single host.

By default, the subcommand fails and the node is not created if the DAS
cannot contact the node's host through DCOM. To force the node to be
created in the DAS configuration even if the host cannot be contacted
through DCOM, set the `--force` option to `true`.

The `create-node-dcom` subcommand cannot create a node that represents
the local host, that is, the host on which the subcommand is run. The
subcommand fails regardless of how the local host is specified, for
example, by using the keyword `localhost`, the Internet Protocol (IP)
address of the host, or the host name.

This subcommand is supported in remote mode only.

[[sthref455]]

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.
`--nodehost`::
  The name of the host that the node represents. The name of the host
  must be specified. Otherwise, an error occurs.
`--installdir`::
  The full path to the parent of the base installation directory of the
  \{product---name} software on the host, for example, `C:\glassfish3`.
  The default is the parent of the default base installation directory
  of the \{product---name} software for the DAS. This default is useful
  only if \{product---name} is installed in the same location on all
  hosts.
`--nodedir`::
  The path to the directory that is to contain \{product---name}
  instances that are created on the node. The default is
  as-install`\nodes`, where as-install is the base installation
  directory of the \{product---name} software on the host. If a relative
  path is specified, the path is relative to the as-install directory.
`--windowsuser`::
`-w`::
  The user on this node's host that is to run the process for connecting
  to the host through DCOM. The default is the user that is running the
  DAS process. If the `--nodehost` option is set to `localhost-`domain,
  the `--windowsuser` option is ignored
`--windowsdomain`::
`-d`::
  The name of the Windows domain that contains the user that the
  `--windowsuser` option specifies. The default is the name of the host
  on which the subcommand is run.
`--force`::
  Specifies whether the node is created in the DAS configuration even if
  validation of the node's parameters fails. To validate a node's
  parameters, the DAS must be able to contact the node's host through
  DCOM. Possible values are as follows: +
  `false`;;
    The node is not created if validation of the node's parameters fails
    (default).
  `true`;;
    The node is created even if validation of the node's parameters
    fails.
`--install`::
  Specifies whether the subcommand shall install the \{product---name}
  software on the host that the node represents. +
  Possible values are as follows: +
  `false`;;
    The subcommand shall not install the \{product---name} software on
    the host (default).
  `true`;;
    The subcommand shall install the \{product---name} software on the
    host.
`--archive`::
  The absolute path to the archive file of the \{product---name}
  software that is to be installed. If this option is omitted and the
  `--install` is `true`, the subcommand creates a ZIP archive of the
  \{product---name} software from the installation where this subcommand
  is run. The archive does not contain the `domains` directory or the
  `nodes` directory.

[[sthref456]]

Operands

node-name::
  The name of the node. +
  The name must meet the following requirements: +
  * The name may contain only ASCII characters.
  * The name must start with a letter, a number, or an underscore.
  * The name may contain only the following characters:
  ** Lowercase letters
  ** Uppercase letters
  ** Numbers
  ** Hyphen
  ** Period
  ** Underscore
  * The name must be unique in the domain and must not be the name of
  another node, a cluster, a named configuration, or a \{product---name}
  instance.
  * The name must not be `domain`, `server`, or any other keyword that
  is reserved by \{product---name}.

[[sthref457]]

Examples

[[GSRFM511]][[sthref458]]

Example 1   Creating a Node

This example creates the node `wpmdl1` for the host
`wpmdl1.example.com`. By default, the parent of the base installation
directory of the \{product---name} software is `C:\glassfish3`.

[source,oac_no_warn]
----
asadmin> create-node-dcom 
--nodehost wpmdl1.example.com wpmdl1
Command create-node-dcom executed successfully.
----

[[GSRFM829]][[sthref459]]

Example 2   Creating a Node With a Specific Installation Directory

This example creates the node `wyml1` for the host `wyml1.example.com`.
The parent of the base installation directory of the \{product---name}
software on this host is `C:\middleware\glassfish3`.

[source,oac_no_warn]
----
asadmin> create-node-dcom --installdir C:\middleware\glassfish3 
--nodehost wyml1.example.com wyml1
Command create-node-dcom executed successfully.
----

[[GSRFM512]][[sthref460]]

Example 3   Forcing the Creation of a Node

This example forces the creation of node `xkyd` for the host
`xkyd.example.com`. The node is created despite the failure of the DAS
to contact the host `xkyd.example.com` to validate the node's
parameters.

[source,oac_no_warn]
----
asadmin> create-node-dcom --force --nodehost xkyd.example.com xkyd
Warning: some parameters appear to be invalid.
com.sun.enterprise.universal.process.WindowsException: Connection in error
Continuing with node creation due to use of --force.
Command create-node-dcom executed successfully.
----

[[sthref461]]

Exit Status

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

[[sthref462]]

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-ssh.html#create-node-ssh-1[`create-node-ssh`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:install-node-dcom.html#install-node-dcom-1[`install-node-dcom`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:uninstall-node-dcom.html#uninstall-node-dcom-1[`uninstall-node-dcom`(1)],
link:update-node-ssh.html#update-node-dcom-1[`update-node-dcom`(1)]


