Configuration

Complete reference for Talon configuration including global environment properties and DDL (Domain Descriptor Language) elements.

Overview

Talon provides two complementary configuration mechanisms:

  1. Global Environment: Property-based configuration for runtime behavior (statistics, optimization, trace levels)

  2. DDL: XML-based configuration for components (buses, engines, XVMs)

For conceptual information about how these mechanisms work together, see Configuration Model.


Global Properties Reference

Global properties configure Talon runtime behavior and can be set via:

  1. System properties (-Dproperty=value)

  2. App propfile (specified via nv_app_propfile environment variable or -Dnv.app.propfile system property)

  3. Environment variables

  4. DDL <env> section (highest precedence)

The "Can Set in <env>?" indicator shows whether the property can be specified in the DDL <env> section or must be set via one of the other mechanisms.

Property Index

Statistics Configuration

Optimization

Trace Logging

Discovery

Statistics Output Threads


Statistics Configuration Properties

nv.stats.latencymanager.samplesize

  • Description: Global default size for capturing latencies in ring buffer. Should be large enough to avoid missing datapoints but not so large as to adversely affect processor cache performance.

  • Default: nv.stats.series.samplesize

  • Type: integer

  • Can Set in <env>?: Yes

nv.stats.series.samplesize

  • Description: Default sampling size for Series stats. If datapoints in a stats interval exceed this size, histographic data computation will be lossy. Increasing reduces loss but increases overhead in memory and cache pressure.

  • Default: 10240

  • Type: integer

  • Can Set in <env>?: Yes

nv.msg.latency.stats

  • Description: Collect latency statistics for messages passing through the processing pipeline. When disabled, many latency stats will not be available in heartbeats.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes

nv.msgtype.latency.stats

  • Description: Track message latency stats on a per-type basis. Each message type's timings are tracked separately. Due to overhead, these stats are not included in XVM heartbeats.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes

nv.ods.latency.stats

  • Description: Enable collection of application store latencies.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes

nv.event.latency.stats

  • Description: Capture event latency statistics (enqueue/dequeue times across event multiplexers). Useful for determining if engine's input queue is backing up. Required to capture input queuing times.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes

nv.link.network.stampiots

  • Description: Instruct low-level socket I/O to stamp input/output times. Should be enabled to capture store latencies based on wire time or for certain latencies in direct message bus binding.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes


Optimization Properties

nv.optimizefor

  • Description: Optimization target for the Talon runtime. Affects default settings for TCP_NODELAY, wait strategies, and other performance parameters.

  • Values: latency | throughput | none

  • Default: none

  • Type: string

  • Can Set in <env>?: Yes

nv.conservecpu

  • Description: When true, use conservative CPU strategies (blocking waits). When false, use aggressive strategies (busy spins) for lower latency.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: Yes


Trace Logging Properties

nv.ddl.trace

  • Description: Enable tracing of DDL parsing and variable substitution. Outputs to logger nv.ddl at INFO level. Useful for troubleshooting configuration issues.

  • Default: false

  • Type: boolean

  • Can Set in <env>?: No - Must use System property (needed before DDL can be parsed)

nv.sma.trace

  • Description: Trace level for messaging layer (SMA). Controls Talon messaging trace output. See Trace Logging for level values.

  • Default: -

  • Type: log level

  • Can Set in <env>?: Yes

nv.aep.trace

  • Description: Trace level for AEP engine. Controls transaction processing trace output.

  • Default: -

  • Type: log level

  • Can Set in <env>?: Yes

nv.sol.trace

  • Description: Trace level for Solace binding. Controls Solace client library trace output (mapped to CCSMP or JCSMP trace levels). See Solace Binding - Trace Logging.

  • Default: -

  • Type: log level

  • Can Set in <env>?: Yes


Discovery Properties

nv.discovery.descriptor

  • Description: Discovery server connection descriptor. Format: <protocol>://<address>:<port>. Example: nvds://localhost:4090

  • Default: -

  • Type: string

  • Can Set in <env>?: Yes


Statistics Output Thread Properties

Properties controlling development/testing statistics trace threads. In production, use XVM heartbeats instead.

nv.aep.<engine>.stats.interval

  • Description: Interval (in seconds) at which engine stats are traced for the named engine. Set to 0 to disable. Stats traced to logger nv.aep.engine.stats at INFO level. Note: Disabling only stops tracing, not collection. Stats can still be collected by XVM heartbeats. Tracing is NOT zero-garbage.

  • Default: 0

  • Type: integer

  • Can Set in <env>?: Yes

nv.aep.<engine>.sysstats.interval

  • Description: Interval (in seconds) at which engine sys stats are traced. Set to 0 to disable. Usually not needed; XVM statistics are preferred.

  • Default: 0

  • Type: integer

  • Can Set in <env>?: Yes

nv.event.mux.<name>.stats.interval

  • Description: Interval (in seconds) at which multiplexer stats are traced. Also reported in engine stats if nv.aep.<engine>.stats.interval is set.

  • Default: 0

  • Type: integer

  • Can Set in <env>?: Yes

nv.msg.latency.stats.interval

  • Description: Interval (in seconds) at which message latency stats are traced. No effect if nv.msg.latency.stats is false. Also reported in engine stats if enabled.

  • Default: 0

  • Type: integer

  • Can Set in <env>?: Yes

nv.aep.busmanager.<engine>.<bus>.stats.interval

  • Description: Interval (in seconds) at which bus stats are traced for a specific bus. Also reported in engine stats if enabled.

  • Default: 0

  • Type: integer

  • Can Set in <env>?: Yes


DDL Elements Reference

DDL (Domain Descriptor Language) is Talon's XML-based configuration schema for defining microservice components.

