Class JeBackendCfgDefn


  • public final class JeBackendCfgDefn
    extends ManagedObjectDefinition<JeBackendCfgClient,​JeBackendCfg>
    An interface for querying the JE Backend managed object definition meta information.

    A JE Backend stores application data in a Berkeley DB Java Edition database.

    • Method Detail

      • getInstance

        public static JeBackendCfgDefn getInstance()
        Get the JE Backend configuration definition singleton.
        Returns:
        Returns the JE Backend configuration definition singleton.
      • getBackendIdPropertyDefinition

        public StringPropertyDefinition getBackendIdPropertyDefinition()
        Get the "backend-id" property definition.

        Specifies a name to identify the associated backend.

        The name must be unique among all backends in the server. The backend ID may not be altered after the backend is created in the server.

        Returns:
        Returns the "backend-id" property definition.
      • getBaseDnPropertyDefinition

        public DnPropertyDefinition getBaseDnPropertyDefinition()
        Get the "base-dn" property definition.

        Specifies the base DN(s) for the data that the backend handles.

        A single backend may be responsible for one or more base DNs. Note that no two backends may have the same base DN although one backend may have a base DN that is below a base DN provided by another backend (similar to the use of sub-suffixes in the Sun Java System Directory Server). If any of the base DNs is subordinate to a base DN for another backend, then all base DNs for that backend must be subordinate to that same base DN.

        Returns:
        Returns the "base-dn" property definition.
      • getCipherKeyLengthPropertyDefinition

        public IntegerPropertyDefinition getCipherKeyLengthPropertyDefinition()
        Get the "cipher-key-length" property definition.

        Specifies the key length in bits for the preferred cipher.

        Returns:
        Returns the "cipher-key-length" property definition.
      • getCipherTransformationPropertyDefinition

        public StringPropertyDefinition getCipherTransformationPropertyDefinition()
        Get the "cipher-transformation" property definition.

        Specifies the cipher for the directory server using the syntax algorithm/mode/padding.

        The full transformation is required: specifying only an algorithm and allowing the cipher provider to supply the default mode and padding is not supported, because there is no guarantee these default values are the same among different implementations. Some cipher algorithms do not have a mode or padding, hence the fields must be specified using NONE as mode and NoPadding as padding. For example, ChaCha20/NONE/NoPadding.

        Returns:
        Returns the "cipher-transformation" property definition.
      • getCompactEncodingPropertyDefinition

        public BooleanPropertyDefinition getCompactEncodingPropertyDefinition()
        Get the "compact-encoding" property definition.

        Indicates whether the backend should use a compact form when encoding entries by compressing the attribute descriptions and object class sets.

        Note that this property applies only to the entries themselves and does not impact the index data. It will also replace the attribute descriptions used in add and modify operations with normalized ones from the schema.

        Returns:
        Returns the "compact-encoding" property definition.
      • getConfidentialityEnabledPropertyDefinition

        public BooleanPropertyDefinition getConfidentialityEnabledPropertyDefinition()
        Get the "confidentiality-enabled" property definition.

        Indicates whether the backend should make entries in database files readable only by Directory Server.

        Confidentiality is achieved by encrypting entries before writing them to the underlying storage. Entry encryption will protect data on disk from unauthorised parties reading the files; for complete protection, also set confidentiality for sensitive attributes indexes. The property cannot be set to false if some of the indexes have confidentiality set to true.

        Returns:
        Returns the "confidentiality-enabled" property definition.
      • getDbCacheModePropertyDefinition

        public EnumPropertyDefinition<JeBackendCfgDefn.DbCacheMode> getDbCacheModePropertyDefinition()
        Get the "db-cache-mode" property definition.

        The strategy that will be used for caching database content in memory.

        Specifies whether the database heap cache should keep only internal nodes or both internal and leaf nodes.

        Returns:
        Returns the "db-cache-mode" property definition.
      • getDbCachePercentPropertyDefinition

        public IntegerPropertyDefinition getDbCachePercentPropertyDefinition()
        Get the "db-cache-percent" property definition.

        Specifies the percentage of JVM memory to allocate to the database cache.

        Specifies the percentage of memory available to the JVM that should be used for caching database contents. Note that this is only used if the value of the db-cache-size property is set to "0 MB". Otherwise, the value of that property is used instead to control the cache size configuration. Note also that this option is ignored if the global option je-backend-shared-cache-enabled is true.

        Returns:
        Returns the "db-cache-percent" property definition.
      • getDbCacheSizePropertyDefinition

        public SizePropertyDefinition getDbCacheSizePropertyDefinition()
        Get the "db-cache-size" property definition.

        The amount of JVM memory to allocate to the database cache.

        Specifies the amount of memory that should be used for caching database contents. A value of "0 MB" indicates that the db-cache-percent property should be used instead to specify the cache size. Note also that this option is ignored if the global option je-backend-shared-cache-enabled is true.

        Returns:
        Returns the "db-cache-size" property definition.
      • getDbCheckpointerBytesIntervalPropertyDefinition

        public SizePropertyDefinition getDbCheckpointerBytesIntervalPropertyDefinition()
        Get the "db-checkpointer-bytes-interval" property definition.

        Specifies the maximum number of bytes that may be written to the database before it is forced to perform a checkpoint.

        This can be used to bound the recovery time that may be required if the database environment is opened without having been properly closed. If this property is set to a non-zero value, the checkpointer wakeup interval is not used. To use time-based checkpointing, set this property to zero.

        Returns:
        Returns the "db-checkpointer-bytes-interval" property definition.
      • getDbCheckpointerWakeupIntervalPropertyDefinition

        public DurationPropertyDefinition getDbCheckpointerWakeupIntervalPropertyDefinition()
        Get the "db-checkpointer-wakeup-interval" property definition.

        Specifies the maximum length of time that may pass between checkpoints, when there are updates to the database.

        Note that this is only used if the value of the checkpointer bytes interval is zero.

        Returns:
        Returns the "db-checkpointer-wakeup-interval" property definition.
      • getDbCleanerMinUtilizationPropertyDefinition

        public IntegerPropertyDefinition getDbCleanerMinUtilizationPropertyDefinition()
        Get the "db-cleaner-min-utilization" property definition.

        Specifies the occupancy percentage for "live" data in this backend's database.

        When the amount of "live" data in the database drops below this value, cleaners will act to increase the occupancy percentage by compacting the database.

        Returns:
        Returns the "db-cleaner-min-utilization" property definition.
      • getDbDirectoryPropertyDefinition

        public StringPropertyDefinition getDbDirectoryPropertyDefinition()
        Get the "db-directory" property definition.

        Specifies the path to the filesystem directory that is used to hold the Berkeley DB Java Edition database files containing the data for this backend.

        The path may be either an absolute path or a path relative to the directory containing the base of the OpenDJ directory server installation. The path may be any valid directory path in which the server has appropriate permissions to read and write files and has sufficient space to hold the database contents.

        Returns:
        Returns the "db-directory" property definition.
      • getDbDirectoryPermissionsPropertyDefinition

        public StringPropertyDefinition getDbDirectoryPermissionsPropertyDefinition()
        Get the "db-directory-permissions" property definition.

        Specifies the permissions that should be applied to the directory containing the server database files.

        They should be expressed as three-digit octal values, which is the traditional representation for UNIX file permissions. The three digits represent the permissions that are available for the directory's owner, group members, and other users (in that order), and each digit is the octal representation of the read, write, and execute bits. Note that this only impacts permissions on the database directory and not on the files written into that directory. On UNIX systems, the user's umask controls permissions given to the database files.

        Returns:
        Returns the "db-directory-permissions" property definition.
      • getDbDurabilityPropertyDefinition

        public EnumPropertyDefinition<JeBackendCfgDefn.DbDurability> getDbDurabilityPropertyDefinition()
        Get the "db-durability" property definition.

        Configures the durability level that will be used when committing a transaction.

        High levels of durability offer a greater guarantee that the transaction is persisted to disk, but trade that off for lower performance.

        Returns:
        Returns the "db-durability" property definition.
      • getDbEvictorCoreThreadsPropertyDefinition

        public IntegerPropertyDefinition getDbEvictorCoreThreadsPropertyDefinition()
        Get the "db-evictor-core-threads" property definition.

        Specifies the core number of threads in the eviction thread pool.

        Specifies the core number of threads in the eviction thread pool. These threads help keep memory usage within cache bounds, offloading work from application threads. db-evictor-core-threads, db-evictor-max-threads and db-evictor-keep-alive are used to configure the core, max and keepalive attributes for the eviction thread pool.

        Returns:
        Returns the "db-evictor-core-threads" property definition.
      • getDbEvictorKeepAlivePropertyDefinition

        public DurationPropertyDefinition getDbEvictorKeepAlivePropertyDefinition()
        Get the "db-evictor-keep-alive" property definition.

        The duration that excess threads in the eviction thread pool will stay idle. After this period, idle threads will terminate.

        The duration that excess threads in the eviction thread pool will stay idle. After this period, idle threads will terminate. db-evictor-core-threads, db-evictor-max-threads and db-evictor-keep-alive are used to configure the core, max and keepalive attributes for the eviction thread pool.

        Returns:
        Returns the "db-evictor-keep-alive" property definition.
      • getDbEvictorMaxThreadsPropertyDefinition

        public IntegerPropertyDefinition getDbEvictorMaxThreadsPropertyDefinition()
        Get the "db-evictor-max-threads" property definition.

        Specifies the maximum number of threads in the eviction thread pool.

        Specifies the maximum number of threads in the eviction thread pool. These threads help keep memory usage within cache bounds, offloading work from application threads. db-evictor-core-threads, db-evictor-max-threads and db-evictor-keep-alive are used to configure the core, max and keepalive attributes for the eviction thread pool.

        Returns:
        Returns the "db-evictor-max-threads" property definition.
      • getDbLogFilecacheSizePropertyDefinition

        public IntegerPropertyDefinition getDbLogFilecacheSizePropertyDefinition()
        Get the "db-log-filecache-size" property definition.

        Specifies the size of the file handle cache.

        The file handle cache is used to keep as much opened log files as possible. When the cache is smaller than the number of logs, the database needs to close some handles and open log files it needs, resulting in less optimal performances. Ideally, the size of the cache should be higher than the number of files contained in the database. Make sure the OS number of open files per process is also tuned appropriately.

        Returns:
        Returns the "db-log-filecache-size" property definition.
      • getDbLogFileMaxPropertyDefinition

        public SizePropertyDefinition getDbLogFileMaxPropertyDefinition()
        Get the "db-log-file-max" property definition.

        Specifies the maximum size of each individual database log file.

        Returns:
        Returns the "db-log-file-max" property definition.
      • getDbLoggingFileHandlerOnPropertyDefinition

        public BooleanPropertyDefinition getDbLoggingFileHandlerOnPropertyDefinition()
        Get the "db-logging-file-handler-on" property definition.

        Indicates whether the database should maintain a je.info file in the same directory as the database log directory.

        This file contains information about the internal processing performed by the underlying database.

        Returns:
        Returns the "db-logging-file-handler-on" property definition.
      • getDbLoggingLevelPropertyDefinition

        public StringPropertyDefinition getDbLoggingLevelPropertyDefinition()
        Get the "db-logging-level" property definition.

        Specifies the log level that should be used by the database when it is writing information into the je.info file.

        The database trace logging level is (in increasing order of verbosity) chosen from: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL.

        Returns:
        Returns the "db-logging-level" property definition.
      • getDbLogVerifierSchedulePropertyDefinition

        public StringPropertyDefinition getDbLogVerifierSchedulePropertyDefinition()
        Get the "db-log-verifier-schedule" property definition.

        Specifies when the background log verifier should run if enabled. By default, verification is performed every day at midnight, local time.

        The schedule is specified using a Crontab style format string as defined in https://en.wikipedia.org/wiki/Cron#Configuration_file. Note that times and dates are specified in local time, not UTC time. If the verifier is already running at the scheduled time, the scheduled run is skipped.

        Returns:
        Returns the "db-log-verifier-schedule" property definition.
      • getDbNumCleanerThreadsPropertyDefinition

        public IntegerPropertyDefinition getDbNumCleanerThreadsPropertyDefinition()
        Get the "db-num-cleaner-threads" property definition.

        Specifies the number of threads that the backend should maintain to keep the database log files at or near the desired utilization.

        In environments with high write throughput, multiple cleaner threads may be required to maintain the desired utilization.

        Returns:
        Returns the "db-num-cleaner-threads" property definition.
      • getDbNumLockTablesPropertyDefinition

        public IntegerPropertyDefinition getDbNumLockTablesPropertyDefinition()
        Get the "db-num-lock-tables" property definition.

        Specifies the number of lock tables that are used by the underlying database.

        This can be particularly important to help improve scalability by avoiding contention on systems with large numbers of CPUs. The value of this configuration property should be set to a prime number that is less than or equal to the number of worker threads configured for use in the server.

        Returns:
        Returns the "db-num-lock-tables" property definition.
      • getDbRunCleanerPropertyDefinition

        public BooleanPropertyDefinition getDbRunCleanerPropertyDefinition()
        Get the "db-run-cleaner" property definition.

        Indicates whether the cleaner threads should be enabled to compact the database.

        The cleaner threads are used to periodically compact the database when it reaches a percentage of occupancy lower than the amount specified by the db-cleaner-min-utilization property. They identify database files with a low percentage of live data, and relocate their remaining live data to the end of the log.

        Returns:
        Returns the "db-run-cleaner" property definition.
      • getDbRunLogVerifierPropertyDefinition

        public BooleanPropertyDefinition getDbRunLogVerifierPropertyDefinition()
        Get the "db-run-log-verifier" property definition.

        Indicates whether the background verifier should verify checksums in the database log.

        If enabled, the entire log is periodically read sequentially and verified. The schedule can be controlled using the db-log-verifier-schedule property. If the verification process detects backend database corruption then the server logs an error message and the backend is taken offline. The corrupted backend should be restored from backup before it can be used again.

        Returns:
        Returns the "db-run-log-verifier" property definition.
      • getDiskFullThresholdPropertyDefinition

        public SizePropertyDefinition getDiskFullThresholdPropertyDefinition()
        Get the "disk-full-threshold" property definition.

        Full disk threshold to limit database updates

        When the available free space on the disk used by this database instance falls below the value specified, no updates are permitted and the server returns an UNWILLING_TO_PERFORM error. Updates are allowed again as soon as free space rises above the threshold.

        Returns:
        Returns the "disk-full-threshold" property definition.
      • getDiskLowThresholdPropertyDefinition

        public SizePropertyDefinition getDiskLowThresholdPropertyDefinition()
        Get the "disk-low-threshold" property definition.

        Low disk threshold to limit database updates

        Specifies the "low" free space on the disk. When the available free space on the disk used by this database instance falls below the value specified, protocol updates on this database are permitted only by a user with the BYPASS_LOCKDOWN privilege.

        Returns:
        Returns the "disk-low-threshold" property definition.
      • getEnabledPropertyDefinition

        public BooleanPropertyDefinition getEnabledPropertyDefinition()
        Get the "enabled" property definition.

        Indicates whether the backend is enabled in the server.

        If a backend is not enabled, then its contents are not accessible when processing operations.

        Returns:
        Returns the "enabled" property definition.
      • getEntriesCompressedPropertyDefinition

        public BooleanPropertyDefinition getEntriesCompressedPropertyDefinition()
        Get the "entries-compressed" property definition.

        Indicates whether the backend should attempt to compress entries before storing them in the database.

        Note that this property applies only to the entries themselves and does not impact the index data. Further, the effectiveness of the compression is based on the type of data contained in the entry.

        Returns:
        Returns the "entries-compressed" property definition.
      • getImportOffheapMemorySizePropertyDefinition

        public SizePropertyDefinition getImportOffheapMemorySizePropertyDefinition()
        Get the "import-offheap-memory-size" property definition.

        Specifies the amount of off-heap memory dedicated to the online operation (import-ldif, rebuild-index).

        Returns:
        Returns the "import-offheap-memory-size" property definition.
      • getIndexEntryLimitPropertyDefinition

        public IntegerPropertyDefinition getIndexEntryLimitPropertyDefinition()
        Get the "index-entry-limit" property definition.

        Specifies the maximum number of entries that is allowed to match a given index key before that particular index key is no longer maintained.

        This property is analogous to the ALL IDs threshold in the Sun Java System Directory Server. Note that this is the default limit for the backend, and it may be overridden on a per-attribute basis. A value of 0 means there is no limit. Changing the index entry limit significantly can result in serious performance degradation. Please read the documentation before changing this setting.

        Returns:
        Returns the "index-entry-limit" property definition.
      • getIndexFilterAnalyzerEnabledPropertyDefinition

        public BooleanPropertyDefinition getIndexFilterAnalyzerEnabledPropertyDefinition()
        Get the "index-filter-analyzer-enabled" property definition.

        Indicates whether to gather statistical information about the search filters processed by the directory server while evaluating the usage of indexes.

        Analyzing indexes requires gathering search filter usage patterns from user requests, especially for values as specified in the filters and subsequently looking the status of those values into the index files. When a search requests is processed, internal or user generated, a first phase uses indexes to find potential entries to be returned. Depending on the search filter, if the index of one of the specified attributes matches too many entries (exceeds the index entry limit), the search becomes non-indexed. In any case, all entries thus gathered (or the entire DIT) are matched against the filter for actually returning the search result.

        Returns:
        Returns the "index-filter-analyzer-enabled" property definition.
      • getIndexFilterAnalyzerMaxFiltersPropertyDefinition

        public IntegerPropertyDefinition getIndexFilterAnalyzerMaxFiltersPropertyDefinition()
        Get the "index-filter-analyzer-max-filters" property definition.

        The maximum number of search filter statistics to keep.

        When the maximum number of search filter is reached, the least used one will be deleted.

        Returns:
        Returns the "index-filter-analyzer-max-filters" property definition.
      • getJavaClassPropertyDefinition

        public ClassPropertyDefinition getJavaClassPropertyDefinition()
        Get the "java-class" property definition.

        Specifies the fully-qualified name of the Java class that provides the backend implementation.

        Returns:
        Returns the "java-class" property definition.
      • getJePropertyPropertyDefinition

        public StringPropertyDefinition getJePropertyPropertyDefinition()
        Get the "je-property" property definition.

        Specifies the database and environment properties for the Berkeley DB Java Edition database serving the data for this backend.

        Any Berkeley DB Java Edition property can be specified using the following form: property-name=property-value. Refer to OpenDJ documentation for further information on related properties, their implications, and range values. The definitive identification of all the property parameters is available in the example.properties file of Berkeley DB Java Edition distribution.

        Returns:
        Returns the "je-property" property definition.
      • getPreloadTimeLimitPropertyDefinition

        public DurationPropertyDefinition getPreloadTimeLimitPropertyDefinition()
        Get the "preload-time-limit" property definition.

        Specifies the length of time that the backend is allowed to spend "pre-loading" data when it is initialized.

        The pre-load process is used to pre-populate the database cache, so that it can be more quickly available when the server is processing requests. A duration of zero means there is no pre-load.

        Returns:
        Returns the "preload-time-limit" property definition.
      • getWritabilityModePropertyDefinition

        public EnumPropertyDefinition<LocalBackendCfgDefn.WritabilityMode> getWritabilityModePropertyDefinition()
        Get the "writability-mode" property definition.

        Specifies the behavior that the backend should use when processing write operations.

        Returns:
        Returns the "writability-mode" property definition.