---
title: Configuring the entry-balancing PingDirectoryProxy server
description: After the PingDirectoryProxy server has been installed, it can be automatically configured using the create-initial-proxy-config tool.
component: pingdirectory
version: 11.0
page_id: pingdirectory:pingdirectoryproxy_server_administration_guide:pd_proxy_config_entry_balancing_dps
canonical_url: https://docs.pingidentity.com/pingdirectory/11.0/pingdirectoryproxy_server_administration_guide/pd_proxy_config_entry_balancing_dps.html
revdate: September 13, 2023
section_ids:
  about-this-task: About this task
  steps: Steps
  example: Example:
  example-2: Example:
  example-3: Example:
  example-4: Example:
  example-5: Example:
  example-6: Example:
  example-7: Example:
  example-8: Example:
  example-9: Example:
  example-10: Example:
  example-11: Example:
  example-12: Example:
  example-13: Example:
  example-14: Example:
  example-15: Example:
  example-16: Example:
  example-17: Example:
  example-18: Example:
  example-19: Example:
  example-20: Example:
---

# Configuring the entry-balancing PingDirectoryProxy server

After the PingDirectoryProxy server has been installed, it can be automatically configured using the `create-initial-proxy-config` tool.

## About this task

This tool can only be used once for this initial configuration after which you will have to use `dsconfig` to make any changes to the PingDirectoryProxy server configuration.

## Steps

1. Run the `create-initial-proxy-config` tool.

   ### Example:

   ```
   root@austin-proxy1: ./bin/create-initial-proxy-config
   ```

2. If the topology meets the requirements, press Enter to continue.

   ### Example:

   ```
   Some assumptions are made about the topology to keep
   this tool simple:

   1) all servers will be accessible via a single user account
   2) all servers support the same communication security type
   3) all servers are PingDirectoryProxy Servers

   If your topology does not have these characteristics you can
   use this tool to define a basic configuration and then use the
   'dsconfig' tool or the Administrative Console to fine tune the configuration.

   Would you like to continue? (yes / no) [yes]:
   ```

3. Provide the external server access credentials.

   All of the proxies have identical proxy user accounts and passwords.

   ### Example:

   ```
   Enter the DN of the proxy user account [cn=Proxy User,cn=Root DNs,cn=config]:

   Enter the password for 'cn=Proxy User,cn=Root DNs,cn=config':
   Confirm the password for 'cn=Proxy User,cn=Root DNs,cn=config':
   ```

4. Specify the type of security that the PingDirectoryProxy server will use to communicate with PingDirectory servers.

5. Enter a base distinguished name (DN) of the PingDirectory server instances that will be accessed by the PingDirectoryProxy server.

6. Define the balancing point as a separate base DN, which is entry balanced.

   ### Example:

   ```
   Enter another base DN of the directory server instances that
   will be accessed through the Directory Proxy Server:

       1)Remove dc=example,dc=com

       b)back

       q)quit

   Enter a DN or choose a menu item [Press ENTER when finished
   entering base DNs]: ou=people,dc=example,dc=com

   Are entries within 'ou=people,dc=example,dc=com' split across
   multiple servers so that each server stores only a subset of
   the entries (i.e. is this base DN 'entry balanced')? (yes / no)
   [no]: yes
   ```

7. Because the data in `ou=people,dc=example,dc=com` will be split across two backend sets, enter `2` to specify that the data will be balanced across two sets of servers.

   ### Example:

   ```
   Across how many sets of servers is the data balanced?

       c) cancel creating ou=people,dc=example,dc=com
       q) quit

   Enter a number greater than one or choose a menu item: 2
   ```

8. Because the balancing point is the same as the base DN, `ou=people,dc=example,dc=com`, use it as the entry balancing base.

   ### Example:

   ```
   >>>> Entry Balancing Base

   The entry balancing base DN specifies the entry below which the
   data is balanced. Entries not below this entry must be duplicated
   in all the server sets. If all the entries in the base DN are
   distributed the entry balancing base DN is the same as the base DN.

       c) cancel creating ou=people,dc=example,dc=com
       b) back
       q) quit

   Enter the entry balancing base DN or choose a menu item
   [ou=people,dc=example,dc=com]: ou=people,dc=example,dc=com
   ```

9. To improve the performance for equality search filters referencing the `uid` attribute, create a `uid` global index. Enter `yes` to add a new attribute to the global index.