About DDL Overrides: Throughout this reference, each element and attribute shows its DDL Override property pattern (e.g., x.apps.myapp.storage.enabled). These override properties can be used to:

  1. Set values for elements not present in your DDL XML file

  2. Override values for elements that are present in your DDL XML file

This allows you to externalize configuration values without modifying the DDL file, which is useful for environment-specific settings and CI/CD deployments. See Configuration Model for details on how DDL overrides work.

Complete DDL Structure

DDL Elements Index


System Details

System identification and metadata.

Sample:

Elements:

  • name (required): Unique system name used to identify the application (max 256 chars). Should be a short, descriptive identifier. Pattern: (.|:|-|_|\w)+

    • DDL Override: x.systemDetails.name

  • displayName (optional): Human-readable display name (max 256 chars)

    • DDL Override: x.systemDetails.displayName

  • version (optional): Version identifier (max 128 chars). Can be compared lexigraphically by splitting on '.' character

    • DDL Override: x.systemDetails.version


Environment Configuration

The <env> element populates the global environment (not the configuration repository). Properties specified here have the highest precedence among all environment sources.

Sample:

Properties can be organized hierarchically using element nesting. The <nv> namespace is reserved for Talon runtime properties. User applications should use their own namespace.

DDL Override Pattern:

Any property in the <env> block can be overridden using the pattern:

For example:

  • <nv><msg.latency.stats>true</msg.latency.stats></nv> can be overridden with x.env.nv.msg.latency.stats=false

  • <myapp><maxOrderSize>1000000</maxOrderSize></myapp> can be overridden with x.env.myapp.maxOrderSize=500000

Accessing in Code:


Message Bus Provider Configuration

Register custom message bus providers (Since 3.8).

Sample:

Attributes:

  • name (required): Unique identifier for the bus provider (max 32 chars). Pattern: ([a-z][a-z0-9+\-.]+). Recommended to prefix custom providers with 'x-' to avoid conflicts with platform providers

    • DDL Override: Not overridable (key)

  • providerClass (required): Fully qualified class name implementing com.neeve.sma.MessagingProvider

    • DDL Override: x.busProviders.<providerName>.providerClass

  • displayName (optional): Friendly name for the message bus provider

    • DDL Override: x.busProviders.<providerName>.displayName

  • enabled (optional, default: true): Enable/disable this bus provider

    • DDL Override: x.busProviders.<providerName>.enabled


Message Bus Configuration

Define message buses and their channels.

Sample:

Elements:

  • templates: Reusable bus configuration templates

  • bus: Message bus definitions and channels

Bus Templates

Define reusable bus configuration (Since 3.8).

Attributes:

  • @name (required): Unique template identifier

    • DDL Override: Not overridable (key)

Elements:

  • Any bus attribute or element can be used in a template

    • DDL Override: x.buses.templates.<templatename>.*

Templates are applied first, then bus-specific settings override template values.

Bus Element

Define a message bus and its channels.

Sample:

