type=page
status=published
title=stop-database
next=stop-domain.html
prev=stop-cluster.html
~~~~~~

= stop-database

[[stop-database-1]][[GSRFM00239]][[stop-database]]

== stop-database

Stops the Java DB

[[sthref2158]]

=== Synopsis

[source]
----
asadmin [asadmin-options] stop-database [--help]
[--dbuser db-user]
[--dbhost host] [--dbport port-no]
----

[[sthref2159]]

=== Description

The `stop-database` subcommand stops a process of the Java DB server.
Java DB server is available for use with {productName} and is based
upon Apache Derby. The database is typically started with the
link:start-database.html#start-database-1[`start-database`(1)]
subcommand. A single host can have multiple database server processes
running on different ports. The `stop-database` subcommand stops the
database server process for the specified port only.

This subcommand is supported in local mode only.

[[sthref2160]]

=== 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.
`--dbuser`::
  The user name of the Java DB user that is to stop the server process.
  This option is required only when Java DB user authentication is enabled. +
  If this option is omitted, no user is specified. By default, Java DB
  user authentication is disabled, so no user or password is required.
`--dbhost`::
  The host name or IP address of the Java DB server process. The default
  is the IP address 0.0.0.0, which denotes all network interfaces on the
  host where you run the `stop-database` subcommand.
`--dbport`::
  The port number where the Java DB server listens for client
  connections. The default is 1527.

[[sthref2161]]

=== Examples

[[GSRFM765]][[sthref2162]]

==== Example 1   Stopping Java DB

This example stops Java DB on host host1 and port 5001.

[source]
----
asadmin> stop-database --dbhost host1 --dbport 5001
Connection obtained for host: host1, port number 5001.
Shutdown successful.
Command stop-database executed successfully.
----

[[sthref2163]]

=== Exit Status

The exit status applies to errors in executing the `asadmin` utility.
For information on database errors, see the `derby.log` file. This file
is located in the directory you specify by using the `--dbhome` option
when you run the `start-database` subcommand. If you did not specify
`--dbhome`, the value of `DERBY_INSTALL` defaults to
as-install``/javadb``.

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

[[sthref2164]]

=== See Also

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

link:start-database.html#start-database-1[`start-database`(1)]

"link:administration-guide/jdbc.html#GSADG00015[Administering Database Connectivity]" in {productName} Administration Guide