10. Specify the `uid` attribute.

    ### Example:

    ```
    Enter attributes that you would like to add to the global index:

        c)cancel creating ou=people,dc=example,dc=com
        b)back
        q)quit

    Enter an attribute name or choose a menu item [Press ENTER when
    finished entering index attributes]: uid
    ```

11. To optimize PingDirectoryProxy server performance from the moment it starts accepting connections, enter the number corresponding to `Yes, and all subsequent attributes`.

12. Press Enter to finish specifying index attributes.

13. Press Enter to enable relative distinguished name (RDN) index priming.

    ### Example:

    ```
    Would you like to enable RDN index priming for
    'ou=people,dc=example,dc=com'? (yes / no) [yes]:
    ```

14. Press Enter to finish specifying base DNs.

    ### Example:

    ```
    Enter another base DN of the directory server instances that
    will be accessed through the Directory Proxy Server:

        1) Remove dc=example,dc=com
        2) Remove ou=people,dc=example,dc=com (distributed)

        b)  back
        q)  quit

    Enter a DN or choose a menu item [Press ENTER when finished
    entering base DNs]:
    ```

15. The external servers are spread among two locations, New York and Austin. Define **austin** as the location of this PingDirectoryProxy server instance.

    ### Example:

    ```
    A good rule of thumb when naming locations is to use the
    name of your data centers or the cities containing them.

        b)  back
        q)  quit

    Enter a location name or choose a menu item: austin

        1)  Remove austin

        b)  back
        q)  quit
    ```

16. Define the newyork location.

    ### Example:

    ```
    Enter another location name or choose a menu item [Press ENTER
    when finished entering locations]: newyork

        1)  Remove austin
        2)  Remove newyork

        b)  back
        q)  quit

    Enter another location name or choose a menu item [Press ENTER
    when finished entering locations]:
    ```

17. Select the austin location for this PingDirectoryProxy server instance.

    ### Example:

    ```
    Choose the location for this Directory Proxy Server

        1) austin
        2) newyork

        b) back
        q) quit

    Enter choice [1]:
    ```

18. Specify the LDAP external server instances associated with this location.

    ### Example:

    ```
    Enter the host and port (host:port) of the first directory server
    in 'austin'

         b)  back
         q)  quit

    Enter a host:port or choose a menu item [localhost:389]:
    austin-set1.example.com:389
    ```

19. Specify that the `austin-set1` server can handle requests from the global domain and from set 1 restricted domain.

    ### Example:

    ```
    Assign server austin-set1.example.com:389 to handle requests for
    one or more of the defined sets of data:

        1) dc=example,dc=com
        2) ou=people,dc=example,dc=com; Server Set 1
        3) ou=people,dc=example,dc=com; Server Set 2

    Enter one or more choices separated by commas: 1,2
    ```

20. Enter the number corresponding to `Yes, and all subsequent servers` to prepare the server for access by the Directory Proxy Server.

    ### Example:

    ```
    Would you like to prepare austin-set1.example.com:389 for access
    by the Directory Proxy Server?

           1)Yes
           2)No
           3)Yes, and all subsequent servers
           4)No, and all subsequent servers

    Enter choice [3]:
    ```

21. Select the entry-balanced data set that the `austin-set1` server replicates with other servers.

    ### Example:

    ```
    You may choose a single entry-balanced data set with which
    austin-set1.example.com:389 will replicate data with other servers

        1) ou=people,dc=example,dc=com; Server Set 1
        2) None, data will not be replicated

    Enter choice: 1

    Testing connection to austin-set1.example.com:389 ..... Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access ....Denied
    ```

22. Modify the root user for use by the PingDirectoryProxy server, specifying the directory manager password for the initial creation of the proxy user.

    ### Example:

    ```
    Would you like to create or modify root user 'cn=Proxy User,
    cn=Root DNs,cn=config' so that it is available for this
    Directory Proxy Server? (yes / no) [yes]:

    Enter the DN of an account on austin-set1.example.com:389
    with which to create or manage the 'cn=Proxy User,cn=Root DNs,
    cn=config' account and configuration [cn=Directory Manager]:

    Enter the password for 'cn=Directory Manager':
    Created 'cn=Proxy User,cn=Root DNs,cn=config'
    Testing 'cn=Proxy User,cn=Root DNs,cn=config'privileges...Done
    Setting replication set name .....
    ```