Attributes:

  • @name (required): Unique bus identifier

    • DDL Override: Not overridable (key)

  • @descriptor (conditional): Bus descriptor string (format: <provider>://<address>:<port>&<props>). Required if provider/address not used separately

    • DDL Override: x.buses.bus.<busname>.descriptor

  • @provider (conditional): Bus provider name (e.g., solace, jms, kafka, loopback). Required if descriptor not used

    • DDL Override: x.buses.bus.<busname>.provider

  • @address (optional): Bus server address

    • DDL Override: x.buses.bus.<busname>.address

  • @port (optional): Bus server port

    • DDL Override: x.buses.bus.<busname>.port

  • @enabled (optional, default: true): Enable/disable this bus

    • DDL Override: x.buses.bus.<busname>.enabled

Elements:

  • provider: Provider name (alternative to descriptor)

    • DDL Override: x.buses.bus.<busname>.provider

  • address: Server address (alternative to descriptor)

    • DDL Override: x.buses.bus.<busname>.address

  • port: Server port (alternative to descriptor)

    • DDL Override: x.buses.bus.<busname>.port

  • properties: Provider-specific properties (alternative to descriptor string parameters)

    • DDL Override: x.buses.bus.<busname>.properties.*

  • channels: Channel definitions

Provider-Specific Configuration:

Channel Configuration

Sample:

Attributes:

  • name (required): Unique channel identifier within the bus

    • DDL Override: Not overridable (key)

  • join (optional, default: false): Whether to subscribe to this channel

    • DDL Override: x.buses.<busname>.<channelname>.join

  • detached (optional, default: false): Enable detached sends (asynchronous transmission)

    • DDL Override: x.buses.<busname>.<channelname>.detached

Elements:

  • qos (optional, default: BestEffort): Quality of service element (values: BestEffort | Guaranteed)

    • DDL Override: x.buses.<busname>.<channelname>.qos

  • key: Topic/queue key(s) for message routing. Multiple <key> elements allowed

    • DDL Override: x.buses.<busname>.<channelname>.key

  • id (optional): Numerical identifier for the channel within the bus

    • DDL Override: x.buses.<busname>.<channelname>.id

Quality of Service:

  • BestEffort: Messages delivered with best effort, no acknowledgment or persistence

  • Guaranteed: Messages acknowledged and persisted by messaging infrastructure


Engine Configuration

The <apps> section configures AEP engines, which are the microservice runtime containers. Each engine (app) represents a microservice and defines its runtime behavior including messaging, storage, high availability, transactions, and statistics.

Engine Configuration Index

Complete Engine Configuration Example

Core Engine Settings

Sample:

Attributes:

  • name (required): Unique application identifier

    • DDL Override: Not overridable (key)

  • mainClass (required): Fully qualified class name of the main event handler

    • DDL Override: x.apps.<appname>.mainClass

  • enabled (optional, default: true): Enable/disable this application

    • DDL Override: x.apps.<appname>.enabled

Messaging Configuration

Configures messaging factories and bus associations for the engine.

Sample:

Elements:

  • factories: Message factory configuration

  • buses: Bus associations and channel subscriptions

Message Factories

Sample:

Elements:

  • messaging/factories/factory: Message factory configuration

    • @name (required): Message factory class name

      • DDL Override: Not overridable (key)

Bus Associations

Configure bus associations and channel subscriptions for an engine.

Sample:

Attributes:

  • @name (required): Bus name reference

    • DDL Override: Not overridable (key)

  • @manualStart (default: false): Require manual start of bus binding

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.manualStart

  • @enabled (default: true): Enable/disable this bus association

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.enabled

Elements:

  • nonBlockingInboundMessageDispatch (default: false): Enable non-blocking inbound message dispatch

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.nonBlockingInboundMessageDispatch

  • inboundMessageEventPriority: Priority for inbound message events

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.inboundMessageEventPriority

  • scheduleSendCommitCompletionEvents (default: false): Schedule send commit completion events

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.scheduleSendCommitCompletionEvents

  • sendCommitCompletionEventPriority: Priority for send commit completion events

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.sendCommitCompletionEventPriority

  • channels: Channel subscription configuration

  • detachedSend: Detached send configuration

Channel Subscriptions

Configure channel subscriptions and filters for a bus.

Sample:

Elements:

  • channel: Channel subscription configuration

    • @name (required): Channel name

      • DDL Override: Not overridable (key)

    • @join (required): Whether to join the channel

      • DDL Override: x.apps.<appname>.messaging.buses.<busname>.<channelname>.join

    • filter: Message filter expression for the channel

      • DDL Override: x.apps.<appname>.messaging.buses.<busname>.<channelname>.filter

    • preserveJoinsOnClose: Policy for preserving joins on bus close (values: Default | Preserve | NoPreserve)

      • DDL Override: x.apps.<appname>.messaging.buses.<busname>.<channelname>.preserveJoinsOnClose

Detached Send Configuration

Configure detached (asynchronous) send for a bus.

Sample:

Attributes:

  • @enabled: Enable/disable detached send

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.detachedSend.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.apps.<appname>.messaging.buses.<busname>.detachedSend.<property>

Storage Configuration

Configures storage, clustering, persistence, and inter-cluster replication.

Sample:

Attributes:

  • @enabled (default: true): Enable/disable the store for this application

    • DDL Override: x.apps.<appname>.storage.enabled

Elements:

  • persistenceQuorum (default: 2): Minimum number of cluster members for asynchronous persistence commits

    • DDL Override: x.apps.<appname>.storage.persistenceQuorum

  • maxPersistSyncBacklog (default: 0): Maximum time in seconds before forcing persister sync (0 = disabled)

    • DDL Override: x.apps.<appname>.storage.maxPersistSyncBacklog

  • icrQuorum (default: 2): Minimum number of cluster members for asynchronous ICR commits

    • DDL Override: x.apps.<appname>.storage.icrQuorum

  • maxIcrSyncBacklog (default: 0): Maximum time in seconds before forcing ICR sender sync (0 = disabled)

    • DDL Override: x.apps.<appname>.storage.maxIcrSyncBacklog

  • checkpointingType: Checkpoint controller type (values: Default | CDC | Conflation)

    • DDL Override: x.apps.<appname>.storage.checkpointingType

  • checkpointThreshold: Maximum entries before incrementing checkpoint version

    • DDL Override: x.apps.<appname>.storage.checkpointThreshold

  • checkpointMaxInterval: Maximum time in milliseconds between checkpoints

    • DDL Override: x.apps.<appname>.storage.checkpointMaxInterval

  • detachedMemberInitialization (default: false): Enable non-blocking cluster join

    • DDL Override: x.apps.<appname>.storage.detachedMemberInitialization

  • detachedMemberInitializerCpuAffinityMask: CPU affinity for detached initializer thread

    • DDL Override: x.apps.<appname>.storage.detachedMemberInitializerCpuAffinityMask

  • queryable: Enable SQL-like querying of in-memory store contents (experimental)

    • DDL Override: x.apps.<appname>.storage.queryable

  • discoveryDescriptor: Deprecated - use clustering/discoveryDescriptor instead

    • DDL Override: x.apps.<appname>.storage.discoveryDescriptor

  • factories: State factory configuration

  • clustering: Store clustering configuration

  • persistence: Disk persistence configuration

  • icr: Inter-cluster replication configuration

State Factories

Configure state factory classes for the application store.

Sample:

Elements:

  • factory/@name (required): State factory class name

    • DDL Override: Not overridable (key)

Clustering

Configures store clustering for high availability. Applications with the same store name automatically form a cluster.

Sample:

Attributes:

  • @enabled (default: true): Enable/disable store clustering

    • DDL Override: x.apps.<appname>.storage.clustering.enabled

Elements:

  • storeName: Name of the store. Applications with the same store name form a cluster

    • DDL Override: x.apps.<appname>.storage.clustering.storeName

  • localPort: TCP port to bind to when listening for cluster connections

    • DDL Override: x.apps.<appname>.storage.clustering.localPort

  • localIfAddr: Local network interface to bind to for cluster connections

    • DDL Override: x.apps.<appname>.storage.clustering.localIfAddr

  • linkParams: Comma-separated key=value pairs for cluster connection parameters

    • DDL Override: x.apps.<appname>.storage.clustering.linkParams

  • linkReaderCpuAffinityMask: CPU affinity for cluster connection reader thread

    • DDL Override: x.apps.<appname>.storage.clustering.linkReaderCpuAffinityMask

  • discoveryDescriptor: Custom discovery descriptor for the store cluster

    • DDL Override: x.apps.<appname>.storage.clustering.discoveryDescriptor

  • discovery: Alternative to discoveryDescriptor for defining discovery provider

  • initWaitTime: Time in milliseconds to wait for cluster to stabilize on open

    • DDL Override: x.apps.<appname>.storage.clustering.initWaitTime

  • failOnMultiplePrimaries (default: true): Whether to fail on detecting multiple primaries

    • DDL Override: x.apps.<appname>.storage.clustering.failOnMultiplePrimaries

  • memberElectionPriority (default: 255): Leader election priority (lower wins)

    • DDL Override: x.apps.<appname>.storage.clustering.memberElectionPriority

  • detachedSend: Detached replication sender configuration

  • detachedDispatch: Detached replication dispatcher configuration

Clustering Discovery

Alternative to discoveryDescriptor for defining discovery provider.

Sample:

Elements:

  • provider: Discovery provider name

    • DDL Override: x.apps.<appname>.storage.clustering.discovery.provider

  • address: Discovery server address

    • DDL Override: x.apps.<appname>.storage.clustering.discovery.address

  • port: Discovery server port (optional)

    • DDL Override: x.apps.<appname>.storage.clustering.discovery.port

  • properties: Discovery properties

    • DDL Override: x.apps.<appname>.storage.clustering.discovery.properties.*

Detached Replication Send

Configure detached replication sender thread for asynchronous cluster replication.

Sample:

Attributes:

  • @enabled: Enable/disable detached send

    • DDL Override: x.apps.<appname>.storage.clustering.detachedSend.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.apps.<appname>.storage.clustering.detachedSend.<property>

Detached Replication Dispatch

Configure detached replication dispatcher thread for asynchronous cluster replication processing.

Sample:

Attributes:

  • @enabled: Enable/disable detached dispatch

    • DDL Override: x.apps.<appname>.storage.clustering.detachedDispatch.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.apps.<appname>.storage.clustering.detachedDispatch.<property>

Persistence

Configures disk-based persistence for the store's transaction log.

Sample:

Attributes:

  • @enabled (default: true): Enable/disable disk persistence

    • DDL Override: x.apps.<appname>.storage.persistence.enabled

  • @class (default: native): Custom persister class implementation

    • DDL Override: x.apps.<appname>.storage.persistence.class

Elements:

  • shared (default: false): Whether this is a shared persister

    • DDL Override: x.apps.<appname>.storage.persistence.shared

  • flushOnCommit (default: false): Whether to flush persister on commit

    • DDL Override: x.apps.<appname>.storage.persistence.flushOnCommit

  • autoFlushSize (default: 8192): Size at which flush is automatically triggered for queued writes

    • DDL Override: x.apps.<appname>.storage.persistence.autoFlushSize

  • autoRepair: Automatically repair logs by truncating malformed entries

    • DDL Override: x.apps.<appname>.storage.persistence.autoRepair

  • storeRoot: Root folder for persister's transaction log files

    • DDL Override: x.apps.<appname>.storage.persistence.storeRoot

  • cdcEnabled (default: false): Enable change data capture (StateReplication only)

    • DDL Override: x.apps.<appname>.storage.persistence.cdcEnabled

  • logScavengePolicy: Policy for scavenging obsolete logs (values: Delete | Disabled)

    • DDL Override: x.apps.<appname>.storage.persistence.logScavengePolicy

  • logBackupRetentionCount: Maximum retention count for log backups

    • DDL Override: x.apps.<appname>.storage.persistence.logBackupRetentionCount

  • initialLogLength: Initial file size of transaction log (preallocated)

    • DDL Override: x.apps.<appname>.storage.persistence.initialLogLength

  • zeroOutInitial: Explicitly zero out log file on creation

    • DDL Override: x.apps.<appname>.storage.persistence.zeroOutInitial

  • flushUsingMappedMemory: Use memory mapped file buffer for flushes

    • DDL Override: x.apps.<appname>.storage.persistence.flushUsingMappedMemory

  • pageSize (default: 8kb): Disk page size hint for optimization

    • DDL Override: x.apps.<appname>.storage.persistence.pageSize

  • compaction: Log compaction configuration

  • cdc: Change data capture configuration

  • detachedPersist: Detached persistence configuration

Compaction Configuration

Log compaction configuration (StateReplication only).

Sample:

Elements:

  • compactOnStart: Trigger compaction on startup

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.compactOnStart

  • compactionThreshold: Log size that triggers compaction (in MB, ≤0 disables)

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.compactionThreshold

  • maxCompactionWindowSize: Maximum size of entries held in memory during compaction (in MB)

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.maxCompactionWindowSize

  • entryRetentionThreshold: Maximum entries retained in memory during compaction

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.entryRetentionThreshold

  • conflateCheckpoints (default: true): Conflate checkpoints before dispatching to handler

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.conflateCheckpoints

  • offheapBuffering (default: false): Buffer non-retained entries in off-heap memory

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.offheapBuffering

  • offheapBufferingLoadStrategy: Load strategy for off-heap buffering (values: PktReader | RandomAccessFile | MemoryMappedRead | Disabled)

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.offheapBufferingLoadStrategy

  • offheapBufferingMaxPageSize: Maximum size of each off-heap buffer (min: 8kb)

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.offheapBufferingMaxPageSize

  • memMappedReadBufferMaxSize: Max size of memory mapped buffer for MemoryMappedRead strategy

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.memMappedReadBufferMaxSize

  • properties: Advanced tuning properties for compactor

    • DDL Override: x.apps.<appname>.storage.persistence.compaction.properties.*

Change Data Capture (CDC)

Change Data Capture configuration for CDC-enabled persistence.

Sample:

Elements:

  • entryRetentionThreshold: Maximum entries held in memory while processing checkpoints

    • DDL Override: x.apps.<appname>.storage.persistence.cdc.entryRetentionThreshold

  • skipCdcCheckpointed (default: true): Skip entries above CDC checkpoint version

    • DDL Override: x.apps.<appname>.storage.persistence.cdc.skipCdcCheckpointed

  • properties: Advanced tuning properties for CDC

    • DDL Override: x.apps.<appname>.storage.persistence.cdc.properties.*

Detached Persistence

Configure detached persister write thread for asynchronous persistence.

Sample:

Attributes:

  • @enabled: Enable/disable detached persistence

    • DDL Override: x.apps.<appname>.storage.persistence.detachedPersist.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.apps.<appname>.storage.persistence.detachedPersist.<property>

Inter-Cluster Replication (ICR)

Configures inter-cluster replication for sending/receiving updates between geographically distributed clusters.

Sample:

Attributes:

  • @enabled (default: true): Enable/disable inter-cluster replication

    • DDL Override: x.apps.<appname>.storage.icr.enabled

  • @role (required): ICR role - Sender or StandaloneReceiver

    • DDL Override: x.apps.<appname>.storage.icr.role

  • @busDescriptor: Bus descriptor for ICR. Required unless bus element is used

    • DDL Override: x.apps.<appname>.storage.icr.busDescriptor

Elements:

  • shared (default: false): Whether ICR sender is shared (use true for Standalone Receiver)

    • DDL Override: x.apps.<appname>.storage.icr.shared

  • flushOnCommit (default: false): Whether ICR sender should be flushed on commit

    • DDL Override: x.apps.<appname>.storage.icr.flushOnCommit

  • bus: Define private bus instance for ICR (alternative to busDescriptor)

  • detachedSend: Detached ICR sender configuration

ICR Bus Configuration

Define private bus instance for ICR (alternative to busDescriptor).

Sample:

Elements:

  • provider: Bus provider name

    • DDL Override: x.apps.<appname>.storage.icr.bus.provider

  • address: Bus address

    • DDL Override: x.apps.<appname>.storage.icr.bus.address

  • port: Bus port

    • DDL Override: x.apps.<appname>.storage.icr.bus.port

  • properties: Bus properties

    • DDL Override: x.apps.<appname>.storage.icr.bus.properties.*

ICR Detached Send

Configure detached ICR sender thread for asynchronous inter-cluster replication.

Sample:

Attributes:

  • @enabled: Enable/disable detached send

    • DDL Override: x.apps.<appname>.storage.icr.detachedSend.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.apps.<appname>.storage.icr.detachedSend.<property>

Transaction Configuration

Sample:

Elements:

  • adaptiveCommitBatchCeiling (default: 1): Maximum messages per transaction batch. Set to value > 1 to enable adaptive batching

    • DDL Override: x.apps.<appname>.adaptiveCommitBatchCeiling

Statistics Configuration

Sample:

Elements:

  • captureTransactionLatencyStats (default: false): Collect transaction pipeline latency stats

    • DDL Override: x.apps.<appname>.captureTransactionLatencyStats

  • captureEventLatencyStats (default: false): Collect event processing latency stats

    • DDL Override: x.apps.<appname>.captureEventLatencyStats

  • captureMessageTypeStats (default: false): Collect per-message-type statistics

    • DDL Override: x.apps.<appname>.captureMessageTypeStats

  • messageTypeStatsLatenciesToCapture (default: all): Latency stats to capture per message type (values: all | none | comma-separated list: c2o, o2p, mfilt, mpproc, mproc)

    • DDL Override: x.apps.<appname>.messageTypeStatsLatenciesToCapture

Message Logging

Sample:

Elements:

  • inboundMessageLogging: Configures inbound message logging for the engine

    • @policy (default: Off): Inbound message logging policy - Off | UseDedicated

      • DDL Override: x.apps.<appname>.inboundMessageLogging.policy

    • @failurePolicy (default: StopLogging): What to do on logging failure - StopLogging | StopEngine

      • DDL Override: x.apps.<appname>.inboundMessageLogging.failurePolicy

  • outboundMessageLogging: Configures outbound message logging for the engine

    • @policy (default: Off): Outbound message logging policy - Off | UseDedicated

      • DDL Override: x.apps.<appname>.outboundMessageLogging.policy

    • @failurePolicy (default: StopLogging): What to do on logging failure - StopLogging | StopEngine

      • DDL Override: x.apps.<appname>.outboundMessageLogging.failurePolicy

Threading Configuration

Sample:

Elements:

  • inboundEventMultiplexing: Configures the engine's inbound event multiplexer

    • @type (default: DedicatedThreaded): Input queue multiplexer type - FreeThreadedSerialized | DedicatedThreaded

      • DDL Override: x.apps.<appname>.inboundEventMultiplexing.type

    • queueDepth (default: 1024): Maximum input queue capacity

      • DDL Override: x.apps.<appname>.inboundEventMultiplexing.queueDepth

Duplicate Detection

Sample:

Elements:

  • performDuplicateChecking (default: true): Enable duplicate message detection

    • DDL Override: x.apps.<appname>.performDuplicateChecking

Replication and Transaction Control

Elements:

  • replicateSolicitedSends (default: varies): Whether to replicate solicited sends

  • replicateUnsolicitedSends (default: varies): Whether to replicate unsolicited sends

  • sequenceUnsolicitedSends (default: varies): Sequence unsolicited sends

  • sequenceUnsolicitedWithSolicitedSends: Sequence unsolicited with solicited sends

  • dispatchSendStabilityEvents (default: false): Dispatch send stability events

  • disposeOnSend (default: varies): Dispose messages on send

  • dispatchTransactionStageEvents (default: false): Dispatch transaction stage events

  • enableTransactionCommitSuspension (default: false): Enable transaction commit suspension

  • enableTransactionSavepoints (default: false): Enable transaction savepoints

  • clusterHeartbeatInterval (default: 0): Cluster heartbeat interval in milliseconds

  • stuckAlertEventThreshold (default: 0): Threshold for stuck alert events

  • enableSendCommitCompleteSequenceAlerts (default: false): Enable send commit complete sequence alerts

  • replicateInParallel (default: false): Enable parallel replication

  • syncInjectedMessages (default: false): Sync injected messages

Policy Configuration

Elements:

  • inboundEventAcknowledgementPolicy: Policy for acknowledging inbound events

  • appExceptionHandlingPolicy: Policy for handling application exceptions

  • messageHandlingPolicy: Policy for message handling

  • replicationPolicy: Policy for replication behavior

  • messageSendExceptionHandlingPolicy: Policy for handling message send exceptions

  • messageSendStabilityFailureHandlingPolicy: Policy for handling send stability failures

  • messagingStartFailPolicy: Policy for handling messaging start failures

  • messageBusBindingFailPolicy: Policy for handling bus binding failures

Quarantine Configuration

Elements:

  • quarantineChannel: Channel for quarantined messages

  • quarantineMessageKey: Key for quarantined messages

Trace Configuration

Elements:

  • performMidstreamInitializationValidation (default: false): Perform midstream initialization validation

  • enableSequenceNumberTrace (default: false): Enable sequence number trace

  • enableEventTrace (default: false): Enable event trace

  • enableAlertTrace (default: false): Enable alert trace

  • enableTransactionTrace (default: false): Enable transaction trace

  • enableScheduleTrace (default: false): Enable schedule trace

  • enableMessageTrace (default: false): Enable message trace

  • messageTraceInJson (default: false): Output message trace in JSON format

  • messageTraceJsonStyle: Style for JSON message trace

  • messageTraceMetadataDisplayPolicy: Policy for displaying message metadata in trace

  • messageTraceFilterUnsetFields (default: false): Filter unset fields in message trace

Advanced Configuration

Elements:

  • administrative (default: false): Mark engine as administrative

  • maxEnvironmentProviders: Maximum number of environment providers

  • setSupportMetadata (default: varies): Set support metadata

  • setOutboundSequenceNumbers (default: varies): Set outbound sequence numbers

  • stopOnJVMShutdown (default: true): Stop engine on JVM shutdown

  • preserveChannelJoinsOnStop (default: false): Preserve channel joins when engine stops

  • capturePerTransactionStats (default: false): Capture per-transaction statistics

  • startupExpectations: Startup expectations configuration

  • perTransactionStatsLogging: Per-transaction stats logging configuration


XVM Configuration

XVMs are containers that host applications and provide lifecycle management and monitoring.

XVM Configuration Index

Complete XVM Configuration Example

Core XVM Settings

Example:

Attributes:

  • name (required): Unique XVM identifier

    • DDL Override: Not overridable (key)

  • displayName (optional): Human-readable friendly name for the XVM

    • DDL Override: x.xvms.<xvmname>.displayName

  • group (optional): Logical grouping for the XVM

    • DDL Override: x.xvms.<xvmname>.group

  • discoveryDescriptor (optional): Discovery server descriptor for XVM registration

    • DDL Override: x.xvms.<xvmname>.discoveryDescriptor

  • order (optional): Ordering for XVM startup/shutdown

    • DDL Override: x.xvms.<xvmname>.order

  • enabled (optional, default: true): Enable/disable this XVM

    • DDL Override: x.xvms.<xvmname>.enabled

Provisioning Configuration

Configures provisioning details for XVM deployment.

Sample:

Elements:

  • host: Host or IP address to which this XVM should be provisioned

    • DDL Override: x.xvms.<xvmname>.provisioning.host

  • qualifyPathsWithSystem (default: true): Append /systemName/xvmName to installation paths

    • DDL Override: x.xvms.<xvmname>.provisioning.qualifyPathsWithSystem

  • rootDirectory: Root directory of XVM's runtime sandbox (contains run, data, logs subdirectories)

    • DDL Override: x.xvms.<xvmname>.provisioning.rootDirectory

  • runDirectory (default: run): Directory for Rumi distribution and application jars (relative to rootDirectory)

    • DDL Override: x.xvms.<xvmname>.provisioning.runDirectory

  • dataDirectory (default: rdat): Directory for persistent data like transaction logs (relative to rootDirectory)

    • DDL Override: x.xvms.<xvmname>.provisioning.dataDirectory

  • traceLogDirectory (default: logs): Directory for XVM and service trace logs (relative to rootDirectory)

    • DDL Override: x.xvms.<xvmname>.provisioning.traceLogDirectory

  • jvm: JVM settings for the XVM process

JVM Configuration

Configure JVM settings for the XVM process.

Sample:

Elements:

  • javaHome: JVM home directory containing bin/java executable

    • DDL Override: x.xvms.<xvmname>.provisioning.jvm.javaHome

  • jvmParams: JVM parameters string (can span multiple lines)

    • DDL Override: x.xvms.<xvmname>.provisioning.jvm.jvmParams

  • jvmParamSets: Named sets of JVM parameters

JVM Parameter Sets

Named parameter sets for composition and reuse.

Sample:

Attributes:

  • @name (required): Parameter set name

    • DDL Override: Not overridable (key)

  • @order (default: 0): Ordering for parameter application

    • DDL Override: x.xvms.<xvmname>.provisioning.jvm.jvmParamSets.<paramSetName>.order

  • @enabled (default: true): Enable/disable this parameter set

    • DDL Override: x.xvms.<xvmname>.provisioning.jvm.jvmParamSets.<paramSetName>.enabled

Elements:

  • jvmParams: JVM parameters for this set

    • DDL Override: x.xvms.<xvmname>.provisioning.jvm.jvmParamSets.<paramSetName>.jvmParams

Applications

Example:

Elements:

  • apps/app: Application(s) to run in this XVM

    • name (required): Application name (must be defined in <apps> section)

      • DDL Override: Not overridable (key)

    • enabled (optional, default: true): Whether to enable this app

      • DDL Override: x.xvms.<xvmname>.apps.<appname>.enabled

    • autoStart (optional, default: true): Whether to auto-start on XVM startup

      • DDL Override: x.xvms.<xvmname>.apps.<appname>.autoStart

Network Configuration

Example:

Elements:

  • acceptors/acceptor: Network acceptor configuration

    • descriptor (required): Acceptor descriptor (format: tcp://host:port)

    • enabled (optional, default: true): Whether to enable this acceptor

    • linkParams: Additional network connection parameters

Threading Configuration

Example:

Elements:

  • multiThreading/@enabled (required): Whether multi-threading is enabled

    • DDL Override: x.xvms.<xvmname>.multiThreading.enabled

  • multiThreading/ioThreads/ioThread: I/O thread configuration

    • id (required): Thread ID (zero-based, monotonically increasing)

    • affinity (optional, default: 0): CPU affinity

    • enabled (optional, default: true): Whether this thread is enabled

Heartbeats and Monitoring

Configures statistics collection and heartbeat emission for XVM monitoring.

Sample:

Elements:

Heartbeat Configuration

Sample:

Attributes:

  • @enabled (optional, default: false): Enable heartbeat emission

    • DDL Override: x.xvms.<xvmname>.heartbeats.enabled

  • @interval (optional, default: 30): Heartbeat interval in seconds

    • DDL Override: x.xvms.<xvmname>.heartbeats.interval

Elements:

  • collectSeriesStats (default: true): Collect latency and series statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectSeriesStats

  • collectSeriesDatapoints (default: false): Include datapoints in series stats (bandwidth intensive)

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectSeriesDatapoints

  • poolDepletionThreshold (default: 1.0): Percentage threshold for preallocated pool depletion reporting

    • DDL Override: x.xvms.<xvmname>.heartbeats.poolDepletionThreshold

  • collectPoolStats (default: true): Collect and report pool statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectPoolStats

  • collectAllPoolStats (default: false): Include all pools regardless of activity

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectAllPoolStats

  • collectIndividualThreadStats (default: true): Collect stats for individual threads

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectIndividualThreadStats

  • collectNonZGStats (default: true): Collect stats that may produce garbage (CPU usage, disk stats)

    • DDL Override: x.xvms.<xvmname>.heartbeats.collectNonZGStats

  • includeMessageTypeStats (default: false): Include per-message-type stats in heartbeats

    • DDL Override: x.xvms.<xvmname>.heartbeats.includeMessageTypeStats

  • inactiveMessageTypeStatsInclusionFrequency (default: 1): Frequency for including inactive message types (1 = every heartbeat, 0 = never)

    • DDL Override: x.xvms.<xvmname>.heartbeats.inactiveMessageTypeStatsInclusionFrequency

Heartbeat Tracing

Configures tracing of heartbeat statistics to log output for development and debugging.

Sample:

Attributes:

  • @enabled (default: false): Enable heartbeat statistics tracing to log output

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.enabled

Elements:

  • traceAdminClientStats (default: true): Trace admin client statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.traceAdminClientStats

  • traceAppStats (default: true): Trace application statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.traceAppStats

  • tracePoolStats (default: true): Trace memory pool statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.tracePoolStats

  • traceSysStats (default: true): Trace system statistics (CPU, memory, disk)

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.traceSysStats

  • traceThreadStats (default: true): Trace thread statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.traceThreadStats

  • traceUserStats (default: true): Trace user-defined application statistics

    • DDL Override: x.xvms.<xvmname>.heartbeats.tracing.traceUserStats

Heartbeat Logging

Configures disk-based logging of heartbeat data.

Sample:

Attributes:

  • @enabled (optional, default: false): Enable disk logging

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.enabled

Elements:

  • flushOnCommit (default: false): Flush logger on commit

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.flushOnCommit

  • flushUsingMappedMemory: Use memory mapped file buffer for flushes

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.flushUsingMappedMemory

  • autoFlushSize (default: 8192): Size triggering automatic flush

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.autoFlushSize

  • autoRepair: Automatically repair malformed log entries on open

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.autoRepair

  • storeRoot: Root folder for heartbeat log files (alternative to dataDirectory)

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.storeRoot

  • initialLogLength (default: 1mb): Initial log file size (preallocated)

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.initialLogLength

  • zeroOutInitial: Explicitly zero out log file on creation

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.zeroOutInitial

  • pageSize: Disk page size hint (default: 8kb)

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.pageSize

  • dataDirectory (optional): Directory for heartbeat logs (legacy)

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.dataDirectory

  • detachedWrite: Detached writer configuration

Detached Write Configuration

Configure detached writer thread for asynchronous heartbeat logging.

Sample:

Attributes:

  • @enabled: Enable/disable detached write

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.detachedWrite.enabled

Elements:

  • Includes all EventMultiplexerProperties: queueDepth, queueOfferStrategy, queueWaitStrategy, queueDrainerCpuAffinityMask, queueFeedMaxConcurrency

    • DDL Override: x.xvms.<xvmname>.heartbeats.logging.detachedWrite.<property>

Timeouts and Limits

Example:

Elements:

  • clientHandshakeTimeout (optional): Timeout for client handshake in milliseconds

    • DDL Override: x.xvms.<xvmname>.clientHandshakeTimeout

  • adminClientOutputQueueCapacity (optional): Admin client output queue capacity in MB

    • DDL Override: x.xvms.<xvmname>.adminClientOutputQueueCapacity

  • maxTraceHistory (optional, default: 512): Maximum trace lines buffered for admin clients

    • DDL Override: x.xvms.<xvmname>.maxTraceHistory

Lifecycle Configuration

Example:

Elements:

  • autoStopOnAppStartFail (optional, default: true): Stop XVM if any app fails to start

    • DDL Override: x.xvms.<xvmname>.autoStopOnAppStartFail

  • autoStopOnLastAppStop (optional, default: true): Stop XVM when last app stops

    • DDL Override: x.xvms.<xvmname>.autoStopOnLastAppStop

Discovery Configuration

Example:

Elements:

  • discovery/descriptor: Discovery server descriptor (alternative to discoveryDescriptor attribute)

XVM-Specific Environment

Example:

Elements:

  • env: XVM-specific environment properties (merged with global <env>)

Admin Configuration

Configures administration and monitoring capabilities of the XVM.

Sample:

Elements:

  • passiveMonitoringOnly (default: false): Enable passive monitoring mode only

    • DDL Override: x.xvms.<xvmname>.admin.passiveMonitoringOnly

  • transports: Transport mechanisms for administration and monitoring

Admin Transports

Configure transport mechanisms for administration and monitoring.

Sample:

Elements:

  • direct: Direct (TCP) transport configuration

  • sma: Admin over SMA (messaging) transport configuration

Direct Transport

Direct (TCP) based monitoring and control.

Sample:

Attributes:

  • @enabled (default: true): Enable direct connections

    • DDL Override: x.xvms.<xvmname>.admin.transports.direct.enabled

SMA Transport

Admin over SMA (messaging) transport.

Sample:

Elements:

  • busName: Name of bus (from global buses section) for admin over SMA

    • DDL Override: x.xvms.<xvmname>.admin.transports.sma.busName

  • channels/request/@enabled (default: true): Enable request channel

    • DDL Override: x.xvms.<xvmname>.admin.transports.sma.channels.request.enabled

  • channels/response/@enabled (default: true): Enable response channel

    • DDL Override: x.xvms.<xvmname>.admin.transports.sma.channels.response.enabled

  • channels/heartbeat/@enabled (default: true): Enable heartbeat channel

    • DDL Override: x.xvms.<xvmname>.admin.transports.sma.channels.heartbeat.enabled

  • channels/trace/@enabled (default: true): Enable trace channel

    • DDL Override: x.xvms.<xvmname>.admin.transports.sma.channels.trace.enabled


Enums Reference

ChannelQos

Quality of service levels for message channels.

  • BestEffort: Messages delivered with best effort, no acknowledgment or persistence guarantees

  • Guaranteed: Messages acknowledged and persisted by messaging infrastructure before confirmation

HAPolicy

High availability policies for application storage.

  • Disabled: No high availability, single instance operation

  • EventSourcing: Event sourcing pattern - store input events, derive state on recovery

  • StateReplication: State replication pattern - replicate state changes to backup instances

InboundEventMultiplexerType

Types of inbound event multiplexers.

  • FreeThreadedSerialized: Allows different threads to dispatch events over time, but only one at a time

  • DedicatedThreaded: Uses a dedicated thread for event dispatching

Message Logging Policies

InboundMessageLoggingPolicy / OutboundMessageLoggingPolicy:

  • Off: Message logging disabled (default)

  • UseDedicated: Use dedicated log for message logging

InboundMessageLoggingFailurePolicy / OutboundMessageLoggingFailurePolicy:

  • StopLogging: Trap errors and discontinue logging (default)

  • StopEngine: Treat logging failure as engine failure and shutdown


Reusable Element Groups

XSD element groups that are referenced throughout the DDL configuration.

EventMultiplexerProperties

Configuration properties for event multiplexers. Event multiplexers are responsible for multiplexing events from multiple source threads onto a single dispatch thread.

Sample:

Elements:

  • queueDepth: Size of the event queue (should be power of 2)

    • DDL Override: x.[path].queueDepth (varies by context)

  • queueOfferStrategy: Strategy for threads publishing to the queue

    • Values: Block | Fail | BusySpin

    • DDL Override: x.[path].queueOfferStrategy

  • queueWaitStrategy: Strategy for queue consumer thread waiting for events

    • Values: Block | BusySpin | Yield

    • DDL Override: x.[path].queueWaitStrategy

  • queueDrainerCpuAffinityMask: CPU affinity mask for the queue drainer thread (hex format like 0x0001)

    • DDL Override: x.[path].queueDrainerCpuAffinityMask

  • queueFeedMaxConcurrency: Maximum number of concurrent feeders to the queue

    • DDL Override: x.[path].queueFeedMaxConcurrency

Used in:

  • Storage clustering detached send/dispatch

  • Storage persistence detached persist

  • Storage ICR detached send

  • Messaging bus detached send

  • Heartbeat logging detached write

  • Threading inbound event multiplexing


Groups Reference

Groups provide reusable configuration elements (Since 3.8).

Groups can contain any DDL configuration elements. When a component references a group via the groups attribute, the group's configuration is merged into the component.


DDL Profiles

Profiles enable environment-specific configuration (Since 3.8).

Activating a profile:



See Also

Last updated