001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
010 * or http://forgerock.org/license/CDDLv1.0.html.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file and include the License file at legal-notices/CDDLv1_0.txt.
016 * If applicable, add the following below this CDDL HEADER, with the
017 * fields enclosed by brackets "[]" replaced with your own identifying
018 * information:
019 *      Portions Copyright [yyyy] [name of copyright owner]
020 *
021 * CDDL HEADER END
022 *
023 *
024 *      Copyright 2008 Sun Microsystems, Inc.
025 */
026package org.opends.server.admin.std.client;
027
028
029
030import java.net.InetAddress;
031import java.util.Collection;
032import java.util.SortedSet;
033import org.opends.server.admin.ManagedObjectDefinition;
034import org.opends.server.admin.PropertyException;
035import org.opends.server.admin.std.meta.LDAPConnectionHandlerCfgDefn.SSLClientAuthPolicy;
036import org.opends.server.admin.std.server.LDAPConnectionHandlerCfg;
037
038
039
040/**
041 * A client-side interface for reading and modifying LDAP Connection
042 * Handler settings.
043 * <p>
044 * The LDAP Connection Handler is used to interact with clients using
045 * LDAP.
046 */
047public interface LDAPConnectionHandlerCfgClient extends ConnectionHandlerCfgClient {
048
049  /**
050   * Get the configuration definition associated with this LDAP Connection Handler.
051   *
052   * @return Returns the configuration definition associated with this LDAP Connection Handler.
053   */
054  ManagedObjectDefinition<? extends LDAPConnectionHandlerCfgClient, ? extends LDAPConnectionHandlerCfg> definition();
055
056
057
058  /**
059   * Gets the "accept-backlog" property.
060   * <p>
061   * Specifies the maximum number of pending connection attempts that
062   * are allowed to queue up in the accept backlog before the server
063   * starts rejecting new connection attempts.
064   * <p>
065   * This is primarily an issue for cases in which a large number of
066   * connections are established to the server in a very short period
067   * of time (for example, a benchmark utility that creates a large
068   * number of client threads that each have their own connection to
069   * the server) and the connection handler is unable to keep up with
070   * the rate at which the new connections are established.
071   *
072   * @return Returns the value of the "accept-backlog" property.
073   */
074  int getAcceptBacklog();
075
076
077
078  /**
079   * Sets the "accept-backlog" property.
080   * <p>
081   * Specifies the maximum number of pending connection attempts that
082   * are allowed to queue up in the accept backlog before the server
083   * starts rejecting new connection attempts.
084   * <p>
085   * This is primarily an issue for cases in which a large number of
086   * connections are established to the server in a very short period
087   * of time (for example, a benchmark utility that creates a large
088   * number of client threads that each have their own connection to
089   * the server) and the connection handler is unable to keep up with
090   * the rate at which the new connections are established.
091   *
092   * @param value The value of the "accept-backlog" property.
093   * @throws PropertyException
094   *           If the new value is invalid.
095   */
096  void setAcceptBacklog(Integer value) throws PropertyException;
097
098
099
100  /**
101   * Gets the "allow-ldap-v2" property.
102   * <p>
103   * Indicates whether connections from LDAPv2 clients are allowed.
104   * <p>
105   * If LDAPv2 clients are allowed, then only a minimal degree of
106   * special support are provided for them to ensure that
107   * LDAPv3-specific protocol elements (for example, Configuration
108   * Guide 25 controls, extended response messages, intermediate
109   * response messages, referrals) are not sent to an LDAPv2 client.
110   *
111   * @return Returns the value of the "allow-ldap-v2" property.
112   */
113  boolean isAllowLDAPV2();
114
115
116
117  /**
118   * Sets the "allow-ldap-v2" property.
119   * <p>
120   * Indicates whether connections from LDAPv2 clients are allowed.
121   * <p>
122   * If LDAPv2 clients are allowed, then only a minimal degree of
123   * special support are provided for them to ensure that
124   * LDAPv3-specific protocol elements (for example, Configuration
125   * Guide 25 controls, extended response messages, intermediate
126   * response messages, referrals) are not sent to an LDAPv2 client.
127   *
128   * @param value The value of the "allow-ldap-v2" property.
129   * @throws PropertyException
130   *           If the new value is invalid.
131   */
132  void setAllowLDAPV2(Boolean value) throws PropertyException;
133
134
135
136  /**
137   * Gets the "allow-start-tls" property.
138   * <p>
139   * Indicates whether clients are allowed to use StartTLS.
140   * <p>
141   * If enabled, the LDAP Connection Handler allows clients to use the
142   * StartTLS extended operation to initiate secure communication over
143   * an otherwise insecure channel. Note that this is only allowed if
144   * the LDAP Connection Handler is not configured to use SSL, and if
145   * the server is configured with a valid key manager provider and a
146   * valid trust manager provider.
147   *
148   * @return Returns the value of the "allow-start-tls" property.
149   */
150  boolean isAllowStartTLS();
151
152
153
154  /**
155   * Sets the "allow-start-tls" property.
156   * <p>
157   * Indicates whether clients are allowed to use StartTLS.
158   * <p>
159   * If enabled, the LDAP Connection Handler allows clients to use the
160   * StartTLS extended operation to initiate secure communication over
161   * an otherwise insecure channel. Note that this is only allowed if
162   * the LDAP Connection Handler is not configured to use SSL, and if
163   * the server is configured with a valid key manager provider and a
164   * valid trust manager provider.
165   *
166   * @param value The value of the "allow-start-tls" property.
167   * @throws PropertyException
168   *           If the new value is invalid.
169   */
170  void setAllowStartTLS(Boolean value) throws PropertyException;
171
172
173
174  /**
175   * Gets the "allow-tcp-reuse-address" property.
176   * <p>
177   * Indicates whether the LDAP Connection Handler should reuse socket
178   * descriptors.
179   * <p>
180   * If enabled, the SO_REUSEADDR socket option is used on the server
181   * listen socket to potentially allow the reuse of socket descriptors
182   * for clients in a TIME_WAIT state. This may help the server avoid
183   * temporarily running out of socket descriptors in cases in which a
184   * very large number of short-lived connections have been established
185   * from the same client system.
186   *
187   * @return Returns the value of the "allow-tcp-reuse-address" property.
188   */
189  boolean isAllowTCPReuseAddress();
190
191
192
193  /**
194   * Sets the "allow-tcp-reuse-address" property.
195   * <p>
196   * Indicates whether the LDAP Connection Handler should reuse socket
197   * descriptors.
198   * <p>
199   * If enabled, the SO_REUSEADDR socket option is used on the server
200   * listen socket to potentially allow the reuse of socket descriptors
201   * for clients in a TIME_WAIT state. This may help the server avoid
202   * temporarily running out of socket descriptors in cases in which a
203   * very large number of short-lived connections have been established
204   * from the same client system.
205   *
206   * @param value The value of the "allow-tcp-reuse-address" property.
207   * @throws PropertyException
208   *           If the new value is invalid.
209   */
210  void setAllowTCPReuseAddress(Boolean value) throws PropertyException;
211
212
213
214  /**
215   * Gets the "buffer-size" property.
216   * <p>
217   * Specifies the size in bytes of the LDAP response message write
218   * buffer.
219   * <p>
220   * This property specifies write buffer size allocated by the server
221   * for each client connection and used to buffer LDAP response
222   * messages data when writing.
223   *
224   * @return Returns the value of the "buffer-size" property.
225   */
226  long getBufferSize();
227
228
229
230  /**
231   * Sets the "buffer-size" property.
232   * <p>
233   * Specifies the size in bytes of the LDAP response message write
234   * buffer.
235   * <p>
236   * This property specifies write buffer size allocated by the server
237   * for each client connection and used to buffer LDAP response
238   * messages data when writing.
239   *
240   * @param value The value of the "buffer-size" property.
241   * @throws PropertyException
242   *           If the new value is invalid.
243   */
244  void setBufferSize(Long value) throws PropertyException;
245
246
247
248  /**
249   * Gets the "java-class" property.
250   * <p>
251   * Specifies the fully-qualified name of the Java class that
252   * provides the LDAP Connection Handler implementation.
253   *
254   * @return Returns the value of the "java-class" property.
255   */
256  String getJavaClass();
257
258
259
260  /**
261   * Sets the "java-class" property.
262   * <p>
263   * Specifies the fully-qualified name of the Java class that
264   * provides the LDAP Connection Handler implementation.
265   *
266   * @param value The value of the "java-class" property.
267   * @throws PropertyException
268   *           If the new value is invalid.
269   */
270  void setJavaClass(String value) throws PropertyException;
271
272
273
274  /**
275   * Gets the "keep-stats" property.
276   * <p>
277   * Indicates whether the LDAP Connection Handler should keep
278   * statistics.
279   * <p>
280   * If enabled, the LDAP Connection Handler maintains statistics
281   * about the number and types of operations requested over LDAP and
282   * the amount of data sent and received.
283   *
284   * @return Returns the value of the "keep-stats" property.
285   */
286  boolean isKeepStats();
287
288
289
290  /**
291   * Sets the "keep-stats" property.
292   * <p>
293   * Indicates whether the LDAP Connection Handler should keep
294   * statistics.
295   * <p>
296   * If enabled, the LDAP Connection Handler maintains statistics
297   * about the number and types of operations requested over LDAP and
298   * the amount of data sent and received.
299   *
300   * @param value The value of the "keep-stats" property.
301   * @throws PropertyException
302   *           If the new value is invalid.
303   */
304  void setKeepStats(Boolean value) throws PropertyException;
305
306
307
308  /**
309   * Gets the "key-manager-provider" property.
310   * <p>
311   * Specifies the name of the key manager that should be used with
312   * this LDAP Connection Handler .
313   *
314   * @return Returns the value of the "key-manager-provider" property.
315   */
316  String getKeyManagerProvider();
317
318
319
320  /**
321   * Sets the "key-manager-provider" property.
322   * <p>
323   * Specifies the name of the key manager that should be used with
324   * this LDAP Connection Handler .
325   *
326   * @param value The value of the "key-manager-provider" property.
327   * @throws PropertyException
328   *           If the new value is invalid.
329   */
330  void setKeyManagerProvider(String value) throws PropertyException;
331
332
333
334  /**
335   * Gets the "listen-address" property.
336   * <p>
337   * Specifies the address or set of addresses on which this LDAP
338   * Connection Handler should listen for connections from LDAP
339   * clients.
340   * <p>
341   * Multiple addresses may be provided as separate values for this
342   * attribute. If no values are provided, then the LDAP Connection
343   * Handler listens on all interfaces.
344   *
345   * @return Returns the values of the "listen-address" property.
346   */
347  SortedSet<InetAddress> getListenAddress();
348
349
350
351  /**
352   * Sets the "listen-address" property.
353   * <p>
354   * Specifies the address or set of addresses on which this LDAP
355   * Connection Handler should listen for connections from LDAP
356   * clients.
357   * <p>
358   * Multiple addresses may be provided as separate values for this
359   * attribute. If no values are provided, then the LDAP Connection
360   * Handler listens on all interfaces.
361   *
362   * @param values The values of the "listen-address" property.
363   * @throws PropertyException
364   *           If one or more of the new values are invalid.
365   */
366  void setListenAddress(Collection<InetAddress> values) throws PropertyException;
367
368
369
370  /**
371   * Gets the "listen-port" property.
372   * <p>
373   * Specifies the port number on which the LDAP Connection Handler
374   * will listen for connections from clients.
375   * <p>
376   * Only a single port number may be provided.
377   *
378   * @return Returns the value of the "listen-port" property.
379   */
380  Integer getListenPort();
381
382
383
384  /**
385   * Sets the "listen-port" property.
386   * <p>
387   * Specifies the port number on which the LDAP Connection Handler
388   * will listen for connections from clients.
389   * <p>
390   * Only a single port number may be provided.
391   *
392   * @param value The value of the "listen-port" property.
393   * @throws PropertyException
394   *           If the new value is invalid.
395   */
396  void setListenPort(int value) throws PropertyException;
397
398
399
400  /**
401   * Gets the "max-blocked-write-time-limit" property.
402   * <p>
403   * Specifies the maximum length of time that attempts to write data
404   * to LDAP clients should be allowed to block.
405   * <p>
406   * If an attempt to write data to a client takes longer than this
407   * length of time, then the client connection is terminated.
408   *
409   * @return Returns the value of the "max-blocked-write-time-limit" property.
410   */
411  long getMaxBlockedWriteTimeLimit();
412
413
414
415  /**
416   * Sets the "max-blocked-write-time-limit" property.
417   * <p>
418   * Specifies the maximum length of time that attempts to write data
419   * to LDAP clients should be allowed to block.
420   * <p>
421   * If an attempt to write data to a client takes longer than this
422   * length of time, then the client connection is terminated.
423   *
424   * @param value The value of the "max-blocked-write-time-limit" property.
425   * @throws PropertyException
426   *           If the new value is invalid.
427   */
428  void setMaxBlockedWriteTimeLimit(Long value) throws PropertyException;
429
430
431
432  /**
433   * Gets the "max-request-size" property.
434   * <p>
435   * Specifies the size in bytes of the largest LDAP request message
436   * that will be allowed by this LDAP Connection handler.
437   * <p>
438   * This property is analogous to the maxBERSize configuration
439   * attribute of the Sun Java System Directory Server. This can help
440   * prevent denial-of-service attacks by clients that indicate they
441   * send extremely large requests to the server causing it to attempt
442   * to allocate large amounts of memory.
443   *
444   * @return Returns the value of the "max-request-size" property.
445   */
446  long getMaxRequestSize();
447
448
449
450  /**
451   * Sets the "max-request-size" property.
452   * <p>
453   * Specifies the size in bytes of the largest LDAP request message
454   * that will be allowed by this LDAP Connection handler.
455   * <p>
456   * This property is analogous to the maxBERSize configuration
457   * attribute of the Sun Java System Directory Server. This can help
458   * prevent denial-of-service attacks by clients that indicate they
459   * send extremely large requests to the server causing it to attempt
460   * to allocate large amounts of memory.
461   *
462   * @param value The value of the "max-request-size" property.
463   * @throws PropertyException
464   *           If the new value is invalid.
465   */
466  void setMaxRequestSize(Long value) throws PropertyException;
467
468
469
470  /**
471   * Gets the "num-request-handlers" property.
472   * <p>
473   * Specifies the number of request handlers that are used to read
474   * requests from clients.
475   * <p>
476   * The LDAP Connection Handler uses one thread to accept new
477   * connections from clients, but uses one or more additional threads
478   * to read requests from existing client connections. This ensures
479   * that new requests are read efficiently and that the connection
480   * handler itself does not become a bottleneck when the server is
481   * under heavy load from many clients at the same time.
482   *
483   * @return Returns the value of the "num-request-handlers" property.
484   */
485  Integer getNumRequestHandlers();
486
487
488
489  /**
490   * Sets the "num-request-handlers" property.
491   * <p>
492   * Specifies the number of request handlers that are used to read
493   * requests from clients.
494   * <p>
495   * The LDAP Connection Handler uses one thread to accept new
496   * connections from clients, but uses one or more additional threads
497   * to read requests from existing client connections. This ensures
498   * that new requests are read efficiently and that the connection
499   * handler itself does not become a bottleneck when the server is
500   * under heavy load from many clients at the same time.
501   *
502   * @param value The value of the "num-request-handlers" property.
503   * @throws PropertyException
504   *           If the new value is invalid.
505   */
506  void setNumRequestHandlers(Integer value) throws PropertyException;
507
508
509
510  /**
511   * Gets the "send-rejection-notice" property.
512   * <p>
513   * Indicates whether the LDAP Connection Handler should send a
514   * notice of disconnection extended response message to the client if
515   * a new connection is rejected for some reason.
516   * <p>
517   * The extended response message may provide an explanation
518   * indicating the reason that the connection was rejected.
519   *
520   * @return Returns the value of the "send-rejection-notice" property.
521   */
522  boolean isSendRejectionNotice();
523
524
525
526  /**
527   * Sets the "send-rejection-notice" property.
528   * <p>
529   * Indicates whether the LDAP Connection Handler should send a
530   * notice of disconnection extended response message to the client if
531   * a new connection is rejected for some reason.
532   * <p>
533   * The extended response message may provide an explanation
534   * indicating the reason that the connection was rejected.
535   *
536   * @param value The value of the "send-rejection-notice" property.
537   * @throws PropertyException
538   *           If the new value is invalid.
539   */
540  void setSendRejectionNotice(Boolean value) throws PropertyException;
541
542
543
544  /**
545   * Gets the "ssl-cert-nickname" property.
546   * <p>
547   * Specifies the nicknames (also called the aliases) of the
548   * certificates that the LDAP Connection Handler should use when
549   * performing SSL communication. The property can be used multiple
550   * times (referencing different nicknames) when an RSA, a DSA, and an
551   * ECC based server certificate is used in parallel.
552   * <p>
553   * This is only applicable when the LDAP Connection Handler is
554   * configured to use SSL.
555   *
556   * @return Returns the values of the "ssl-cert-nickname" property.
557   */
558  SortedSet<String> getSSLCertNickname();
559
560
561
562  /**
563   * Sets the "ssl-cert-nickname" property.
564   * <p>
565   * Specifies the nicknames (also called the aliases) of the
566   * certificates that the LDAP Connection Handler should use when
567   * performing SSL communication. The property can be used multiple
568   * times (referencing different nicknames) when an RSA, a DSA, and an
569   * ECC based server certificate is used in parallel.
570   * <p>
571   * This is only applicable when the LDAP Connection Handler is
572   * configured to use SSL.
573   *
574   * @param values The values of the "ssl-cert-nickname" property.
575   * @throws PropertyException
576   *           If one or more of the new values are invalid.
577   */
578  void setSSLCertNickname(Collection<String> values) throws PropertyException;
579
580
581
582  /**
583   * Gets the "ssl-cipher-suite" property.
584   * <p>
585   * Specifies the names of the SSL cipher suites that are allowed for
586   * use in SSL or StartTLS communication.
587   *
588   * @return Returns the values of the "ssl-cipher-suite" property.
589   */
590  SortedSet<String> getSSLCipherSuite();
591
592
593
594  /**
595   * Sets the "ssl-cipher-suite" property.
596   * <p>
597   * Specifies the names of the SSL cipher suites that are allowed for
598   * use in SSL or StartTLS communication.
599   *
600   * @param values The values of the "ssl-cipher-suite" property.
601   * @throws PropertyException
602   *           If one or more of the new values are invalid.
603   */
604  void setSSLCipherSuite(Collection<String> values) throws PropertyException;
605
606
607
608  /**
609   * Gets the "ssl-client-auth-policy" property.
610   * <p>
611   * Specifies the policy that the LDAP Connection Handler should use
612   * regarding client SSL certificates. Clients can use the SASL
613   * EXTERNAL mechanism only if the policy is set to "optional" or
614   * "required".
615   * <p>
616   * This is only applicable if clients are allowed to use SSL.
617   *
618   * @return Returns the value of the "ssl-client-auth-policy" property.
619   */
620  SSLClientAuthPolicy getSSLClientAuthPolicy();
621
622
623
624  /**
625   * Sets the "ssl-client-auth-policy" property.
626   * <p>
627   * Specifies the policy that the LDAP Connection Handler should use
628   * regarding client SSL certificates. Clients can use the SASL
629   * EXTERNAL mechanism only if the policy is set to "optional" or
630   * "required".
631   * <p>
632   * This is only applicable if clients are allowed to use SSL.
633   *
634   * @param value The value of the "ssl-client-auth-policy" property.
635   * @throws PropertyException
636   *           If the new value is invalid.
637   */
638  void setSSLClientAuthPolicy(SSLClientAuthPolicy value) throws PropertyException;
639
640
641
642  /**
643   * Gets the "ssl-protocol" property.
644   * <p>
645   * Specifies the names of the SSL protocols that are allowed for use
646   * in SSL or StartTLS communication.
647   *
648   * @return Returns the values of the "ssl-protocol" property.
649   */
650  SortedSet<String> getSSLProtocol();
651
652
653
654  /**
655   * Sets the "ssl-protocol" property.
656   * <p>
657   * Specifies the names of the SSL protocols that are allowed for use
658   * in SSL or StartTLS communication.
659   *
660   * @param values The values of the "ssl-protocol" property.
661   * @throws PropertyException
662   *           If one or more of the new values are invalid.
663   */
664  void setSSLProtocol(Collection<String> values) throws PropertyException;
665
666
667
668  /**
669   * Gets the "trust-manager-provider" property.
670   * <p>
671   * Specifies the name of the trust manager that should be used with
672   * the LDAP Connection Handler .
673   *
674   * @return Returns the value of the "trust-manager-provider" property.
675   */
676  String getTrustManagerProvider();
677
678
679
680  /**
681   * Sets the "trust-manager-provider" property.
682   * <p>
683   * Specifies the name of the trust manager that should be used with
684   * the LDAP Connection Handler .
685   *
686   * @param value The value of the "trust-manager-provider" property.
687   * @throws PropertyException
688   *           If the new value is invalid.
689   */
690  void setTrustManagerProvider(String value) throws PropertyException;
691
692
693
694  /**
695   * Gets the "use-ssl" property.
696   * <p>
697   * Indicates whether the LDAP Connection Handler should use SSL.
698   * <p>
699   * If enabled, the LDAP Connection Handler will use SSL to encrypt
700   * communication with the clients.
701   *
702   * @return Returns the value of the "use-ssl" property.
703   */
704  boolean isUseSSL();
705
706
707
708  /**
709   * Sets the "use-ssl" property.
710   * <p>
711   * Indicates whether the LDAP Connection Handler should use SSL.
712   * <p>
713   * If enabled, the LDAP Connection Handler will use SSL to encrypt
714   * communication with the clients.
715   *
716   * @param value The value of the "use-ssl" property.
717   * @throws PropertyException
718   *           If the new value is invalid.
719   */
720  void setUseSSL(Boolean value) throws PropertyException;
721
722
723
724  /**
725   * Gets the "use-tcp-keep-alive" property.
726   * <p>
727   * Indicates whether the LDAP Connection Handler should use TCP
728   * keep-alive.
729   * <p>
730   * If enabled, the SO_KEEPALIVE socket option is used to indicate
731   * that TCP keepalive messages should periodically be sent to the
732   * client to verify that the associated connection is still valid.
733   * This may also help prevent cases in which intermediate network
734   * hardware could silently drop an otherwise idle client connection,
735   * provided that the keepalive interval configured in the underlying
736   * operating system is smaller than the timeout enforced by the
737   * network hardware.
738   *
739   * @return Returns the value of the "use-tcp-keep-alive" property.
740   */
741  boolean isUseTCPKeepAlive();
742
743
744
745  /**
746   * Sets the "use-tcp-keep-alive" property.
747   * <p>
748   * Indicates whether the LDAP Connection Handler should use TCP
749   * keep-alive.
750   * <p>
751   * If enabled, the SO_KEEPALIVE socket option is used to indicate
752   * that TCP keepalive messages should periodically be sent to the
753   * client to verify that the associated connection is still valid.
754   * This may also help prevent cases in which intermediate network
755   * hardware could silently drop an otherwise idle client connection,
756   * provided that the keepalive interval configured in the underlying
757   * operating system is smaller than the timeout enforced by the
758   * network hardware.
759   *
760   * @param value The value of the "use-tcp-keep-alive" property.
761   * @throws PropertyException
762   *           If the new value is invalid.
763   */
764  void setUseTCPKeepAlive(Boolean value) throws PropertyException;
765
766
767
768  /**
769   * Gets the "use-tcp-no-delay" property.
770   * <p>
771   * Indicates whether the LDAP Connection Handler should use TCP
772   * no-delay.
773   * <p>
774   * If enabled, the TCP_NODELAY socket option is used to ensure that
775   * response messages to the client are sent immediately rather than
776   * potentially waiting to determine whether additional response
777   * messages can be sent in the same packet. In most cases, using the
778   * TCP_NODELAY socket option provides better performance and lower
779   * response times, but disabling it may help for some cases in which
780   * the server sends a large number of entries to a client in response
781   * to a search request.
782   *
783   * @return Returns the value of the "use-tcp-no-delay" property.
784   */
785  boolean isUseTCPNoDelay();
786
787
788
789  /**
790   * Sets the "use-tcp-no-delay" property.
791   * <p>
792   * Indicates whether the LDAP Connection Handler should use TCP
793   * no-delay.
794   * <p>
795   * If enabled, the TCP_NODELAY socket option is used to ensure that
796   * response messages to the client are sent immediately rather than
797   * potentially waiting to determine whether additional response
798   * messages can be sent in the same packet. In most cases, using the
799   * TCP_NODELAY socket option provides better performance and lower
800   * response times, but disabling it may help for some cases in which
801   * the server sends a large number of entries to a client in response
802   * to a search request.
803   *
804   * @param value The value of the "use-tcp-no-delay" property.
805   * @throws PropertyException
806   *           If the new value is invalid.
807   */
808  void setUseTCPNoDelay(Boolean value) throws PropertyException;
809
810}