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 nickname (also called the alias) of the certificate
548   * that the LDAP Connection Handler should use when performing SSL
549   * communication.
550   * <p>
551   * This is only applicable when the LDAP Connection Handler is
552   * configured to use SSL.
553   *
554   * @return Returns the value of the "ssl-cert-nickname" property.
555   */
556  String getSSLCertNickname();
557
558
559
560  /**
561   * Sets the "ssl-cert-nickname" property.
562   * <p>
563   * Specifies the nickname (also called the alias) of the certificate
564   * that the LDAP Connection Handler should use when performing SSL
565   * communication.
566   * <p>
567   * This is only applicable when the LDAP Connection Handler is
568   * configured to use SSL.
569   *
570   * @param value The value of the "ssl-cert-nickname" property.
571   * @throws PropertyException
572   *           If the new value is invalid.
573   */
574  void setSSLCertNickname(String value) throws PropertyException;
575
576
577
578  /**
579   * Gets the "ssl-cipher-suite" property.
580   * <p>
581   * Specifies the names of the SSL cipher suites that are allowed for
582   * use in SSL or StartTLS communication.
583   *
584   * @return Returns the values of the "ssl-cipher-suite" property.
585   */
586  SortedSet<String> getSSLCipherSuite();
587
588
589
590  /**
591   * Sets the "ssl-cipher-suite" property.
592   * <p>
593   * Specifies the names of the SSL cipher suites that are allowed for
594   * use in SSL or StartTLS communication.
595   *
596   * @param values The values of the "ssl-cipher-suite" property.
597   * @throws PropertyException
598   *           If one or more of the new values are invalid.
599   */
600  void setSSLCipherSuite(Collection<String> values) throws PropertyException;
601
602
603
604  /**
605   * Gets the "ssl-client-auth-policy" property.
606   * <p>
607   * Specifies the policy that the LDAP Connection Handler should use
608   * regarding client SSL certificates. Clients can use the SASL
609   * EXTERNAL mechanism only if the policy is set to "optional" or
610   * "required".
611   * <p>
612   * This is only applicable if clients are allowed to use SSL.
613   *
614   * @return Returns the value of the "ssl-client-auth-policy" property.
615   */
616  SSLClientAuthPolicy getSSLClientAuthPolicy();
617
618
619
620  /**
621   * Sets the "ssl-client-auth-policy" property.
622   * <p>
623   * Specifies the policy that the LDAP Connection Handler should use
624   * regarding client SSL certificates. Clients can use the SASL
625   * EXTERNAL mechanism only if the policy is set to "optional" or
626   * "required".
627   * <p>
628   * This is only applicable if clients are allowed to use SSL.
629   *
630   * @param value The value of the "ssl-client-auth-policy" property.
631   * @throws PropertyException
632   *           If the new value is invalid.
633   */
634  void setSSLClientAuthPolicy(SSLClientAuthPolicy value) throws PropertyException;
635
636
637
638  /**
639   * Gets the "ssl-protocol" property.
640   * <p>
641   * Specifies the names of the SSL protocols that are allowed for use
642   * in SSL or StartTLS communication.
643   *
644   * @return Returns the values of the "ssl-protocol" property.
645   */
646  SortedSet<String> getSSLProtocol();
647
648
649
650  /**
651   * Sets the "ssl-protocol" property.
652   * <p>
653   * Specifies the names of the SSL protocols that are allowed for use
654   * in SSL or StartTLS communication.
655   *
656   * @param values The values of the "ssl-protocol" property.
657   * @throws PropertyException
658   *           If one or more of the new values are invalid.
659   */
660  void setSSLProtocol(Collection<String> values) throws PropertyException;
661
662
663
664  /**
665   * Gets the "trust-manager-provider" property.
666   * <p>
667   * Specifies the name of the trust manager that should be used with
668   * the LDAP Connection Handler .
669   *
670   * @return Returns the value of the "trust-manager-provider" property.
671   */
672  String getTrustManagerProvider();
673
674
675
676  /**
677   * Sets the "trust-manager-provider" property.
678   * <p>
679   * Specifies the name of the trust manager that should be used with
680   * the LDAP Connection Handler .
681   *
682   * @param value The value of the "trust-manager-provider" property.
683   * @throws PropertyException
684   *           If the new value is invalid.
685   */
686  void setTrustManagerProvider(String value) throws PropertyException;
687
688
689
690  /**
691   * Gets the "use-ssl" property.
692   * <p>
693   * Indicates whether the LDAP Connection Handler should use SSL.
694   * <p>
695   * If enabled, the LDAP Connection Handler will use SSL to encrypt
696   * communication with the clients.
697   *
698   * @return Returns the value of the "use-ssl" property.
699   */
700  boolean isUseSSL();
701
702
703
704  /**
705   * Sets the "use-ssl" property.
706   * <p>
707   * Indicates whether the LDAP Connection Handler should use SSL.
708   * <p>
709   * If enabled, the LDAP Connection Handler will use SSL to encrypt
710   * communication with the clients.
711   *
712   * @param value The value of the "use-ssl" property.
713   * @throws PropertyException
714   *           If the new value is invalid.
715   */
716  void setUseSSL(Boolean value) throws PropertyException;
717
718
719
720  /**
721   * Gets the "use-tcp-keep-alive" property.
722   * <p>
723   * Indicates whether the LDAP Connection Handler should use TCP
724   * keep-alive.
725   * <p>
726   * If enabled, the SO_KEEPALIVE socket option is used to indicate
727   * that TCP keepalive messages should periodically be sent to the
728   * client to verify that the associated connection is still valid.
729   * This may also help prevent cases in which intermediate network
730   * hardware could silently drop an otherwise idle client connection,
731   * provided that the keepalive interval configured in the underlying
732   * operating system is smaller than the timeout enforced by the
733   * network hardware.
734   *
735   * @return Returns the value of the "use-tcp-keep-alive" property.
736   */
737  boolean isUseTCPKeepAlive();
738
739
740
741  /**
742   * Sets the "use-tcp-keep-alive" property.
743   * <p>
744   * Indicates whether the LDAP Connection Handler should use TCP
745   * keep-alive.
746   * <p>
747   * If enabled, the SO_KEEPALIVE socket option is used to indicate
748   * that TCP keepalive messages should periodically be sent to the
749   * client to verify that the associated connection is still valid.
750   * This may also help prevent cases in which intermediate network
751   * hardware could silently drop an otherwise idle client connection,
752   * provided that the keepalive interval configured in the underlying
753   * operating system is smaller than the timeout enforced by the
754   * network hardware.
755   *
756   * @param value The value of the "use-tcp-keep-alive" property.
757   * @throws PropertyException
758   *           If the new value is invalid.
759   */
760  void setUseTCPKeepAlive(Boolean value) throws PropertyException;
761
762
763
764  /**
765   * Gets the "use-tcp-no-delay" property.
766   * <p>
767   * Indicates whether the LDAP Connection Handler should use TCP
768   * no-delay.
769   * <p>
770   * If enabled, the TCP_NODELAY socket option is used to ensure that
771   * response messages to the client are sent immediately rather than
772   * potentially waiting to determine whether additional response
773   * messages can be sent in the same packet. In most cases, using the
774   * TCP_NODELAY socket option provides better performance and lower
775   * response times, but disabling it may help for some cases in which
776   * the server sends a large number of entries to a client in response
777   * to a search request.
778   *
779   * @return Returns the value of the "use-tcp-no-delay" property.
780   */
781  boolean isUseTCPNoDelay();
782
783
784
785  /**
786   * Sets the "use-tcp-no-delay" property.
787   * <p>
788   * Indicates whether the LDAP Connection Handler should use TCP
789   * no-delay.
790   * <p>
791   * If enabled, the TCP_NODELAY socket option is used to ensure that
792   * response messages to the client are sent immediately rather than
793   * potentially waiting to determine whether additional response
794   * messages can be sent in the same packet. In most cases, using the
795   * TCP_NODELAY socket option provides better performance and lower
796   * response times, but disabling it may help for some cases in which
797   * the server sends a large number of entries to a client in response
798   * to a search request.
799   *
800   * @param value The value of the "use-tcp-no-delay" property.
801   * @throws PropertyException
802   *           If the new value is invalid.
803   */
804  void setUseTCPNoDelay(Boolean value) throws PropertyException;
805
806}