mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Mark Craig
24.27.2011 b20fcd8a1388bbc22db1d43e4b222617829a2eda
Fix OPENDJ-129: Consider adding manual pages for SDK tools, especially xxxrate tooles
7 files modified
2178 ■■■■■ changed files
opendj3/src/docbkx/dev-guide/man-authrate.xml 326 ●●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-ldapcompare.xml 258 ●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-ldapmodify.xml 326 ●●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml 245 ●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-ldapsearch.xml 364 ●●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-modrate.xml 327 ●●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-searchrate.xml 332 ●●●●● patch | view | raw | blame | history
opendj3/src/docbkx/dev-guide/man-authrate.xml
@@ -32,75 +32,339 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>authrate</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>authrate</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>measure bind throughput and response time</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>authrate</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <arg choice="opt">filter format string</arg>
   <arg choice="opt" rep="repeat">attributes</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to measure bind throughput and response time
  of a directory service using user-defined bind or search-then-bind
  operations.</para>
  <para>Format strings may be used in the bind DN option as well as the authid
  and authzid SASL bind options. A search operation may be used to retrieve the
  bind DN by specifying the base DN and a filter. The retrieved entry DN will
  be appended as the last argument in the argument list when evaluating format
  strings.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
     <para>Default value: never</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-b, --baseDN {baseDN}</option></term>
    <listitem>
     <para>Base DN format string</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --numConnections {numConnections}</option></term>
    <listitem>
     <para>Number of connections</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-e, --percentile {percentile}</option></term>
    <listitem>
     <para>Calculate max response time for a percentile of operations</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --keepConnectionsOpen</option></term>
    <listitem>
     <para>Keep connections open</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-g, --argument {generator function or static string}</option></term>
    <listitem>
     <para>Argument used to evaluate the Java style format strings in program
     parameters (Base DN, Search Filter). The set of all arguments provided
     form the the argument list in order. Besides static string arguments, they
     can be generated per iteration with the following functions:</para>
    <variablelist>
     <varlistentry>
      <term>"inc({filename})"</term>
      <listitem><para>Consecutive, incremental line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"inc({min},{max})"</term>
      <listitem><para>Consecutive, incremental number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({filename})"</term>
      <listitem><para>Random line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({min},{max})"</term>
      <listitem><para>Random number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
      <listitem><para>Random string of specified length and optionally from
      characters in the charSet string. A range of character can be specified
      with [start-end] charSet notation. If no charSet is specified,
      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
     </varlistentry>
    </variablelist>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-i, --statInterval {statInterval}</option></term>
    <listitem>
     <para>Display results each specified number of seconds</para>
     <para>Default value: 5</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-I, --invalidPassword {invalidPassword}</option></term>
    <listitem>
     <para>Percent of bind operations with simulated invalid password</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-m, --maxIterations {maxIterations}</option></term>
    <listitem>
     <para>Max iterations, 0 for unlimited</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
    <listitem>
     <para>Target average throughput to achieve</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-s, --searchScope {searchScope}</option></term>
    <listitem>
     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
     <para>Default value: sub</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-S, --scriptFriendly</option></term>
    <listitem>
     <para>Use script-friendly mode</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>authrate</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates measuring simple bind
  performance.</para>
  <screen width="80">$ authrate -p 1389 -g "rand(names.txt)" \
&gt; -D "uid=%s,ou=people,dc=example,dc=com" -w password -c 10 -f
-----------------------------------------------------------------
     Throughput                            Response Time
   (ops/second)                           (milliseconds)
recent  average  recent  average  99.9%  99.99%  99.999%  err/sec
-----------------------------------------------------------------
9796.9   9816.6   1.029    1.029  12.413  161.451  161.835      0.0
14201.1  12028.1   0.704    0.835  9.508  161.456  167.573      0.0
14450.0  12835.9   0.692    0.782  8.989  161.835  174.518      0.0
12934.3  12860.6   0.773    0.779  9.253  161.339  174.426      0.0
14154.5  13121.0   0.706    0.764  9.025  161.451  177.101      0.0
^C</screen>
  <para>The <filename>names.txt</filename> contains all the user IDs for the
  sample suffix, and all user password values have been set to
  <literal>password</literal> for this example.</para>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-ldapcompare.xml