23. Because the replication set name has already been configured, you do not need to use the name created automatically by the PingDirectoryProxy server.

    ### Example:

    ```
    This server is currently configured for replication set 'dataset1'.
    Would you like to reconfigure this server for replication set
    'set-1'? (yes / no) [no]:

    Setting replication set name ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    Verifying backend 'ou=people,dc=example,dc=com' ..... Done
    Testing 'cn=Proxy User' privileges ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    ```

24. Define the other Austin and New York servers using the same procedure in steps 17-24.

    ### Example:

    ```
    Enter another server in 'austin'

        1) Remove austin-set1.example.com:389
        b) back
        q) quit

    Enter a host:port or choose a menu item [Press ENTER when
    finished entering servers]: austin-set2.example.com:389

    Assign server austin-set2.example.com:389 to handle requests
    for one or more of the defined sets of data

        1) dc=example,dc=com
        2) ou=people,dc=example,dc=com; Server Set 1
        3) ou=people,dc=example,dc=com; Server Set 2

    Enter one or more choices separated by commas: 1,3

    You may choose a single entry-balanced data set with which
    austin-set2.example.com:389 will replicate data with other
    servers

        1) ou=people,dc=example,dc=com; Server Set 2
        2) None, data will not be replicated

    Enter choice: 1

    Testing connection to austin-set2.example.com:389 ....Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access ... Denied

    Would you like to create or modify root user 'cn=Proxy User,
    cn=Root DNs,cn=config' so that it is available for this
    Directory Proxy Server? (yes / no) [yes]:

    Would you like to use the previously entered manager credentials
    to access all prepared servers? (yes / no) [yes]:

    Created 'cn=Proxy User,cn=Root DNs,cn=config'
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' privileges...Done
    Setting replication set name .....

    This server is currently configured for replication set 'dataset2'.

    Would you like to reconfigure this server for replication set 'set-2'?
    (yes / no) [no]:

    Setting replication set name ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    Verifying backend 'ou=people,dc=example,dc=com' ..... Done

    Enter another server in 'austin'

        1) Remove austin-set1.example.com:389
        2) Remove austin-set2.example.com:389

        b) back
        q) quit

    Enter a host:port or choose a menu item [Press ENTER when
    finished entering servers]:

    >>>> >>>> Location 'newyork' Details
     >>>> External Servers

    External Servers identify directory server instances including
    host, port, and authentication information.

    Enter the host and port (host:port) of the first directory server
    in 'newyork':

        b) back
        q) quit

    Enter a host:port or choose a menu item [localhost:389]:
    newyork-set1.example.com:389

    Assign server newyork-set1.example.com:389 to handle requests
    for one or more of the defined sets of data

        1) dc=example,dc=com
        2) ou=people,dc=example,dc=com; Server Set 1
        3) ou=people,dc=example,dc=com; Server Set 2

    Enter one or more choices separated by commas: 1,2

    You may choose a single entry-balanced data set with which
    newyork-set1.example.com:389 will replicate data with other servers

        1) ou=people,dc=example,dc=com; Server Set 1
        2) None, data will not be replicated

    Enter choice: 1

    Testing connection to newyork-set1.example.com:389 ....Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access ... Denied

    Would you like to create or modify root user 'cn=Proxy User,
    cn=Root DNs,cn=config' so that it is available for this
    Directory Proxy Server? (yes / no) [yes]:

    Created 'cn=Proxy User,cn=Root DNs,cn=config'
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' privileges...Done
    Setting replication set name .....

    This server is currently configured for replication set 'dataset1'.

    Would you like to reconfigure this server for replication set
    'set-1'? (yes / no) [no]:

    Setting replication set name ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    Verifying backend 'ou=people,dc=example,dc=com' ..... Done

    Enter another server in 'newyork'

        1) Remove newyork-set1.example.com:389
        b) back
        q) quit

    Enter a host:port or choose a menu item [Press ENTER when
    finished entering servers]: newyork-set2.example.com:389

    Assign server newyork-set2.example.com:389 to handle requests
    for one or more of the defined sets of data:

        1) dc=example,dc=com
        2) ou=people,dc=example,dc=com; Server Set 1
        3) ou=people,dc=example,dc=com; Server Set 2

    Enter one or more choices separated by commas: 1,3

    You may choose a single entry-balanced data set with which
    new-york-set2.example.com:389 will replicate data with other servers

        1) ou=people,dc=example,dc=com; Server Set 2
        2) None, data will not be replicated

    Enter choice: 1

    Testing connection to newyork-set2.example.com:389 ..... Done
    Testing 'cn=Proxy User,cn=Root DNs,cn=config' access.... Denied

    Would you like to create or modify root user 'cn=Proxy User,
    cn=Root DNs,cn=config' so that it is available for this Directory
    Proxy Server? (yes / no) [yes]:

    Created 'cn=Proxy User,cn=Root DNs,cn=config' Testing
    'cn=Proxy User,cn=Root DNs,cn=config' privileges...Done
    Setting replication set name .....

    This server is currently configured for replication set 'dataset2'.
    Would you like to reconfigure this server for replication
    set 'set-2'? (yes / no) [no]:

    Setting replication set name ..... Done
    Verifying backend 'dc=example,dc=com' ..... Done
    Verifying backend 'ou=people,dc=example,dc=com' ..... Done

    Enter another server in 'newyork'

        1)Remove newyork-set1.example.com:389
        2)Remove newyork-set2.example.com:389

        b)back
        q)quit

    Enter a host:port or choose a menu item [Press ENTER when
    finished entering servers]:

    >>>> >>>> Configuration Summary

      External Server Security: None
      Proxy User DN: cn=Proxy User,cn=Root DNs,cn=config
      Location austin
        Failover Order: newyork
        Servers: austin-set1.example.com:389,
                 austin-set2.example.com:389
      Location newyork
        Failover Order: austin
        Servers: newyork-set1.example.com:389,
                 newyork-set2.example.com:389
      Base DN: dc=example,dc=com
        Servers: austin-set1.example.com:389,
                 austin-set2.example.com:389,
                 newyork-set1.example.com:389,
                 newyork-set2.example.com:389
      Base DN:vou=people,dc=example,dc=com
        Entry Balancing Base: ou=people,dc=example,dc=com
        Server Set 1: austin-set1.example.com:389,
                      newyork-set1.example.com:389
        Server Set 2: austin-set2.example.com:389,
                      newyork-set2.example.com:389
        Index Attributes: uid (primed,unique)
        Prime RDN Index: Yes

        NOTE: The Directory Proxy Server must be restarted after
        this tool has completed to have index priming take place

           b) back
           q) quit
           w) write configuration

        Enter choice [w]
        >>>> Write Configuration

        The configuration will be written to a 'dsconfig' batch
        file that can be used to configure other Directory Proxy Servers.

        Writing Directory Proxy Server configuration to /proxy/dps-cfg.txt.....Done
    ```

