- 5 minutes to read

MessageProcessingTimerInterval – System Parameter

Control how frequently the Nodinite Logging Service checks for new messages to process with the MessageProcessingTimerInterval system parameter. This setting determines the polling interval for message processing operations, directly impacting throughput and system responsiveness.

What you'll achieve with this parameter:

  • Control message processing frequency for optimal performance
  • Balance throughput with system resource utilization
  • Tune processing intervals for your workload patterns
  • Changes apply automatically without service restart

The MessageProcessingTimerInterval System Parameter defines the timer interval (in milliseconds) for the Logging Service to check for new messages to process. The service uses the MessageProcessingService background service to poll for unprocessed log events at this interval, processing them according to configured Message Types and Search Fields.

System Parameter Name Data Type Values/Example Comment
MessageProcessingTimerInterval integer 15000 Default = 15000 ms (15 seconds). Minimum recommended: 5000 ms (5 seconds).

The Logging Service uses this interval to balance processing throughput with system resource consumption. Lower intervals provide faster message processing but increase CPU and database load. Higher intervals reduce system overhead but may cause processing delays during high-volume periods.

Note

Changes to this parameter are detected automatically by the Logging Service on the next execution cycle. You do NOT need to restart the service for the new value to take effect.


How Message Processing Works

During each processing cycle, the Logging Service performs these operations:

  1. Poll for New Messages - Query the Log Database for unprocessed events
  2. Batch Processing - Process up to MessageProcessingBatchSize messages in each cycle
  3. Extract Search Fields - Parse and index configured Search Fields from message context and body
  4. Apply Message Types - Match events to Message Types and apply retention policies
  5. Encrypt Sensitive Data - Encrypt message payloads and sensitive context properties
  6. Mark as Processed - Update event status to indicate processing completion

Performance Tuning

The processing timer interval should be configured based on your environment's characteristics:

High-Volume Environments

  • Recommendation: Use default 15 seconds or increase to 20-30 seconds
  • Rationale: Reduces database polling overhead and allows batches to accumulate for more efficient processing
  • Trade-off: Slightly higher processing latency, but better overall throughput

Low-Volume Environments

  • Recommendation: Keep default 15 seconds or reduce to 10 seconds
  • Rationale: Provides responsive processing with minimal latency
  • Trade-off: Slightly higher overhead from frequent polling, but negligible in low-volume scenarios

Real-Time Processing Requirements

  • Recommendation: Reduce to 5-10 seconds (minimum recommended)
  • Rationale: Minimizes delay between message arrival and processing completion
  • Trade-off: Higher CPU and database load from frequent polling

Warning

Setting the interval too low (e.g., less than 5 seconds) may cause excessive database load and impact overall system performance. Always test changes in a non-production environment first.

Working with MessageProcessingBatchSize

This parameter works in conjunction with MessageProcessingBatchSize, which controls how many messages are processed per cycle. For optimal performance:

  • High batch size + Higher interval = Efficient bulk processing, suitable for high-volume environments
  • Low batch size + Lower interval = Responsive real-time processing, suitable for low-volume or time-sensitive scenarios

Example configurations:

Environment Type Batch Size Timer Interval Rationale
High-volume production 5000 20000 ms Maximum throughput
Standard production 2000 15000 ms Balanced performance
Development/test 500 10000 ms Responsive debugging
Real-time critical 1000 5000 ms Minimal latency

Frequently Asked Questions

Find more solutions and answers in the Nodinite System Parameters FAQ, as well as the Troubleshooting user guide.

How do I change the value?

You can modify the MessageProcessingTimerInterval in multiple ways:

  1. Admin UI: Via the System Parameters section (recommended method - see 'How do I change the System Parameters')
  2. Web API: Using the endpoint PUT /api/SystemParameters/MessageProcessingTimerInterval
  3. Database: Direct update in the SystemParameters table (not recommended)

Do I need to restart anything?

No! The Logging Service uses IOptionsMonitor to detect configuration changes dynamically. When you change the MessageProcessingTimerInterval value, the service will pick up the new value on the next execution cycle without requiring a restart. This ensures minimal disruption and maximum agility.

What happens if processing takes longer than the interval?

The Logging Service will wait for the current processing operation to complete before starting the next cycle. If processing consistently exceeds the configured interval, the service will effectively process continuously. In this scenario:

How do I know if message processing is keeping up?

Monitor message processing performance through:

  1. Web Client Administration overview - Check Logging Service status
  2. SQL Server - Query unprocessed message counts in Log Databases
  3. Windows Event Log - Review Logging Service performance entries
  4. Processing time metrics - Review the performance table in Logging Service documentation

The default value of 15000 ms (15 seconds) is recommended for most environments. This provides a good balance between:

  • Responsive message processing
  • Efficient resource utilization
  • Scalability for varying workloads

Adjust based on your specific throughput requirements and performance monitoring.

Can I use different intervals for different environments?

Each Nodinite instance has its own MessageProcessingTimerInterval value. If you're logging from multiple BizTalk environments or data sources to a single Nodinite instance, they all share the same processing interval. The Logging Service processes messages from all sources at the same frequency.


Next Step

Logging Service
MessageProcessingBatchSize
Search Fields
Administration