Configuration
Complete reference for Talon configuration including global environment properties and DDL (Domain Descriptor Language) elements.
Overview
Talon provides two complementary configuration mechanisms:
Global Environment: Property-based configuration for runtime behavior (statistics, optimization, trace levels)
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:
System properties (
-Dproperty=value)App propfile (specified via
nv_app_propfileenvironment variable or-Dnv.app.propfilesystem property)Environment variables
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 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.samplesizeType: 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:
10240Type: 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:
falseType: 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:
falseType: boolean
Can Set in
<env>?: Yes
nv.ods.latency.stats
Description: Enable collection of application store latencies.
Default:
falseType: 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:
falseType: 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:
falseType: 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|noneDefault:
noneType: string
Can Set in
<env>?: Yes
nv.conservecpu
Description: When
true, use conservative CPU strategies (blocking waits). Whenfalse, use aggressive strategies (busy spins) for lower latency.Default:
falseType: 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.ddlatINFOlevel. Useful for troubleshooting configuration issues.Default:
falseType: 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:4090Default: -
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
0to disable. Stats traced to loggernv.aep.engine.statsatINFOlevel. Note: Disabling only stops tracing, not collection. Stats can still be collected by XVM heartbeats. Tracing is NOT zero-garbage.Default:
0Type: integer
Can Set in
<env>?: Yes
nv.aep.<engine>.sysstats.interval
Description: Interval (in seconds) at which engine sys stats are traced. Set to
0to disable. Usually not needed; XVM statistics are preferred.Default:
0Type: 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.intervalis set.Default:
0Type: 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.statsisfalse. Also reported in engine stats if enabled.Default:
0Type: 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:
0Type: 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:
Set values for elements not present in your DDL XML file
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
Environment Configuration - Global environment properties
Message Bus Provider Configuration - Custom bus provider registration
Message Bus Configuration - Message buses, templates, and channels
Engine Configuration - Microservice runtime configuration (AEP engines)
Storage Configuration - Clustering, persistence, ICR
Messaging Configuration - Message factories and bus associations
Statistics Configuration - Latency and performance statistics
Message Logging - Inbound and outbound message logging
Threading Configuration - Event multiplexer configuration
Transaction Configuration - Adaptive batching
Replication and Transaction Control - Replication settings
Policy Configuration - Exception and failure policies
Trace Configuration - Debug trace settings
XVM Configuration - Execution container configuration
Provisioning Configuration - Host and directory configuration
Heartbeats and Monitoring - Statistics collection and emission
Admin Configuration - Administration and monitoring transports
Enums Reference - Enumerated type values
Reusable Element Groups - XSD groups (EventMultiplexerProperties)
Groups Reference - Reusable configuration groups
DDL Profiles - Environment-specific configuration
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 withx.env.nv.msg.latency.stats=false<myapp><maxOrderSize>1000000</maxOrderSize></myapp>can be overridden withx.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 providersDDL Override: Not overridable (key)
providerClass (required): Fully qualified class name implementing
com.neeve.sma.MessagingProviderDDL 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 providerDDL Override:
x.busProviders.<providerName>.enabled
Message Bus Configuration
Define message buses and their channels.
Sample:
Elements:
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 ifprovider/addressnot used separatelyDDL Override:
x.buses.bus.<busname>.descriptor
@provider (conditional): Bus provider name (e.g.,
solace,jms,kafka,loopback). Required ifdescriptornot usedDDL 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 busDDL 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 channelDDL 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 allowedDDL 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
Core Engine Settings - Name and main class
Clustering - High availability clustering
Persistence - Disk-based persistence
Inter-Cluster Replication (ICR) - Geographic replication
Transaction Configuration - Adaptive batching settings
Statistics Configuration - Latency and performance statistics
Message Logging - Inbound and outbound message logging
Threading Configuration - Event multiplexer and queue settings
Duplicate Detection - Duplicate message detection
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 applicationDDL Override:
x.apps.<appname>.enabled
Messaging Configuration
Configures messaging factories and bus associations for the engine.
Sample:
Elements:
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 bindingDDL Override:
x.apps.<appname>.messaging.buses.<busname>.manualStart
@enabled (default:
true): Enable/disable this bus associationDDL Override:
x.apps.<appname>.messaging.buses.<busname>.enabled
Elements:
nonBlockingInboundMessageDispatch (default:
false): Enable non-blocking inbound message dispatchDDL 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 eventsDDL 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,queueFeedMaxConcurrencyDDL 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 applicationDDL Override:
x.apps.<appname>.storage.enabled
Elements:
persistenceQuorum (default:
2): Minimum number of cluster members for asynchronous persistence commitsDDL 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 commitsDDL 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 joinDDL 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/discoveryDescriptorinsteadDDL 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 clusteringDDL 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 primariesDDL 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,queueFeedMaxConcurrencyDDL 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,queueFeedMaxConcurrencyDDL 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 persistenceDDL Override:
x.apps.<appname>.storage.persistence.enabled
@class (default:
native): Custom persister class implementationDDL Override:
x.apps.<appname>.storage.persistence.class
Elements:
shared (default:
false): Whether this is a shared persisterDDL Override:
x.apps.<appname>.storage.persistence.shared
flushOnCommit (default:
false): Whether to flush persister on commitDDL Override:
x.apps.<appname>.storage.persistence.flushOnCommit
autoFlushSize (default:
8192): Size at which flush is automatically triggered for queued writesDDL 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 optimizationDDL 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 handlerDDL Override:
x.apps.<appname>.storage.persistence.compaction.conflateCheckpoints
offheapBuffering (default:
false): Buffer non-retained entries in off-heap memoryDDL 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 versionDDL 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,queueFeedMaxConcurrencyDDL 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 replicationDDL Override:
x.apps.<appname>.storage.icr.enabled
@role (required): ICR role -
SenderorStandaloneReceiverDDL Override:
x.apps.<appname>.storage.icr.role
@busDescriptor: Bus descriptor for ICR. Required unless
buselement is usedDDL Override:
x.apps.<appname>.storage.icr.busDescriptor
Elements:
shared (default:
false): Whether ICR sender is shared (usetruefor Standalone Receiver)DDL Override:
x.apps.<appname>.storage.icr.shared
flushOnCommit (default:
false): Whether ICR sender should be flushed on commitDDL 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,queueFeedMaxConcurrencyDDL 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 batchingDDL Override:
x.apps.<appname>.adaptiveCommitBatchCeiling
Statistics Configuration
Sample:
Elements:
captureTransactionLatencyStats (default:
false): Collect transaction pipeline latency statsDDL Override:
x.apps.<appname>.captureTransactionLatencyStats
captureEventLatencyStats (default:
false): Collect event processing latency statsDDL Override:
x.apps.<appname>.captureEventLatencyStats
captureMessageTypeStats (default:
false): Collect per-message-type statisticsDDL 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|UseDedicatedDDL Override:
x.apps.<appname>.inboundMessageLogging.policy
@failurePolicy (default:
StopLogging): What to do on logging failure -StopLogging|StopEngineDDL Override:
x.apps.<appname>.inboundMessageLogging.failurePolicy
outboundMessageLogging: Configures outbound message logging for the engine
@policy (default:
Off): Outbound message logging policy -Off|UseDedicatedDDL Override:
x.apps.<appname>.outboundMessageLogging.policy
@failurePolicy (default:
StopLogging): What to do on logging failure -StopLogging|StopEngineDDL 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|DedicatedThreadedDDL Override:
x.apps.<appname>.inboundEventMultiplexing.type
queueDepth (default:
1024): Maximum input queue capacityDDL Override:
x.apps.<appname>.inboundEventMultiplexing.queueDepth
Duplicate Detection
Sample:
Elements:
performDuplicateChecking (default:
true): Enable duplicate message detectionDDL 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 eventsdisposeOnSend (default: varies): Dispose messages on send
dispatchTransactionStageEvents (default:
false): Dispatch transaction stage eventsenableTransactionCommitSuspension (default:
false): Enable transaction commit suspensionenableTransactionSavepoints (default:
false): Enable transaction savepointsclusterHeartbeatInterval (default:
0): Cluster heartbeat interval in millisecondsstuckAlertEventThreshold (default:
0): Threshold for stuck alert eventsenableSendCommitCompleteSequenceAlerts (default:
false): Enable send commit complete sequence alertsreplicateInParallel (default:
false): Enable parallel replicationsyncInjectedMessages (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 validationenableSequenceNumberTrace (default:
false): Enable sequence number traceenableEventTrace (default:
false): Enable event traceenableAlertTrace (default:
false): Enable alert traceenableTransactionTrace (default:
false): Enable transaction traceenableScheduleTrace (default:
false): Enable schedule traceenableMessageTrace (default:
false): Enable message tracemessageTraceInJson (default:
false): Output message trace in JSON formatmessageTraceJsonStyle: 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 administrativemaxEnvironmentProviders: 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 shutdownpreserveChannelJoinsOnStop (default:
false): Preserve channel joins when engine stopscapturePerTransactionStats (default:
false): Capture per-transaction statisticsstartupExpectations: 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
Core XVM Settings - Name and discovery
Provisioning Configuration - Host and directory configuration
Applications - Managed applications
Network Configuration - Acceptors and network listeners
Threading Configuration - I/O threads and multi-threading
Heartbeat Configuration - Heartbeat emission settings
Heartbeat Tracing - Trace statistics to log output
Heartbeat Logging - Disk logging of heartbeats
Timeouts and Limits - Client timeouts and queue capacities
Lifecycle Configuration - Auto-start and auto-stop behavior
Discovery Configuration - Discovery registration
Admin Configuration - Administration and monitoring
XVM-Specific Environment - XVM-specific properties
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 XVMDDL 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/xvmNameto installation pathsDDL 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/javaexecutableDDL 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 applicationDDL Override:
x.xvms.<xvmname>.provisioning.jvm.jvmParamSets.<paramSetName>.order
@enabled (default:
true): Enable/disable this parameter setDDL 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 appDDL Override:
x.xvms.<xvmname>.apps.<appname>.enabled
autoStart (optional, default:
true): Whether to auto-start on XVM startupDDL 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 acceptorlinkParams: 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 affinityenabled (optional, default:
true): Whether this thread is enabled
Heartbeats and Monitoring
Configures statistics collection and heartbeat emission for XVM monitoring.
Sample:
Elements:
heartbeats: Heartbeat emission settings
tracing: Trace statistics to log output
logging: Disk logging of heartbeats
Heartbeat Configuration
Sample:
Attributes:
@enabled (optional, default:
false): Enable heartbeat emissionDDL Override:
x.xvms.<xvmname>.heartbeats.enabled
@interval (optional, default:
30): Heartbeat interval in secondsDDL Override:
x.xvms.<xvmname>.heartbeats.interval
Elements:
collectSeriesStats (default:
true): Collect latency and series statisticsDDL 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 reportingDDL Override:
x.xvms.<xvmname>.heartbeats.poolDepletionThreshold
collectPoolStats (default:
true): Collect and report pool statisticsDDL Override:
x.xvms.<xvmname>.heartbeats.collectPoolStats
collectAllPoolStats (default:
false): Include all pools regardless of activityDDL Override:
x.xvms.<xvmname>.heartbeats.collectAllPoolStats
collectIndividualThreadStats (default:
true): Collect stats for individual threadsDDL 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 heartbeatsDDL 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.
Not Zero-Garbage: Heartbeat tracing produces garbage and is not recommended for production use. Use heartbeat logging or external monitoring instead.
Sample:
Attributes:
@enabled (default:
false): Enable heartbeat statistics tracing to log outputDDL Override:
x.xvms.<xvmname>.heartbeats.tracing.enabled
Elements:
traceAdminClientStats (default:
true): Trace admin client statisticsDDL Override:
x.xvms.<xvmname>.heartbeats.tracing.traceAdminClientStats
traceAppStats (default:
true): Trace application statisticsDDL Override:
x.xvms.<xvmname>.heartbeats.tracing.traceAppStats
tracePoolStats (default:
true): Trace memory pool statisticsDDL 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 statisticsDDL Override:
x.xvms.<xvmname>.heartbeats.tracing.traceThreadStats
traceUserStats (default:
true): Trace user-defined application statisticsDDL Override:
x.xvms.<xvmname>.heartbeats.tracing.traceUserStats
Heartbeat Logging
Configures disk-based logging of heartbeat data.
Sample:
Attributes:
@enabled (optional, default:
false): Enable disk loggingDDL Override:
x.xvms.<xvmname>.heartbeats.logging.enabled
Elements:
flushOnCommit (default:
false): Flush logger on commitDDL 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 flushDDL 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,queueFeedMaxConcurrencyDDL 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 clientsDDL Override:
x.xvms.<xvmname>.maxTraceHistory
Lifecycle Configuration
Example:
Elements:
autoStopOnAppStartFail (optional, default:
true): Stop XVM if any app fails to startDDL Override:
x.xvms.<xvmname>.autoStopOnAppStartFail
autoStopOnLastAppStop (optional, default:
true): Stop XVM when last app stopsDDL Override:
x.xvms.<xvmname>.autoStopOnLastAppStop
Discovery Configuration
Example:
Elements:
discovery/descriptor: Discovery server descriptor (alternative to
discoveryDescriptorattribute)
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 onlyDDL 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 Transport
Direct (TCP) based monitoring and control.
Sample:
Attributes:
@enabled (default:
true): Enable direct connectionsDDL 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 channelDDL Override:
x.xvms.<xvmname>.admin.transports.sma.channels.request.enabled
channels/response/@enabled (default:
true): Enable response channelDDL Override:
x.xvms.<xvmname>.admin.transports.sma.channels.response.enabled
channels/heartbeat/@enabled (default:
true): Enable heartbeat channelDDL Override:
x.xvms.<xvmname>.admin.transports.sma.channels.heartbeat.enabled
channels/trace/@enabled (default:
true): Enable trace channelDDL 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|BusySpinDDL Override:
x.[path].queueOfferStrategy
queueWaitStrategy: Strategy for queue consumer thread waiting for events
Values:
Block|BusySpin|YieldDDL 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:
Related Documentation
Configuration Model - Understanding configuration architecture
Injecting Configuration - Using
@Configuredannotation
See Also
XRuntime API - Programmatic property access
DDL Schema - Complete XML schema definition
Last updated