@@ -32,75 +32,271 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>ldapcompare</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>ldapcompare</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>perform LDAP compare operations</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>ldapcompare</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <group><arg>attribute</arg><arg>:</arg><arg>value</arg></group>
   <arg choice="opt" rep="repeat">DN</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to perform LDAP compare operations in the
  directory.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>--assertionFilter {filter}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Use the LDAP assertion control with the provided filter</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --continueOnError</option></term>
    <listitem>
     <para>Continue processing even if there are errors</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --filename {file}</option></term>
    <listitem>
     <para>LDIF file containing one DN per line of entries to compare</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
    <listitem>
     <para>Use a request control with the provided information</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --dry-run</option></term>
    <listitem>
     <para>Show what would be done but do not perform any operation</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-Y, --proxyAs {authzID}</option></term>
    <listitem>
     <para>Use the proxied authorization control with the given authorization
     ID</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>ldapcompare</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-V, --ldapVersion {version}</option></term>
     <listitem>
      <para>LDAP protocol version number</para>
      <para>Default value: 3</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <variablelist>
    <varlistentry>
     <term><option>-i, --encoding {encoding}</option></term>
     <listitem>
      <para>Use the specified character set for command-line input</para>
     </listitem>
    </varlistentry>
    <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>General Options</title>
   <variablelist>
    <varlistentry>
     <term><option>--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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following examples demonstrate comparing Babs Jensen's UID.</para>
  <para>The following example uses a matching UID value.</para>
  <screen width="80">$ ldapcompare -p 1389 uid:bjensen uid=bjensen,ou=people,dc=example,dc=com
Comparing type uid with value bjensen in entry
uid=bjensen,ou=people,dc=example,dc=com
Compare operation returned true for entry
uid=bjensen,ou=people,dc=example,dc=com</screen>
  <para>The following example uses a UID value that does not match.</para>
  <screen width="80">$ ldapcompare -p 1389 uid:beavis uid=bjensen,ou=people,dc=example,dc=com
Comparing type uid with value beavis in entry
uid=bjensen,ou=people,dc=example,dc=com
Compare operation returned false for entry
uid=bjensen,ou=people,dc=example,dc=com</screen>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-ldapmodify.xml
@@ -32,75 +32,339 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>ldapmodify</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>ldapmodify</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>perform LDAP modify, add, delete, mod DN operations</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>ldapmodify</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to perform LDAP modify, add, delete, and
  modify DN operations in the directory.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --defaultAdd</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Treat records with no changetype as add operations</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--assertionFilter {filter}</option></term>
    <listitem>
     <para>Use the LDAP assertion control with the provided filter</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --continueOnError</option></term>
    <listitem>
     <para>Continue processing even if there are errors</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --filename {file}</option></term>
    <listitem>
     <para>LDIF file containing the changes to apply</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
    <listitem>
     <para>Use a request control with the provided information</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --dry-run</option></term>
    <listitem>
     <para>Show what would be done but do not perform any operation</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--postReadAttributes {attrList}</option></term>
    <listitem>
     <para>Use the LDAP ReadEntry post-read control</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--preReadAttributes {attrList}</option></term>
    <listitem>
     <para>Use the LDAP ReadEntry pre-read control</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-Y, --proxyAs {authzID}</option></term>
    <listitem>
     <para>Use the proxied authorization control with the given authorization
     ID</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>ldapmodify</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-V, --ldapVersion {version}</option></term>
     <listitem>
      <para>LDAP protocol version number</para>
      <para>Default value: 3</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <variablelist>
    <varlistentry>
     <term><option>-i, --encoding {encoding}</option></term>
     <listitem>
      <para>Use the specified character set for command-line input</para>
     </listitem>
    </varlistentry>
    <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>General Options</title>
   <variablelist>
    <varlistentry>
     <term><option>--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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates use of the command to add an entry
  to the directory.</para>
  <screen width="80">$ cat newuser.ldif
