Page created: 15 Jul 2022 |
Page updated: 20 Jan 2023
If a client connection must be disconnected due to the expense of the client's request, such as an unindexed search across a very large database, perform the following:
- Find the client's connection ID by looking in the cn=Active
Operations,cn=monitor monitor entry.
$ bin/ldapsearch -baseDN cn=monitor "cn=active operations" \ --bindDN "cn=directory manager" \ --bindPassword password
- The monitor entry will contain attribute values for
operation-in-progress, which look like an access log message. Look
for the value of conn in the client request that should be
disconnected. In the following example, the client to be disconnected is requesting a
search for (description=expensive), which is on connection 6.
dn: cn=Active Operations,cn=monitor objectClass: top objectClass: ds-monitor-entry objectClass: ds-active-operations-monitor-entry objectClass: extensibleObject cn: Active Operations num-operations-in-progress: 2 operation-in-progress: [15/Dec/2014:10:55:35 -0600] SEARCH conn=6 op=3 msgID=4 clientIP="10.8.4.21" authDN="cn=app1,ou=applications,dc=example,dc=com" base="dc =example,dc=com" scope=wholeSubtree filter="(description=expensive)" attrs="A LL" unindexed=true operation-in-progress: [15/Dec/2014:10:56:11 -0600] SEARCH conn=7 op=1 msgID=2 clientIP="127.0.0.1" authDN="cn=Directory Manager,cn=Root DNs,cn=config" base="c n=monitor" scope=wholeSubtree filter="(cn=active operations)" attrs="ALL" num-persistent-searches-in-progress: 0
- With the connection ID value, create a file with the following contents, named
dn: ds-task-id=disconnect6,cn=scheduled Tasks,cn=tasks objectClass: top objectClass: ds-task objectClass: ds-task-disconnect ds-task-disconnect-connection-id: 6 ds-task-id: disconnect6 ds-task-class-name: com.unboundid.directory.server.tasks.DisconnectClientTask
- This LDIF file represents a task entry. The connection ID value 6 is assigned to ds-task-disconnect-connection-id. The value for ds-task-id value does not follow a specific convention. It must be unique among other task entries currently cached by the server.
- Disconnect the client and cancel the associated operation by adding the task entry to
$ bin/ldapmodify --filename disconnect6.ldif \ --defaultAdd --bindDN "cn=directory manager" \ --bindPassword password