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