dn: uid=newuser,ou=People,dc=example,dc=com
uid: newuser
facsimileTelephoneNumber: +1 408 555 1213
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
givenName: New
cn: New User
cn: Real Name
telephoneNumber: +1 408 555 1212
sn: Jensen
roomNumber: 1234
homeDirectory: /home/newuser
uidNumber: 10389
mail: newuser@example.com
l: South Pole
ou: Product Development
ou: People
gidNumber: 10636
$ ldapmodify -p 1389 -a -f newuser.ldif \
&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
Processing ADD request for uid=newuser,ou=People,dc=example,dc=com
ADD operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
 <para>The following example demonstrates adding a Description attribute
 to the new user's entry.</para>
 <screen width="80">$ cat newdesc.ldif
dn: uid=newuser,ou=People,dc=example,dc=com
changetype: modify
add: description
description: A new user's entry
$ ldapmodify -p 1389 -f newdesc.ldif \
&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
Processing MODIFY request for uid=newuser,ou=People,dc=example,dc=com
MODIFY operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
 <para>The following example demonstrates changing the Description attribute
 for the new user's entry.</para>
 <screen width="80">$ cat moddesc.ldif
dn: uid=newuser,ou=People,dc=example,dc=com
changetype: modify
replace: description
description: Another description
$ ldapmodify -p 1389 -f moddesc.ldif \
&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
Processing MODIFY request for uid=newuser,ou=People,dc=example,dc=com
MODIFY operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
 <para>The following example demonstrates deleting the new user's entry.</para>
 <screen width="80">$ cat deluser.ldif
dn: uid=newuser,ou=People,dc=example,dc=com
changetype: delete
$ ldapmodify -p 1389 -f deluser.ldif \
&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
Processing DELETE request for uid=newuser,ou=People,dc=example,dc=com
DELETE operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml
@@ -32,75 +32,258 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>ldappasswordmodify</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>ldappasswordmodify</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>perform LDAP password modifications</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>ldappasswordmodify</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to perform LDAP password modify operations in
  the directory.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --authzID {authzID}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Authorization ID for the user entry whose password should be changed</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --currentPassword {currentPassword}</option></term>
    <listitem>
     <para>Current password for the target user</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-C, --currentPasswordFile {file}</option></term>
    <listitem>
     <para>Path to a file containing the current password for the target user</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-F, --newPasswordFile {file}</option></term>
    <listitem>
     <para>Path to a file containing the new password to provide for the target user</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
    <listitem>
     <para>Use a request control with the provided information</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --newPassword {newPassword}</option></term>
    <listitem>
     <para>New password to provide for the target user</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>ldappasswordmodify</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-V, --ldapVersion {version}</option></term>
     <listitem>
      <para>LDAP protocol version number</para>
      <para>Default value: 3</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>General Options</title>
   <variablelist>
    <varlistentry>
     <term><option>--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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates a user changing the password
  for her entry.</para>
  <screen width="80">$ cat /tmp/currpwd.txt /tmp/newpwd.txt