25. To apply the configuration changes to the PingDirectoryProxy server, enter `yes`.

    ### Example:

    ```
    Apply these configuration changes to the local Directory Proxy
    Server? (yes /no) [yes]:

    How do you want to connect to the Directory Proxy Server on localhost?

        1) LDAP
        2) LDAP with SSL
        3) LDAP with StartTLS

    Enter choice [1]:

    Administrator user bind DN [cn=Directory Manager]:
    Password for user 'cn=Directory Manager':
    Creating Locations ..... Done
    Updating Failover Locations ..... Done
    Updating Global Configuration ..... Done
    Creating Health Checks ..... Done
    Creating External Servers ..... Done
    Creating Load-Balancing Algorithm for dc=example,dc=com .... Done
    Creating Request Processor for dc=example,dc=com ..... Done
    Creating Subtree View for dc=example,dc=com ..... Done
    Updating Client Connection Policy for dc=example,dc=com ..... Done
    Creating Load-Balancing Algorithm for ou=people,dc=example,dc=com; Server Set 1 ..... Done
    Creating Request Processor for ou=people,dc=example,dc=com; Server Set 1...Done
    Creating Load-Balancing Algorithm for ou=people,dc=example,dc=com; Server Set 2 .... Done
    Creating Request Processor for ou=people,dc=example,dc=com; Server Set 2...Done
    Creating Entry Balancing Request Processor for ou=people,dc=example,dc=com ..... Done
    Creating Placement Algorithm for ou=people,dc=example,dc=com .... Done
    Creating Global Attribute Indexes for ou=people,dc=example,dc=com ..... Done
    Creating Subtree View for ou=people,dc=example,dc=com ..... Done
    Updating Client Connection Policy for ou=people,dc=example,dc=com ..... Done

    See /logs/create-initial-proxy-config.log for a detailed log of this operation

    To see basic server configuration status and configuration you can launch /bin/status
    ```
