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.forgerock.opendj.server.config.client; 017 018 019 020import java.net.InetAddress; 021import java.util.Collection; 022import java.util.SortedSet; 023import org.forgerock.opendj.config.ManagedObjectDefinition; 024import org.forgerock.opendj.config.PropertyException; 025import org.forgerock.opendj.server.config.meta.LDAPConnectionHandlerCfgDefn.SSLClientAuthPolicy; 026import org.forgerock.opendj.server.config.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 keys or 538 * key pairs that the LDAP Connection Handler should use when 539 * performing SSL communication. The property can be used multiple 540 * times (referencing different nicknames) when server certificates 541 * with different public key algorithms are used in parallel (for 542 * example, RSA, DSA, and ECC-based algorithms). When a nickname 543 * refers to an asymmetric (public/private) key pair, the nickname 544 * for the public key certificate and associated private key entry 545 * must match exactly. A single nickname is used to retrieve both the 546 * public key and the private key. 547 * <p> 548 * This is only applicable when the LDAP Connection Handler is 549 * configured to use SSL. 550 * 551 * @return Returns the values of the "ssl-cert-nickname" property. 552 */ 553 SortedSet<String> getSSLCertNickname(); 554 555 556 557 /** 558 * Sets the "ssl-cert-nickname" property. 559 * <p> 560 * Specifies the nicknames (also called the aliases) of the keys or 561 * key pairs that the LDAP Connection Handler should use when 562 * performing SSL communication. The property can be used multiple 563 * times (referencing different nicknames) when server certificates 564 * with different public key algorithms are used in parallel (for 565 * example, RSA, DSA, and ECC-based algorithms). When a nickname 566 * refers to an asymmetric (public/private) key pair, the nickname 567 * for the public key certificate and associated private key entry 568 * must match exactly. A single nickname is used to retrieve both the 569 * public key and the private key. 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}