bribery
secret12
$ ldappasswordmodify -p 1389 -C /tmp/currpwd.txt -F /tmp/newpwd.txt \
&gt; -a "dn:uid=kvaughan,ou=people,dc=example,dc=com" \
&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
The LDAP password modify operation was successful</screen>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-ldapsearch.xml
@@ -32,75 +32,377 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>ldapsearch</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>ldapsearch</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>perform LDAP search operations</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>ldapsearch</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <arg choice="opt">filter</arg>
   <arg choice="opt" rep="repeat">attributes</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to perform LDAP search operations in the
  directory.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
     <para>Default value: never</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-A, --typesOnly</option></term>
    <listitem>
     <para>Only retrieve attribute names but not their values</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--assertionFilter {filter}</option></term>
    <listitem>
     <para>Use the LDAP assertion control with the provided filter</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-b, --baseDN {baseDN}</option></term>
    <listitem>
     <para>Base DN format string</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --continueOnError</option></term>
    <listitem>
     <para>Continue processing even if there are errors</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-C, --persistentSearch ps[:changetype[:changesonly[:entrychgcontrols]]]</option></term>
    <listitem>
     <para>Use the persistent search control</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--countEntries</option></term>
    <listitem>
     <para>Count the number of entries returned by the server</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-e, --getEffectiveRightsAttribute {attribute}</option></term>
    <listitem>
     <para>Specifies geteffectiverights control specific attribute list</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --filename {file}</option></term>
    <listitem>
     <para>LDIF file containing the changes to apply</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-g, --getEffectiveRightsAuthzid {authzID}</option></term>
    <listitem>
     <para>Use geteffectiverights control with the provided authzid</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-G, --virtualListView {before:after:index:count | before:after:value}</option></term>
    <listitem>
     <para>Use the virtual list view control to retrieve the specified results page</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
    <listitem>
     <para>Use a request control with the provided information</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-l, --timeLimit {timeLimit}</option></term>
    <listitem>
     <para>Maximum length of time in seconds to allow for the search</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--matchedValuesFilter {filter}</option></term>
    <listitem>
     <para>Use the LDAP matched values control with the provided filter</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --dry-run</option></term>
    <listitem>
     <para>Show what would be done but do not perform any operation</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-s, --searchScope {searchScope}</option></term>
    <listitem>
     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
     <para>Default value: sub</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-S, --sortOrder {sortOrder}</option></term>
    <listitem>
     <para>Sort the results using the provided sort order</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>--simplePageSize {numEntries}</option></term>
    <listitem>
     <para>Use the simple paged results control with the given page size</para>
     <para>Default value: 1000</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-Y, --proxyAs {authzID}</option></term>
    <listitem>
     <para>Use the proxied authorization control with the given authorization
     ID</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-z, --sizeLimit {sizeLimit}</option></term>
    <listitem>
     <para>Maximum number of entries to return from the search</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>ldapsearch</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-V, --ldapVersion {version}</option></term>
     <listitem>
      <para>LDAP protocol version number</para>
      <para>Default value: 3</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <variablelist>
    <varlistentry>
     <term><option>-i, --encoding {encoding}</option></term>
     <listitem>
      <para>Use the specified character set for command-line input</para>
     </listitem>
    </varlistentry>
    <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>
    <varlistentry>
     <term><option>-t, --dontWrap</option></term>
     <listitem><para>Do not wrap long lines</para></listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>General Options</title>
   <variablelist>
    <varlistentry>
     <term><option>--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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example searches for entries with UID containing
  <literal>jensen</literal>, returning only DNs and uid values.</para>
  <screen width="80">$ ldapsearch -p 1389 -b dc=example,dc=com "(uid=*jensen*)" uid
dn: uid=ajensen,ou=People,dc=example,dc=com
uid: ajensen
dn: uid=bjensen,ou=People,dc=example,dc=com
uid: bjensen
dn: uid=gjensen,ou=People,dc=example,dc=com
uid: gjensen
dn: uid=jjensen,ou=People,dc=example,dc=com
uid: jjensen
dn: uid=kjensen,ou=People,dc=example,dc=com
uid: kjensen
dn: uid=rjensen,ou=People,dc=example,dc=com
uid: rjensen
dn: uid=tjensen,ou=People,dc=example,dc=com
uid: tjensen
Result Code:  0 (Success)</screen>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-modrate.xml
@@ -32,75 +32,340 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>modrate</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>modrate</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>measure modification throughput and response time</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>modrate</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <group choice="opt" rep="repeat">
    <arg>attribute</arg>
    <arg>:</arg>
    <arg>value format string</arg>
   </group>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to measure modify throughput and response time
  of a directory service using user-defined modifications.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-A, --asynchronous</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Use asynchronous mode and don't wait for results before sending the
     next request</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-b, --baseDN {baseDN}</option></term>
    <listitem>
     <para>Base DN format string</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --numConnections {numConnections}</option></term>
    <listitem>
     <para>Number of connections</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-e, --percentile {percentile}</option></term>
    <listitem>
     <para>Calculate max response time for a percentile of operations</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --keepConnectionsOpen</option></term>
    <listitem>
     <para>Keep connections open</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-F, --noRebind</option></term>
    <listitem>
     <para>Keep connections open and don't rebind</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-g, --argument {generator function or static string}</option></term>
    <listitem>
     <para>Argument used to evaluate the Java style format strings in program
     parameters (Base DN, Search Filter). The set of all arguments provided
     form the the argument list in order. Besides static string arguments, they
     can be generated per iteration with the following functions:</para>
    <variablelist>
     <varlistentry>
      <term>"inc({filename})"</term>
      <listitem><para>Consecutive, incremental line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"inc({min},{max})"</term>
      <listitem><para>Consecutive, incremental number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({filename})"</term>
      <listitem><para>Random line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({min},{max})"</term>
      <listitem><para>Random number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
      <listitem><para>Random string of specified length and optionally from
      characters in the charSet string. A range of character can be specified
      with [start-end] charSet notation. If no charSet is specified,
      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
     </varlistentry>
    </variablelist>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-i, --statInterval {statInterval}</option></term>
    <listitem>
     <para>Display results each specified number of seconds</para>
     <para>Default value: 5</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-m, --maxIterations {maxIterations}</option></term>
    <listitem>
     <para>Max iterations, 0 for unlimited</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
    <listitem>
     <para>Target average throughput to achieve</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-S, --scriptFriendly</option></term>
    <listitem>
     <para>Use script-friendly mode</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-t, --numConcurrentTasks {numConcurrentTasks}</option></term>
    <listitem>
     <para>Number of concurrent tasks per connection</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>modrate</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates testing directory performance by
  using the modrate command to write random 16-character description values
  to all entries in a sample file.</para>
  <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" &gt; names.txt
