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.util.Collection; 031import java.util.SortedSet; 032import org.opends.server.admin.ManagedObjectDefinition; 033import org.opends.server.admin.PropertyException; 034import org.opends.server.admin.std.server.JEBackendCfg; 035 036 037 038/** 039 * A client-side interface for reading and modifying JE Backend 040 * settings. 041 * <p> 042 * A JE Backend stores application data in a Berkeley DB Java Edition 043 * database. 044 */ 045public interface JEBackendCfgClient extends PluggableBackendCfgClient { 046 047 /** 048 * Get the configuration definition associated with this JE Backend. 049 * 050 * @return Returns the configuration definition associated with this JE Backend. 051 */ 052 ManagedObjectDefinition<? extends JEBackendCfgClient, ? extends JEBackendCfg> definition(); 053 054 055 056 /** 057 * Gets the "db-cache-percent" property. 058 * <p> 059 * Specifies the percentage of JVM memory to allocate to the 060 * database cache. 061 * <p> 062 * Specifies the percentage of memory available to the JVM that 063 * should be used for caching database contents. Note that this is 064 * only used if the value of the db-cache-size property is set to "0 065 * MB". Otherwise, the value of that property is used instead to 066 * control the cache size configuration. 067 * 068 * @return Returns the value of the "db-cache-percent" property. 069 */ 070 int getDBCachePercent(); 071 072 073 074 /** 075 * Sets the "db-cache-percent" property. 076 * <p> 077 * Specifies the percentage of JVM memory to allocate to the 078 * database cache. 079 * <p> 080 * Specifies the percentage of memory available to the JVM that 081 * should be used for caching database contents. Note that this is 082 * only used if the value of the db-cache-size property is set to "0 083 * MB". Otherwise, the value of that property is used instead to 084 * control the cache size configuration. 085 * 086 * @param value The value of the "db-cache-percent" property. 087 * @throws PropertyException 088 * If the new value is invalid. 089 */ 090 void setDBCachePercent(Integer value) throws PropertyException; 091 092 093 094 /** 095 * Gets the "db-cache-size" property. 096 * <p> 097 * The amount of JVM memory to allocate to the database cache. 098 * <p> 099 * Specifies the amount of memory that should be used for caching 100 * database contents. A value of "0 MB" indicates that the 101 * db-cache-percent property should be used instead to specify the 102 * cache size. 103 * 104 * @return Returns the value of the "db-cache-size" property. 105 */ 106 long getDBCacheSize(); 107 108 109 110 /** 111 * Sets the "db-cache-size" property. 112 * <p> 113 * The amount of JVM memory to allocate to the database cache. 114 * <p> 115 * Specifies the amount of memory that should be used for caching 116 * database contents. A value of "0 MB" indicates that the 117 * db-cache-percent property should be used instead to specify the 118 * cache size. 119 * 120 * @param value The value of the "db-cache-size" property. 121 * @throws PropertyException 122 * If the new value is invalid. 123 */ 124 void setDBCacheSize(Long value) throws PropertyException; 125 126 127 128 /** 129 * Gets the "db-checkpointer-bytes-interval" property. 130 * <p> 131 * Specifies the maximum number of bytes that may be written to the 132 * database before it is forced to perform a checkpoint. 133 * <p> 134 * This can be used to bound the recovery time that may be required 135 * if the database environment is opened without having been properly 136 * closed. If this property is set to a non-zero value, the 137 * checkpointer wakeup interval is not used. To use time-based 138 * checkpointing, set this property to zero. 139 * 140 * @return Returns the value of the "db-checkpointer-bytes-interval" property. 141 */ 142 long getDBCheckpointerBytesInterval(); 143 144 145 146 /** 147 * Sets the "db-checkpointer-bytes-interval" property. 148 * <p> 149 * Specifies the maximum number of bytes that may be written to the 150 * database before it is forced to perform a checkpoint. 151 * <p> 152 * This can be used to bound the recovery time that may be required 153 * if the database environment is opened without having been properly 154 * closed. If this property is set to a non-zero value, the 155 * checkpointer wakeup interval is not used. To use time-based 156 * checkpointing, set this property to zero. 157 * 158 * @param value The value of the "db-checkpointer-bytes-interval" property. 159 * @throws PropertyException 160 * If the new value is invalid. 161 */ 162 void setDBCheckpointerBytesInterval(Long value) throws PropertyException; 163 164 165 166 /** 167 * Gets the "db-checkpointer-wakeup-interval" property. 168 * <p> 169 * Specifies the maximum length of time that may pass between 170 * checkpoints. 171 * <p> 172 * Note that this is only used if the value of the checkpointer 173 * bytes interval is zero. 174 * 175 * @return Returns the value of the "db-checkpointer-wakeup-interval" property. 176 */ 177 long getDBCheckpointerWakeupInterval(); 178 179 180 181 /** 182 * Sets the "db-checkpointer-wakeup-interval" property. 183 * <p> 184 * Specifies the maximum length of time that may pass between 185 * checkpoints. 186 * <p> 187 * Note that this is only used if the value of the checkpointer 188 * bytes interval is zero. 189 * 190 * @param value The value of the "db-checkpointer-wakeup-interval" property. 191 * @throws PropertyException 192 * If the new value is invalid. 193 */ 194 void setDBCheckpointerWakeupInterval(Long value) throws PropertyException; 195 196 197 198 /** 199 * Gets the "db-cleaner-min-utilization" property. 200 * <p> 201 * Specifies the occupancy percentage for "live" data in this 202 * backend's database. 203 * <p> 204 * When the amount of "live" data in the database drops below this 205 * value, cleaners will act to increase the occupancy percentage by 206 * compacting the database. 207 * 208 * @return Returns the value of the "db-cleaner-min-utilization" property. 209 */ 210 int getDBCleanerMinUtilization(); 211 212 213 214 /** 215 * Sets the "db-cleaner-min-utilization" property. 216 * <p> 217 * Specifies the occupancy percentage for "live" data in this 218 * backend's database. 219 * <p> 220 * When the amount of "live" data in the database drops below this 221 * value, cleaners will act to increase the occupancy percentage by 222 * compacting the database. 223 * 224 * @param value The value of the "db-cleaner-min-utilization" property. 225 * @throws PropertyException 226 * If the new value is invalid. 227 */ 228 void setDBCleanerMinUtilization(Integer value) throws PropertyException; 229 230 231 232 /** 233 * Gets the "db-directory" property. 234 * <p> 235 * Specifies the path to the filesystem directory that is used to 236 * hold the Berkeley DB Java Edition database files containing the 237 * data for this backend. 238 * <p> 239 * The path may be either an absolute path or a path relative to the 240 * directory containing the base of the OpenDJ directory server 241 * installation. The path may be any valid directory path in which 242 * the server has appropriate permissions to read and write files and 243 * has sufficient space to hold the database contents. 244 * 245 * @return Returns the value of the "db-directory" property. 246 */ 247 String getDBDirectory(); 248 249 250 251 /** 252 * Sets the "db-directory" property. 253 * <p> 254 * Specifies the path to the filesystem directory that is used to 255 * hold the Berkeley DB Java Edition database files containing the 256 * data for this backend. 257 * <p> 258 * The path may be either an absolute path or a path relative to the 259 * directory containing the base of the OpenDJ directory server 260 * installation. The path may be any valid directory path in which 261 * the server has appropriate permissions to read and write files and 262 * has sufficient space to hold the database contents. 263 * 264 * @param value The value of the "db-directory" property. 265 * @throws PropertyException 266 * If the new value is invalid. 267 */ 268 void setDBDirectory(String value) throws PropertyException; 269 270 271 272 /** 273 * Gets the "db-directory-permissions" property. 274 * <p> 275 * Specifies the permissions that should be applied to the directory 276 * containing the server database files. 277 * <p> 278 * They should be expressed as three-digit octal values, which is 279 * the traditional representation for UNIX file permissions. The 280 * three digits represent the permissions that are available for the 281 * directory's owner, group members, and other users (in that order), 282 * and each digit is the octal representation of the read, write, and 283 * execute bits. Note that this only impacts permissions on the 284 * database directory and not on the files written into that 285 * directory. On UNIX systems, the user's umask controls permissions 286 * given to the database files. 287 * 288 * @return Returns the value of the "db-directory-permissions" property. 289 */ 290 String getDBDirectoryPermissions(); 291 292 293 294 /** 295 * Sets the "db-directory-permissions" property. 296 * <p> 297 * Specifies the permissions that should be applied to the directory 298 * containing the server database files. 299 * <p> 300 * They should be expressed as three-digit octal values, which is 301 * the traditional representation for UNIX file permissions. The 302 * three digits represent the permissions that are available for the 303 * directory's owner, group members, and other users (in that order), 304 * and each digit is the octal representation of the read, write, and 305 * execute bits. Note that this only impacts permissions on the 306 * database directory and not on the files written into that 307 * directory. On UNIX systems, the user's umask controls permissions 308 * given to the database files. 309 * 310 * @param value The value of the "db-directory-permissions" property. 311 * @throws PropertyException 312 * If the new value is invalid. 313 */ 314 void setDBDirectoryPermissions(String value) throws PropertyException; 315 316 317 318 /** 319 * Gets the "db-evictor-core-threads" property. 320 * <p> 321 * Specifies the core number of threads in the eviction thread pool. 322 * <p> 323 * Specifies the core number of threads in the eviction thread pool. 324 * These threads help keep memory usage within cache bounds, 325 * offloading work from application threads. db-evictor-core-threads, 326 * db-evictor-max-threads and db-evictor-keep-alive are used to 327 * configure the core, max and keepalive attributes for the eviction 328 * thread pool. 329 * 330 * @return Returns the value of the "db-evictor-core-threads" property. 331 */ 332 int getDBEvictorCoreThreads(); 333 334 335 336 /** 337 * Sets the "db-evictor-core-threads" property. 338 * <p> 339 * Specifies the core number of threads in the eviction thread pool. 340 * <p> 341 * Specifies the core number of threads in the eviction thread pool. 342 * These threads help keep memory usage within cache bounds, 343 * offloading work from application threads. db-evictor-core-threads, 344 * db-evictor-max-threads and db-evictor-keep-alive are used to 345 * configure the core, max and keepalive attributes for the eviction 346 * thread pool. 347 * 348 * @param value The value of the "db-evictor-core-threads" property. 349 * @throws PropertyException 350 * If the new value is invalid. 351 */ 352 void setDBEvictorCoreThreads(Integer value) throws PropertyException; 353 354 355 356 /** 357 * Gets the "db-evictor-keep-alive" property. 358 * <p> 359 * The duration that excess threads in the eviction thread pool will 360 * stay idle. After this period, idle threads will terminate. 361 * <p> 362 * The duration that excess threads in the eviction thread pool will 363 * stay idle. After this period, idle threads will terminate. 364 * db-evictor-core-threads, db-evictor-max-threads and 365 * db-evictor-keep-alive are used to configure the core, max and 366 * keepalive attributes for the eviction thread pool. 367 * 368 * @return Returns the value of the "db-evictor-keep-alive" property. 369 */ 370 long getDBEvictorKeepAlive(); 371 372 373 374 /** 375 * Sets the "db-evictor-keep-alive" property. 376 * <p> 377 * The duration that excess threads in the eviction thread pool will 378 * stay idle. After this period, idle threads will terminate. 379 * <p> 380 * The duration that excess threads in the eviction thread pool will 381 * stay idle. After this period, idle threads will terminate. 382 * db-evictor-core-threads, db-evictor-max-threads and 383 * db-evictor-keep-alive are used to configure the core, max and 384 * keepalive attributes for the eviction thread pool. 385 * 386 * @param value The value of the "db-evictor-keep-alive" property. 387 * @throws PropertyException 388 * If the new value is invalid. 389 */ 390 void setDBEvictorKeepAlive(Long value) throws PropertyException; 391 392 393 394 /** 395 * Gets the "db-evictor-lru-only" property. 396 * <p> 397 * Indicates whether the database should evict existing data from 398 * the cache based on an LRU policy (where the least recently used 399 * information will be evicted first). 400 * <p> 401 * If set to "false", then the eviction keeps internal nodes of the 402 * underlying Btree in the cache over leaf nodes, even if the leaf 403 * nodes have been accessed more recently. This may be a better 404 * configuration for databases in which only a very small portion of 405 * the data is cached. 406 * 407 * @return Returns the value of the "db-evictor-lru-only" property. 408 */ 409 boolean isDBEvictorLruOnly(); 410 411 412 413 /** 414 * Sets the "db-evictor-lru-only" property. 415 * <p> 416 * Indicates whether the database should evict existing data from 417 * the cache based on an LRU policy (where the least recently used 418 * information will be evicted first). 419 * <p> 420 * If set to "false", then the eviction keeps internal nodes of the 421 * underlying Btree in the cache over leaf nodes, even if the leaf 422 * nodes have been accessed more recently. This may be a better 423 * configuration for databases in which only a very small portion of 424 * the data is cached. 425 * 426 * @param value The value of the "db-evictor-lru-only" property. 427 * @throws PropertyException 428 * If the new value is invalid. 429 */ 430 void setDBEvictorLruOnly(Boolean value) throws PropertyException; 431 432 433 434 /** 435 * Gets the "db-evictor-max-threads" property. 436 * <p> 437 * Specifies the maximum number of threads in the eviction thread 438 * pool. 439 * <p> 440 * Specifies the maximum number of threads in the eviction thread 441 * pool. These threads help keep memory usage within cache bounds, 442 * offloading work from application threads. db-evictor-core-threads, 443 * db-evictor-max-threads and db-evictor-keep-alive are used to 444 * configure the core, max and keepalive attributes for the eviction 445 * thread pool. 446 * 447 * @return Returns the value of the "db-evictor-max-threads" property. 448 */ 449 int getDBEvictorMaxThreads(); 450 451 452 453 /** 454 * Sets the "db-evictor-max-threads" property. 455 * <p> 456 * Specifies the maximum number of threads in the eviction thread 457 * pool. 458 * <p> 459 * Specifies the maximum number of threads in the eviction thread 460 * pool. These threads help keep memory usage within cache bounds, 461 * offloading work from application threads. db-evictor-core-threads, 462 * db-evictor-max-threads and db-evictor-keep-alive are used to 463 * configure the core, max and keepalive attributes for the eviction 464 * thread pool. 465 * 466 * @param value The value of the "db-evictor-max-threads" property. 467 * @throws PropertyException 468 * If the new value is invalid. 469 */ 470 void setDBEvictorMaxThreads(Integer value) throws PropertyException; 471 472 473 474 /** 475 * Gets the "db-evictor-nodes-per-scan" property. 476 * <p> 477 * Specifies the number of Btree nodes that should be evicted from 478 * the cache in a single pass if it is determined that it is 479 * necessary to free existing data in order to make room for new 480 * information. 481 * <p> 482 * Changes to this property do not take effect until the backend is 483 * restarted. It is recommended that you also change this property 484 * when you set db-evictor-lru-only to false. This setting controls 485 * the number of Btree nodes that are considered, or sampled, each 486 * time a node is evicted. A setting of 10 often produces good 487 * results, but this may vary from application to application. The 488 * larger the nodes per scan, the more accurate the algorithm. 489 * However, don't set it too high. When considering larger numbers of 490 * nodes for each eviction, the evictor may delay the completion of a 491 * given database operation, which impacts the response time of the 492 * application thread. In JE 4.1 and later, setting this value too 493 * high in an application that is largely CPU bound can reduce the 494 * effectiveness of cache eviction. It's best to start with the 495 * default value, and increase it gradually to see if it is 496 * beneficial for your application. 497 * 498 * @return Returns the value of the "db-evictor-nodes-per-scan" property. 499 */ 500 int getDBEvictorNodesPerScan(); 501 502 503 504 /** 505 * Sets the "db-evictor-nodes-per-scan" property. 506 * <p> 507 * Specifies the number of Btree nodes that should be evicted from 508 * the cache in a single pass if it is determined that it is 509 * necessary to free existing data in order to make room for new 510 * information. 511 * <p> 512 * Changes to this property do not take effect until the backend is 513 * restarted. It is recommended that you also change this property 514 * when you set db-evictor-lru-only to false. This setting controls 515 * the number of Btree nodes that are considered, or sampled, each 516 * time a node is evicted. A setting of 10 often produces good 517 * results, but this may vary from application to application. The 518 * larger the nodes per scan, the more accurate the algorithm. 519 * However, don't set it too high. When considering larger numbers of 520 * nodes for each eviction, the evictor may delay the completion of a 521 * given database operation, which impacts the response time of the 522 * application thread. In JE 4.1 and later, setting this value too 523 * high in an application that is largely CPU bound can reduce the 524 * effectiveness of cache eviction. It's best to start with the 525 * default value, and increase it gradually to see if it is 526 * beneficial for your application. 527 * 528 * @param value The value of the "db-evictor-nodes-per-scan" property. 529 * @throws PropertyException 530 * If the new value is invalid. 531 */ 532 void setDBEvictorNodesPerScan(Integer value) throws PropertyException; 533 534 535 536 /** 537 * Gets the "db-log-filecache-size" property. 538 * <p> 539 * Specifies the size of the file handle cache. 540 * <p> 541 * The file handle cache is used to keep as much opened log files as 542 * possible. When the cache is smaller than the number of logs, the 543 * database needs to close some handles and open log files it needs, 544 * resulting in less optimal performances. Ideally, the size of the 545 * cache should be higher than the number of files contained in the 546 * database. Make sure the OS number of open files per process is 547 * also tuned appropriately. 548 * 549 * @return Returns the value of the "db-log-filecache-size" property. 550 */ 551 int getDBLogFilecacheSize(); 552 553 554 555 /** 556 * Sets the "db-log-filecache-size" property. 557 * <p> 558 * Specifies the size of the file handle cache. 559 * <p> 560 * The file handle cache is used to keep as much opened log files as 561 * possible. When the cache is smaller than the number of logs, the 562 * database needs to close some handles and open log files it needs, 563 * resulting in less optimal performances. Ideally, the size of the 564 * cache should be higher than the number of files contained in the 565 * database. Make sure the OS number of open files per process is 566 * also tuned appropriately. 567 * 568 * @param value The value of the "db-log-filecache-size" property. 569 * @throws PropertyException 570 * If the new value is invalid. 571 */ 572 void setDBLogFilecacheSize(Integer value) throws PropertyException; 573 574 575 576 /** 577 * Gets the "db-log-file-max" property. 578 * <p> 579 * Specifies the maximum size for a database log file. 580 * 581 * @return Returns the value of the "db-log-file-max" property. 582 */ 583 long getDBLogFileMax(); 584 585 586 587 /** 588 * Sets the "db-log-file-max" property. 589 * <p> 590 * Specifies the maximum size for a database log file. 591 * 592 * @param value The value of the "db-log-file-max" property. 593 * @throws PropertyException 594 * If the new value is invalid. 595 */ 596 void setDBLogFileMax(Long value) throws PropertyException; 597 598 599 600 /** 601 * Gets the "db-logging-file-handler-on" property. 602 * <p> 603 * Indicates whether the database should maintain a je.info file in 604 * the same directory as the database log directory. 605 * <p> 606 * This file contains information about the internal processing 607 * performed by the underlying database. 608 * 609 * @return Returns the value of the "db-logging-file-handler-on" property. 610 */ 611 boolean isDBLoggingFileHandlerOn(); 612 613 614 615 /** 616 * Sets the "db-logging-file-handler-on" property. 617 * <p> 618 * Indicates whether the database should maintain a je.info file in 619 * the same directory as the database log directory. 620 * <p> 621 * This file contains information about the internal processing 622 * performed by the underlying database. 623 * 624 * @param value The value of the "db-logging-file-handler-on" property. 625 * @throws PropertyException 626 * If the new value is invalid. 627 */ 628 void setDBLoggingFileHandlerOn(Boolean value) throws PropertyException; 629 630 631 632 /** 633 * Gets the "db-logging-level" property. 634 * <p> 635 * Specifies the log level that should be used by the database when 636 * it is writing information into the je.info file. 637 * <p> 638 * The database trace logging level is (in increasing order of 639 * verbosity) chosen from: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, 640 * FINER, FINEST, ALL. 641 * 642 * @return Returns the value of the "db-logging-level" property. 643 */ 644 String getDBLoggingLevel(); 645 646 647 648 /** 649 * Sets the "db-logging-level" property. 650 * <p> 651 * Specifies the log level that should be used by the database when 652 * it is writing information into the je.info file. 653 * <p> 654 * The database trace logging level is (in increasing order of 655 * verbosity) chosen from: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, 656 * FINER, FINEST, ALL. 657 * 658 * @param value The value of the "db-logging-level" property. 659 * @throws PropertyException 660 * If the new value is invalid. 661 */ 662 void setDBLoggingLevel(String value) throws PropertyException; 663 664 665 666 /** 667 * Gets the "db-num-cleaner-threads" property. 668 * <p> 669 * Specifies the number of threads that the backend should maintain 670 * to keep the database log files at or near the desired utilization. 671 * <p> 672 * In environments with high write throughput, multiple cleaner 673 * threads may be required to maintain the desired utilization. 674 * 675 * @return Returns the value of the "db-num-cleaner-threads" property. 676 */ 677 Integer getDBNumCleanerThreads(); 678 679 680 681 /** 682 * Sets the "db-num-cleaner-threads" property. 683 * <p> 684 * Specifies the number of threads that the backend should maintain 685 * to keep the database log files at or near the desired utilization. 686 * <p> 687 * In environments with high write throughput, multiple cleaner 688 * threads may be required to maintain the desired utilization. 689 * 690 * @param value The value of the "db-num-cleaner-threads" property. 691 * @throws PropertyException 692 * If the new value is invalid. 693 */ 694 void setDBNumCleanerThreads(Integer value) throws PropertyException; 695 696 697 698 /** 699 * Gets the "db-num-lock-tables" property. 700 * <p> 701 * Specifies the number of lock tables that are used by the 702 * underlying database. 703 * <p> 704 * This can be particularly important to help improve scalability by 705 * avoiding contention on systems with large numbers of CPUs. The 706 * value of this configuration property should be set to a prime 707 * number that is less than or equal to the number of worker threads 708 * configured for use in the server. 709 * 710 * @return Returns the value of the "db-num-lock-tables" property. 711 */ 712 Integer getDBNumLockTables(); 713 714 715 716 /** 717 * Sets the "db-num-lock-tables" property. 718 * <p> 719 * Specifies the number of lock tables that are used by the 720 * underlying database. 721 * <p> 722 * This can be particularly important to help improve scalability by 723 * avoiding contention on systems with large numbers of CPUs. The 724 * value of this configuration property should be set to a prime 725 * number that is less than or equal to the number of worker threads 726 * configured for use in the server. 727 * 728 * @param value The value of the "db-num-lock-tables" property. 729 * @throws PropertyException 730 * If the new value is invalid. 731 */ 732 void setDBNumLockTables(Integer value) throws PropertyException; 733 734 735 736 /** 737 * Gets the "db-run-cleaner" property. 738 * <p> 739 * Indicates whether the cleaner threads should be enabled to 740 * compact the database. 741 * <p> 742 * The cleaner threads are used to periodically compact the database 743 * when it reaches a percentage of occupancy lower than the amount 744 * specified by the db-cleaner-min-utilization property. They 745 * identify database files with a low percentage of live data, and 746 * relocate their remaining live data to the end of the log. 747 * 748 * @return Returns the value of the "db-run-cleaner" property. 749 */ 750 boolean isDBRunCleaner(); 751 752 753 754 /** 755 * Sets the "db-run-cleaner" property. 756 * <p> 757 * Indicates whether the cleaner threads should be enabled to 758 * compact the database. 759 * <p> 760 * The cleaner threads are used to periodically compact the database 761 * when it reaches a percentage of occupancy lower than the amount 762 * specified by the db-cleaner-min-utilization property. They 763 * identify database files with a low percentage of live data, and 764 * relocate their remaining live data to the end of the log. 765 * 766 * @param value The value of the "db-run-cleaner" property. 767 * @throws PropertyException 768 * If the new value is invalid. 769 */ 770 void setDBRunCleaner(Boolean value) throws PropertyException; 771 772 773 774 /** 775 * Gets the "db-txn-no-sync" property. 776 * <p> 777 * Indicates whether database writes should be primarily written to 778 * an internal buffer but not immediately written to disk. 779 * <p> 780 * Setting the value of this configuration attribute to "true" may 781 * improve write performance but could cause the most recent changes 782 * to be lost if the OpenDJ directory server or the underlying JVM 783 * exits abnormally, or if an OS or hardware failure occurs (a 784 * behavior similar to running with transaction durability disabled 785 * in the Sun Java System Directory Server). 786 * 787 * @return Returns the value of the "db-txn-no-sync" property. 788 */ 789 boolean isDBTxnNoSync(); 790 791 792 793 /** 794 * Sets the "db-txn-no-sync" property. 795 * <p> 796 * Indicates whether database writes should be primarily written to 797 * an internal buffer but not immediately written to disk. 798 * <p> 799 * Setting the value of this configuration attribute to "true" may 800 * improve write performance but could cause the most recent changes 801 * to be lost if the OpenDJ directory server or the underlying JVM 802 * exits abnormally, or if an OS or hardware failure occurs (a 803 * behavior similar to running with transaction durability disabled 804 * in the Sun Java System Directory Server). 805 * 806 * @param value The value of the "db-txn-no-sync" property. 807 * @throws PropertyException 808 * If the new value is invalid. 809 */ 810 void setDBTxnNoSync(Boolean value) throws PropertyException; 811 812 813 814 /** 815 * Gets the "db-txn-write-no-sync" property. 816 * <p> 817 * Indicates whether the database should synchronously flush data as 818 * it is written to disk. 819 * <p> 820 * If this value is set to "false", then all data written to disk is 821 * synchronously flushed to persistent storage and thereby providing 822 * full durability. If it is set to "true", then data may be cached 823 * for a period of time by the underlying operating system before 824 * actually being written to disk. This may improve performance, but 825 * could cause the most recent changes to be lost in the event of an 826 * underlying OS or hardware failure (but not in the case that the 827 * OpenDJ directory server or the JVM exits abnormally). 828 * 829 * @return Returns the value of the "db-txn-write-no-sync" property. 830 */ 831 boolean isDBTxnWriteNoSync(); 832 833 834 835 /** 836 * Sets the "db-txn-write-no-sync" property. 837 * <p> 838 * Indicates whether the database should synchronously flush data as 839 * it is written to disk. 840 * <p> 841 * If this value is set to "false", then all data written to disk is 842 * synchronously flushed to persistent storage and thereby providing 843 * full durability. If it is set to "true", then data may be cached 844 * for a period of time by the underlying operating system before 845 * actually being written to disk. This may improve performance, but 846 * could cause the most recent changes to be lost in the event of an 847 * underlying OS or hardware failure (but not in the case that the 848 * OpenDJ directory server or the JVM exits abnormally). 849 * 850 * @param value The value of the "db-txn-write-no-sync" property. 851 * @throws PropertyException 852 * If the new value is invalid. 853 */ 854 void setDBTxnWriteNoSync(Boolean value) throws PropertyException; 855 856 857 858 /** 859 * Gets the "disk-full-threshold" property. 860 * <p> 861 * Full disk threshold to limit database updates 862 * <p> 863 * When the available free space on the disk used by this database 864 * instance falls below the value specified, no updates are permitted 865 * and the server returns an UNWILLING_TO_PERFORM error. Updates are 866 * allowed again as soon as free space rises above the threshold. 867 * 868 * @return Returns the value of the "disk-full-threshold" property. 869 */ 870 long getDiskFullThreshold(); 871 872 873 874 /** 875 * Sets the "disk-full-threshold" property. 876 * <p> 877 * Full disk threshold to limit database updates 878 * <p> 879 * When the available free space on the disk used by this database 880 * instance falls below the value specified, no updates are permitted 881 * and the server returns an UNWILLING_TO_PERFORM error. Updates are 882 * allowed again as soon as free space rises above the threshold. 883 * 884 * @param value The value of the "disk-full-threshold" property. 885 * @throws PropertyException 886 * If the new value is invalid. 887 */ 888 void setDiskFullThreshold(Long value) throws PropertyException; 889 890 891 892 /** 893 * Gets the "disk-low-threshold" property. 894 * <p> 895 * Low disk threshold to limit database updates 896 * <p> 897 * Specifies the "low" free space on the disk. When the available 898 * free space on the disk used by this database instance falls below 899 * the value specified, protocol updates on this database are 900 * permitted only by a user with the BYPASS_LOCKDOWN privilege. 901 * 902 * @return Returns the value of the "disk-low-threshold" property. 903 */ 904 long getDiskLowThreshold(); 905 906 907 908 /** 909 * Sets the "disk-low-threshold" property. 910 * <p> 911 * Low disk threshold to limit database updates 912 * <p> 913 * Specifies the "low" free space on the disk. When the available 914 * free space on the disk used by this database instance falls below 915 * the value specified, protocol updates on this database are 916 * permitted only by a user with the BYPASS_LOCKDOWN privilege. 917 * 918 * @param value The value of the "disk-low-threshold" property. 919 * @throws PropertyException 920 * If the new value is invalid. 921 */ 922 void setDiskLowThreshold(Long value) throws PropertyException; 923 924 925 926 /** 927 * Gets the "java-class" property. 928 * <p> 929 * Specifies the fully-qualified name of the Java class that 930 * provides the backend implementation. 931 * 932 * @return Returns the value of the "java-class" property. 933 */ 934 String getJavaClass(); 935 936 937 938 /** 939 * Sets the "java-class" property. 940 * <p> 941 * Specifies the fully-qualified name of the Java class that 942 * provides the backend implementation. 943 * 944 * @param value The value of the "java-class" property. 945 * @throws PropertyException 946 * If the new value is invalid. 947 */ 948 void setJavaClass(String value) throws PropertyException; 949 950 951 952 /** 953 * Gets the "je-property" property. 954 * <p> 955 * Specifies the database and environment properties for the 956 * Berkeley DB Java Edition database serving the data for this 957 * backend. 958 * <p> 959 * Any Berkeley DB Java Edition property can be specified using the 960 * following form: property-name=property-value. Refer to OpenDJ 961 * documentation for further information on related properties, their 962 * implications, and range values. The definitive identification of 963 * all the property parameters is available in the example.properties 964 * file of Berkeley DB Java Edition distribution. 965 * 966 * @return Returns the values of the "je-property" property. 967 */ 968 SortedSet<String> getJEProperty(); 969 970 971 972 /** 973 * Sets the "je-property" property. 974 * <p> 975 * Specifies the database and environment properties for the 976 * Berkeley DB Java Edition database serving the data for this 977 * backend. 978 * <p> 979 * Any Berkeley DB Java Edition property can be specified using the 980 * following form: property-name=property-value. Refer to OpenDJ 981 * documentation for further information on related properties, their 982 * implications, and range values. The definitive identification of 983 * all the property parameters is available in the example.properties 984 * file of Berkeley DB Java Edition distribution. 985 * 986 * @param values The values of the "je-property" property. 987 * @throws PropertyException 988 * If one or more of the new values are invalid. 989 */ 990 void setJEProperty(Collection<String> values) throws PropertyException; 991 992}