<?xml version="1.0" encoding="UTF-8"?>
<!--
! CCPL HEADER START
!
! This work is licensed under the Creative Commons
! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
! To view a copy of this license, visit
! or send a letter to Creative Commons, 444 Castro Street,
! Suite 900, Mountain View, California, 94041, USA.
!
! You can also obtain a copy of the license at
! See the License for the specific language governing permissions
! and limitations under the License.
!
! If applicable, add the following below this CCPL HEADER, with the fields
! enclosed by brackets "[]" replaced with your own identifying information:
! Portions Copyright [yyyy] [name of copyright owner]
!
! CCPL HEADER END
!
! Copyright 2011-2014 ForgeRock AS
!
-->
<refentry xml:id='rebuild-index-1'
xmlns='http://docbook.org/ns/docbook'
version='5.0' xml:lang='en'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://docbook.org/ns/docbook
<info><copyright><year>2011-2014</year><holder>ForgeRock AS</holder></copyright></info>
<refmeta>
<refentrytitle>rebuild-index</refentrytitle><manvolnum>1</manvolnum>
<refmiscinfo class="software">OpenDJ</refmiscinfo>
<refmiscinfo class="version"><?eval ${docTargetVersion}?></refmiscinfo>
</refmeta>
<refnamediv>
<refname>rebuild-index</refname>
<refpurpose>rebuild index after configuration change</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>rebuild-index</command>
<arg choice="req">options</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>This utility can be used to rebuild index data within a backend based
on the Berkeley DB Java Edition.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are supported.</para>
<variablelist>
<varlistentry>
<term><option>-b, --baseDN {baseDN}</option></term>
<listitem>
<para>Base DN of a backend supporting indexing. Rebuild is performed on
indexes within the scope of the given base DN.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--clearDegradedState</option></term>
<listitem>
<para>Indicates that indexes do not need rebuilding because they are known
to be empty and forcefully marks them as valid. <emphasis>This is an
advanced option which must only be used in cases where a degraded index is
known to be empty and does not therefore need rebuilding.</emphasis> This
situation typically arises when an index is created for an attribute which
has just been added to the schema.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i, --index {index}</option></term>
<listitem>
<para>Names of index(es) to rebuild. For an attribute index this is
simply an attribute name. At least one index must be specified for
rebuild. Cannot be used with the <option>--rebuildAll</option>
or <option>--rebuildDegraded</option> options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--rebuildAll</option></term>
<listitem>
<para>Rebuild all indexes, including any DN2ID, DN2URI, VLV and
extensible indexes. Cannot be used with the <option>--index</option>
or <option>--rebuildDegraded</option> options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--rebuildDegraded</option></term>
<listitem>
<para>Rebuild all degraded indexes, including any DN2ID, DN2URI, VLV and
extensible indexes. Cannot be used with the <option>--index</option>
or <option>--rebuildAll</option> options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--tmpdirectory {directory}</option></term>
<listitem>
<para>Path to temporary directory for index scratch files during index
rebuilding.</para>
<para>Default value: import-tmp</para>
</listitem>
</varlistentry>
</variablelist>
<refsect2>
<title>Task Backend Connection Options</title>
<variablelist>
<varlistentry>
<term><option>--connectTimeout {timeout}</option></term>
<listitem>
<para>Maximum length of time (in milliseconds) that can be taken to
establish a connection. Use '0' to specify no time out.</para>
<para>Default value: 30000</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-D, --bindDN {bindDN}</option></term>
<listitem>
<para>DN to use to bind to the server</para>
<para>Default value: cn=Directory Manager</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h, --hostname {host}</option></term>
<listitem>
<para>Directory server hostname or IP address</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
<listitem>
<para>Bind password file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-K, --keyStorePath {keyStorePath}</option></term>
<listitem>
<para> Certificate key store path</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-N, --certNickname {nickname}</option></term>
<listitem>
<para>Nickname of certificate for SSL client authentication</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o, --saslOption {name=value}</option></term>
<listitem>
<para>SASL bind options</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p, --port {port}</option></term>
<listitem>
<para>Directory server administration port number</para>
<para>Default value: 4444</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-P, --trustStorePath {trustStorePath}</option></term>
<listitem>
<para>Certificate trust store path</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
<listitem>
<para>Certificate trust store PIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
<listitem>
<para>Certificate key store PIN file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-U, --trustStorePasswordFile {path}</option></term>
<listitem>
<para>Certificate trust store PIN file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-w, --bindPassword {bindPassword}</option></term>
<listitem>
<para>Password to use to bind to the server</para>
<para>Use <option>-w -</option> to have the command prompt for the
password, rather than enter the password on the command line.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
<listitem>
<para>Certificate key store PIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-X, --trustAll</option></term>
<listitem>
<para>Trust all server SSL certificates</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Task Scheduling Options</title>
<variablelist>
<varlistentry>
<term><option>--completionNotify {emailAddress}</option></term>
<listitem>
<para>Email address of a recipient to be notified when the task
completes. This option may be specified more than once.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--dependency {taskID}</option></term>
<listitem>
<para>ID of a task upon which this task depends. A task will not start
execution until all its dependencies have completed execution.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--errorNotify {emailAddress}</option></term>
<listitem>
<para>Email address of a recipient to be notified if an error occurs
when this task executes. This option may be specified more than
once.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--failedDependencyAction {action}</option></term>
<listitem>
<para>Action this task will take should one if its dependent tasks fail.
The value must be one of PROCESS, CANCEL, DISABLE. If not specified
defaults to CANCEL.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--recurringTask {schedulePattern}</option></term>
<listitem>
<para>Indicates the task is recurring and will be scheduled according
pattern.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t, --start {startTime}</option></term>
<listitem>
scheduled as a server task expressed in YYYYMMDDhhmmssZ format for UTC
time or YYYYMMDDhhmmss for local time. A value of '0' will cause the
task to be scheduled for immediate execution. When this option is
specified the operation will be scheduled to start at the specified
time after which this utility will exit immediately.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<variablelist>
<varlistentry>
<term><option>--noPropertiesFile</option></term>
<listitem>
<para>No properties file will be used to get default command line
argument values</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--propertiesFilePath {propertiesFilePath}</option></term>
<listitem>
<para>Path to the file containing default property values used for
command line arguments</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>General Options</title>
<variablelist>
<varlistentry>
<term><option>-V, --version</option></term>
<listitem>
<para>Display version information</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-?, -H, --help</option></term>
<listitem>
<para>Display usage information</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1>
<title>Exit Codes</title>
<variablelist>
<varlistentry>
<term>0</term>
<listitem>
<para>The command completed successfully.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>1</term>
<listitem>
<para>An error occurred while parsing the command-line arguments.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<para>The following example schedules a task to start immediately that
rebuilds the <literal>cn</literal> (common name) index.</para>
<screen>
$ <userinput>rebuild-index -p 4444 -h opendj.example.com -D "cn=Directory Manager" \
-w password -b dc=example,dc=com -i cn -t 0</userinput>
<computeroutput>Rebuild Index task 20110607160349596 scheduled to start Jun 7, 2011 4:03:49 PM</computeroutput>
</screen>
</refsect1>
</refentry>