$ modrate -p 1389 -D cn=directory\ manager -w secret12 \
&gt; -b "uid=%s,ou=people,dc=example,dc=com" -g "rand(names.txt)" \
&gt;"description:%s" -g "randStr(16)" -A -F -c 4 -t 4
-----------------------------------------------------------------
     Throughput                            Response Time
   (ops/second)                           (milliseconds)
recent  average  recent  average  99.9%  99.99%  99.999%  err/sec
-----------------------------------------------------------------
 399.0    399.0   1.546    1.546  8.917  79.764   79.764      0.0
 541.6    470.5   1.109    1.294  8.917  181.808 181.808      0.0
 755.2    565.4   0.747    1.050  9.828  181.808 181.808      0.0
 786.9    620.8   0.718    0.945  10.175 114.424 181.808      0.0
1209.3    738.3   0.469    0.789  8.917  114.424 181.808      0.0
1255.8    824.5   0.474    0.709  8.365  79.764  181.808      0.0
1359.1    900.8   0.430    0.649  7.610  72.218  181.808      0.0
1294.5    950.0   0.463    0.618  7.589  81.093  181.808      0.0
1280.0    986.6   0.471    0.596  7.533  81.093  204.701      0.0
1301.9   1018.2   0.463    0.579  7.506  81.093  204.701      0.0
^C</screen>
 </refsect1>
