type=page
status=published
title=start-instance
next=start-local-instance.html
prev=start-domain.html
~~~~~~

= start-instance

[[start-instance-1]][[GSRFM00236]][[start-instance]]

== start-instance

Starts a {productName} instance

[[sthref2133]]

=== Synopsis

[source]
----
asadmin [asadmin-options] start-instance [--help]
[--debug={false|true}] [--sync={normal|full|none}]
instance-name
----

[[sthref2134]]

=== Description

The `start-instance` subcommand starts a {productName} instance.
This subcommand requires the Distributed Component Object Model (DCOM)
remote protocol or secure shell (SSH) to be configured on the machine
where the domain administration server (DAS) is running and on the
machine where the instance resides.

[NOTE]
====
DCOM or SSH is not required if the instance resides on a node of type
`CONFIG` that represents the local host. A node of type `CONFIG` is not
enabled for remote communication over DCOM or SSH.
====

You may run this subcommand from any machine that can contact the DAS.

The subcommand can start any {productName} instance, regardless of
how the instance was created. For example, this subcommand can start an
instance that was created by using the
link:create-local-instance.html#create-local-instance-1[`create-local-instance`(1)]
subcommand.

This command is supported in remote mode only.

[[sthref2135]]

=== 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.
`--debug`::
  Specifies whether the instance is started with
  http://java.sun.com/javase/technologies/core/toolsapis/jpda/[Java
  Platform Debugger Architecture (JPDA)]
  (http://www.oracle.com/technetwork/java/javase/tech/jpda-141715.html)
  debugging enabled. +
  Possible values are as follows:

  `true`;;
    The instance is started with JPDA debugging enabled and the port
    number for JPDA debugging is displayed.
  `false`;;
    The instance is started with JPDA debugging disabled (default).

`--sync`::
  The type of synchronization between the DAS and the instance's files
  when the instance is started. +
  Possible values are as follows:

  `none`;;
    The DAS does not synchronize the instance's files with any changes.
    This type of synchronization minimizes the time that is required to
    start the instance.
  `normal`;;
    The DAS synchronizes the instance with changes since the last
    synchronization as follows:
+
--
    * For the `config` directory, the DAS synchronizes the instance with all changes.
    * For the `applications` directory and `docroot` directory, only a
      change to a top-level subdirectory causes the DAS to synchronize all
      files under that subdirectory.
--
+
If a file below a top level subdirectory is changed without a change
    to a file in the top level subdirectory, full synchronization is
    required. In normal operation, files below the top level
    subdirectories of these directories are not changed. If an
    application is deployed and undeployed, full synchronization is not
    necessary to update the instance with the change. +
    This value is the default.
  `full`;;
    The DAS synchronizes the instance with all of the instance's files,
    regardless of whether the files have changed since the last
    synchronization. This type of synchronization might delay the
    startup of the instance while the DAS updates all files in the
    instance's directories.

[[sthref2136]]

=== Operands

instance-name::
  The name of the {productName} instance to start.

[[sthref2137]]

=== Examples

[[GSRFM761]][[sthref2138]]

==== Example 1   Starting a {productName} Instance

This example starts the {productName} instance `pmdsa1`.

[source]
----
asadmin> start-instance pmdsa1
Waiting for the server to start ..............................
Successfully started the instance: pmdsa1
instance Location: /export/glassfish7/glassfish/nodes/localhost/pmdsa1
Log File: /export/glassfish7/glassfish/nodes/localhost/pmdsa1/logs/server.log
Admin Port: 24848
Command start-local-instance executed successfully.
The instance, pmdsa1, was started on host localhost

Command start-instance executed successfully.
----

[[GSRFM762]][[sthref2139]]

==== Example 2   Starting a {productName} Instance With JPDA Debugging
Enabled

This example starts the {productName} instance `ymlsa1` with JPDA
debugging enabled.

[source]
----
asadmin> start-instance --debug=true ymlsa1
Waiting for the server to start ...............................
Successfully started the instance: ymlsa1
instance Location: /export/glassfish7/glassfish/nodes/localhost/ymlsa1
Log File: /export/glassfish7/glassfish/nodes/localhost/ymlsa1/logs/server.log
Admin Port: 24849
Debugging is enabled. The debugging port is: 29010
Command start-local-instance executed successfully.
The instance, ymlsa1, was started on host localhost

Command start-instance executed successfully.
----

[[sthref2140]]

=== Exit Status

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

[[sthref2141]]

=== See Also

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

link:create-instance.html#create-instance-1[`create-instance`(1)],
link:create-local-instance.html#create-local-instance-1[`create-local-instance`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)],
link:setup-ssh.html#setup-ssh-1[`setup-ssh`(1)],
link:start-domain.html#start-domain-1[`start-domain`(1)],
link:start-local-instance.html#start-local-instance-1[`start-local-instance`(1)],
link:stop-domain.html#stop-domain-1[`stop-domain`(1)],
link:stop-instance.html#stop-instance-1[`stop-instance`(1)],
link:stop-local-instance.html#stop-local-instance-1[`stop-local-instance`(1)],
link:validate-dcom.html#validate-dcom-1[`validate-dcom`(1)]

Java Platform Debugger Architecture (JPDA)
(`http://www.oracle.com/technetwork/java/javase/tech/jpda-141715.html`)


