type=page
status=published
title=restart-domain
next=restart-instance.html
prev=remove-library.html
~~~~~~

= restart-domain

[[restart-domain-1]][[GSRFM00218]][[restart-domain]]

== restart-domain

Restarts the DAS of the specified domain

[[sthref1978]]

=== Synopsis

[source]
----
asadmin [asadmin-options] restart-domain [--help]
[--debug ={true|false}]
[--domaindir domaindir]
[--force={true|false}] [--kill={false|true}]
[domain-name]
----

[[sthref1979]]

=== Description

The `restart-domain` subcommand stops and then restarts the domain
administration server (DAS) of the specified domain. If a domain is not
specified, the default domain is assumed. If the domains directory
contains two or more domains, the domain-name operand must be specified.
If the DAS is not already running, the subcommand attempts to start it.

The `restart-domain` subcommand does not exit until the subcommand has
verified that the domain has been stopped and restarted.

This subcommand is supported in local or remote mode. If you specify a
host name, the subcommand assumes you are operating in remote mode,
which means you must correctly authenticate to the remote server. In
local mode, you normally do not need to authenticate to the server as
long as you are running the subcommand as the same user who started the
server.

[[sthref1980]]

=== 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 domain is restarted 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 domain is restarted with JPDA debugging enabled and the port
    number for JPDA debugging is displayed.
  `false`;;
    The domain is restarted with JPDA debugging disabled (default).

+
The default is the current setting of this option for the domain that
  is being restarted.
`--domaindir`::
  The domain root directory, which contains the directory of the domain
  that is to be restarted. If specified, the path must be accessible in
  the file system. The default location of the domain root directory is
  as-install`/domains`.
`--force`::
  Specifies whether the domain is forcibly stopped immediately before it
  is restarted. Possible values are as follows:

  `true`;;
    The domain is forcibly stopped immediately (default).
  `false`;;
    The subcommand waits until all threads that are associated with the
    domain are exited before stopping the domain.

`--kill`::
  Specifies whether the domain is killed before it is restarted by using
  functionality of the operating system to terminate the domain process.
  Possible values are as follows:

  `false`;;
    The domain is not killed. The subcommand uses functionality of the
    Java platform to terminate the domain process (default).
  `true`;;
    The domain is killed. The subcommand uses functionality of the
    operating system to terminate the domain process.

[[sthref1981]]

=== Operands

domain-name::
  The name of the domain you want to restart. Default is the name
  specified during installation, usually `domain1`.

[[sthref1982]]

=== Examples

[[GSRFM738]][[sthref1983]]

==== Example 1   Restarting a Domain

This example restarts `mydomain4` in the default domains directory.

[source]
----
asadmin> restart-domain mydomain4
Successfully restarted the domain
Command restart-domain executed successfully.
----

[[sthref1984]]

=== Exit Status

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

[[sthref1985]]

=== See Also

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

link:delete-domain.html#delete-domain-1[`delete-domain`(1)],
link:list-domains.html#list-domains-1[`list-domains`(1)],
link:start-domain.html#start-domain-1[`start-domain`(1)],
link:stop-domain.html#stop-domain-1[`stop-domain`(1)]

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