</refentry>
opendj3/src/docbkx/dev-guide/man-searchrate.xml
@@ -32,75 +32,345 @@
 xmlns:xinclude='http://www.w3.org/2001/XInclude'>
 <refmeta>
  <refentrytitle>searchrate</refentrytitle><manvolnum>1</manvolnum>
  <refmiscinfo class="software">OpenDJ</refmiscinfo>
  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>searchrate</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>measure search throughput and response time</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>searchrate</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
   <arg choice="opt">filter format string</arg>
   <arg choice="opt" rep="repeat">attributes</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to measure search throughput and response time
  of a directory service using user-defined searches.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
     <para>Default value: never</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-A, --asynchronous</option></term>
    <listitem>
     <para>Use asynchronous mode and don't wait for results before sending the
     next request</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-b, --baseDN {baseDN}</option></term>
    <listitem>
     <para>Base DN format string</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --numConnections {numConnections}</option></term>
    <listitem>
     <para>Number of connections</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-e, --percentile {percentile}</option></term>
    <listitem>
     <para>Calculate max response time for a percentile of operations</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-f, --keepConnectionsOpen</option></term>
    <listitem>
     <para>Keep connections open</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-F, --noRebind</option></term>
    <listitem>
     <para>Keep connections open and don't rebind</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-g, --argument {generator function or static string}</option></term>
    <listitem>
     <para>Argument used to evaluate the Java style format strings in program
     parameters (Base DN, Search Filter). The set of all arguments provided
     form the the argument list in order. Besides static string arguments, they
     can be generated per iteration with the following functions:</para>
    <variablelist>
     <varlistentry>
      <term>"inc({filename})"</term>
      <listitem><para>Consecutive, incremental line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"inc({min},{max})"</term>
      <listitem><para>Consecutive, incremental number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({filename})"</term>
      <listitem><para>Random line from file</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"rand({min},{max})"</term>
      <listitem><para>Random number</para></listitem>
     </varlistentry>
     <varlistentry>
      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
      <listitem><para>Random string of specified length and optionally from
      characters in the charSet string. A range of character can be specified
      with [start-end] charSet notation. If no charSet is specified,
      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
     </varlistentry>
    </variablelist>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-i, --statInterval {statInterval}</option></term>
    <listitem>
     <para>Display results each specified number of seconds</para>
     <para>Default value: 5</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-m, --maxIterations {maxIterations}</option></term>
    <listitem>
     <para>Max iterations, 0 for unlimited</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
    <listitem>
     <para>Target average throughput to achieve</para>
     <para>Default value: 0</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-s, --searchScope {searchScope}</option></term>
    <listitem>
     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
     <para>Default value: sub</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-S, --scriptFriendly</option></term>
    <listitem>
     <para>Use script-friendly mode</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-t, --numConcurrentTasks {numConcurrentTasks}</option></term>
    <listitem>
     <para>Number of concurrent tasks per connection</para>
     <para>Default value: 1</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>searchrate</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>LDAP Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>-D, --bindDN {bindDN}</option></term>
     <listitem>
      <para>TODO description.</para>
      <para>DN to use to bind to the server</para>
      <para>Default value: cn=Directory Manager</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-E, --reportAuthzID</option></term>
     <listitem>
      <para>Use the authorization identity control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-h, --hostname {host}</option></term>
     <listitem>
      <para>Directory server hostname or IP address</para>
      <para>Default value: localhost.localdomain</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 port number</para>
      <para>Default value: 389</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
     <listitem>
      <para>Certificate trust store path</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-q, --useStartTLS</option></term>
     <listitem>
      <para>Use StartTLS to secure communication with the server</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>--usePasswordPolicyControl</option></term>
     <listitem>
      <para>Use the password policy request control</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><option>-w, --bindPassword {bindPassword}</option></term>
     <listitem>
      <para>Password to use to bind to the server</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>
    <varlistentry>
     <term><option>-Z, --useSSL</option></term>
     <listitem>
      <para>Use SSL for secure communication with the server</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </refsect2>
  <refsect2>
   <title>Utility Input/Output Options</title>
   <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>
    <varlistentry>
     <term><option>-v, --verbose</option></term>
     <listitem>
      <para>Use verbose mode</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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>89</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example demonstrates measuring search performance.</para>
  <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" &gt; names.txt
$ searchrate -p 1389 -b dc=example,dc=com \
&gt; -g "rand(names.txt)" "(uid=%s)" -A -F -c 4 -t 4
-------------------------------------------------------------------------------
     Throughput                            Response Time
   (ops/second)                           (milliseconds)
recent  average  recent  average  99.9%  99.99%  99.999%  err/sec  Entries/Srch
-------------------------------------------------------------------------------
1475.9   1475.9   0.423    0.423  6.938  126.236 126.236      0.0           1.0
2596.5   2038.4   0.254    0.315  6.866  12.980  126.236      0.0           1.0
3210.7   2428.2   0.205    0.267  5.733  11.710  126.236      0.0           1.0
3080.5   2591.0   0.215    0.252  5.733  10.541  126.236      0.0           1.0
3236.9   2720.1   0.203    0.240  5.258  10.514  126.236      0.0           1.0
3181.1   2796.8   0.207    0.234  5.258  10.384  126.236      0.0           1.0
3202.5   2854.8   0.206    0.229  4.825  10.384  126.236      0.0           1.0
^C</screen>
 </refsect1>
</refentry>