# Shutting down Derby or an individual database

Applications in an embedded environment shut down the Derby system by specifying the shutdown=true attribute in the connection URL. To shut down the system, you do not specify a database name, and you must not specify any other attribute.

    jdbc:derby:;shutdown=true

A successful shutdown always results in an SQLException to indicate that Derby has shut down and that there is no other exception.

You can also shut down an individual database if you specify the databaseName. You can shut down the database of the current connection if you specify the default connection instead of a database name (within an SQL statement).

    // shutting down a database from your application
    DriverManager.getConnection(
        "jdbc:derby:sample;shutdown=true");

If user authentication and SQL authorization are both enabled, only the database owner can shut down the database.

    // shutting down an authenticated database as database owner
    DriverManager.getConnection(
        "jdbc:derby:securesample;user=joeowner;password=secret;shutdown=true");

Attention: It is good practice to close existing connections before shutting down the system or database. Connections created before the shutdown will not be usable after shutdown is performed. Attempting to access connections after shutdown may cause errors including instances of `NullPointerException` or protocol violations.
Parent topic: Working with the database connection URL attributes
Related concepts
Single database shutdown
Related tasks
Creating and preparing the database for read-only use
Related reference
Using the databaseName attribute