51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! CCPL HEADER START
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! This work is licensed under the Creative Commons
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! To view a copy of this license, visit
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! or send a letter to Creative Commons, 444 Castro Street,
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! Suite 900, Mountain View, California, 94041, USA.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! You can also obtain a copy of the license at
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! See the License for the specific language governing permissions
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! and limitations under the License.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! If applicable, add the following below this CCPL HEADER, with the fields
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! enclosed by brackets "[]" replaced with your own identifying information:
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! Portions Copyright [yyyy] [name of copyright owner]
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ! CCPL HEADER END
68955588fb157875ac7bb879662e1995862e717cmark ! Copyright 2011-2015 ForgeRock AS.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>Using the OpenDJ Control Panel, you can start and stop local servers.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark You can also start and stop OpenDJ using command-line tools, and use the
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark operating system's capabilities for starting OpenDJ at boot time.</para>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>This chapter demonstrates how to start and stop server processes
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark with command line tools and using operating system capabilities. This
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark chapter also describes what OpenDJ directory server does during startup
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark and shutdown, and how it recovers following an abrupt shutdown such as
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark happens during a system crash or when you kill the server process using
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark system tools.</para>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark Alternatively, you can specify the <option>--no-detach</option>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark option to start the server in the foreground.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <para>(Linux) If OpenDJ directory server was installed from a .deb or .rpm
038045ba945b0937cede38059a159b3fc0e3ca60mark package, then service management scripts were created at setup time.</para>
038045ba945b0937cede38059a159b3fc0e3ca60mark <para>Use the <command>service opendj start</command> command.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>Starting opendj (via systemctl): [ OK ]</computeroutput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmarkubuntu$ <userinput>sudo service opendj start</userinput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>$Starting opendj: > SUCCESS.</computeroutput>
038045ba945b0937cede38059a159b3fc0e3ca60mark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
ec40cc0dc62425cea5d63fd9d984f8614479de25mark (UNIX) Create an RC script by using the
ec40cc0dc62425cea5d63fd9d984f8614479de25mark and then use the script to start the server.
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>Unless you run OpenDJ as root, use the --userName
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <replaceable>userName</replaceable> option to specify the user
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark who installed OpenDJ.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark$ <userinput>sudo create-rc-script \
08248b5c5b494aff8d1922e8e0b5777796d7450dmark --userName mark</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>For example, on Linux if you run OpenDJ as root, you can use the
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark RC script to start the server at system boot, and stop the server at
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark system shutdown.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark$ <userinput>sudo update-rc.d opendj defaults</userinput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>update-rc.d: warning: /etc/init.d/opendj missing LSB information
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmarkupdate-rc.d: see <http://wiki.debian.org/LSBInitScripts>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark /etc/rc5.d/S20opendj -> /init.d/opendj</computeroutput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
ec40cc0dc62425cea5d63fd9d984f8614479de25mark (Windows) Register OpenDJ as a Windows Service by using the
ec40cc0dc62425cea5d63fd9d984f8614479de25mark and then manage the service through Windows administration tools.
08248b5c5b494aff8d1922e8e0b5777796d7450dmarkC:\path\to\opendj\bat> <userinput>windows-service.bat --enableService</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>By default OpenDJ saves a compressed version of the server
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark configuration used on successful startup. This ensures that the server
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark provides a "last known good" configuration, which can be used as a reference
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark or copied into the active configuration if the server fails to start with the
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark current active configuration. It is possible, though not usually recommended,
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark to turn this behavior off by changing the global server setting
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <literal>save-config-on-successful-startup</literal> to
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </section>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <para>(Linux) If OpenDJ directory server was installed from a .deb or .rpm
038045ba945b0937cede38059a159b3fc0e3ca60mark package, then service management scripts were created at setup time.</para>
851ec05bc8adabc872d97be19ed06f6c8df7396emark <para>Use the <command>service opendj stop</command> command.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>Stopping opendj (via systemctl): [ OK ]</computeroutput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>$Stopping opendj: ... > SUCCESS.</computeroutput>
038045ba945b0937cede38059a159b3fc0e3ca60mark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>(UNIX) Create an RC script, and then use the script to stop
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark the server.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark$ <userinput>sudo create-rc-script \
08248b5c5b494aff8d1922e8e0b5777796d7450dmark --userName mark</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>(Windows) Register OpenDJ as a Windows Service, and then manage
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark the service through Windows administration tools.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmarkC:\path\to\opendj\bat> <userinput>windows-service.bat --enableService</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </section>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <indexterm><primary>Restart server</primary></indexterm>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>Use the <command>stop-ds</command> command.</para>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <listitem>
038045ba945b0937cede38059a159b3fc0e3ca60mark <para>(Linux) If OpenDJ directory server was installed from a .deb or .rpm
038045ba945b0937cede38059a159b3fc0e3ca60mark package, then service management scripts were created at setup time.</para>
851ec05bc8adabc872d97be19ed06f6c8df7396emark <para>Use the <command>service opendj restart</command> command.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>Restarting opendj (via systemctl): [ OK ]</computeroutput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmarkubuntu$ <userinput>sudo service opendj restart</userinput>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark<computeroutput>$Stopping opendj: ... > SUCCESS.
08248b5c5b494aff8d1922e8e0b5777796d7450dmark$Starting opendj: > SUCCESS.</computeroutput>
038045ba945b0937cede38059a159b3fc0e3ca60mark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>(UNIX) Create an RC script, and then use the script to stop
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark the server.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark$ <userinput>sudo create-rc-script \
08248b5c5b494aff8d1922e8e0b5777796d7450dmark --userName mark</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>(Windows) Register OpenDJ as a Windows Service, and then manage
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark the service through Windows administration tools.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmarkC:\path\to\opendj\bat> <userinput>windows-service.bat --enableService</userinput>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </listitem>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </itemizedlist>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </section>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <indexterm>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </indexterm>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>OpenDJ tends to show resilience when restarting after a crash or after
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark the server process is killed abruptly. OpenDJ might have to replay the last
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark few entries in a transaction log. Generally OpenDJ returns to service
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark quickly.</para>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>You can find Berkeley Java Edition database recovery messages in the
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark database log file, such as
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <filename>/path/to/opendj/db/userRoot/je.info.0</filename>. The following
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark shows two example messages from that log, the first written at the beginning
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark of the recovery process, the second written at the end of the process.</para>
08248b5c5b494aff8d1922e8e0b5777796d7450dmark111104 10:23:48:967 CONFIG [/path/to/opendj/db/userRoot]Recovery
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark underway, found end of log
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark111104 10:23:49:015 CONFIG [/path/to/opendj/db/userRoot]Recovery finished:
08248b5c5b494aff8d1922e8e0b5777796d7450dmark Recovery Info ...
08248b5c5b494aff8d1922e8e0b5777796d7450dmark </programlisting>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <para>What can take some time during server startup is preloading database
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark content into memory when the server starts. Objects cached in memory do not
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark survive a crash. By default, OpenDJ does not cache objects in memory before
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark starting to accept client requests. You can however set a
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark <link xlink:href="${configRefBase}local-db-backend.html#preload-time-limit"
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark ><literal>preload-time-limit</literal></link> for the database cache of your
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark backend if you do want to load objects into the database cache before
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark OpenDJ begins accepting client connections.</para>
51607ea01068c9047391e4c8b46bc9dbd0edb7fdmark </section>