Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info
titleOutbox pattern

The outbox poller is part of the outbox pattern, see Getting started with Case Modelling for more information on the outbox/inbox pattern.

The outbox poller processes messages which are not being processed at the end of a transaction or serves two purposes. The first is to process messages from the outbox that do not contain a case ID because they are sent from the process engine. Currently, this only contains process finished messages. The default interval for this poller is 1 minute. The second is to process messages from the outbox that have failed to be sent initially and would otherwise remain in the outbox forever. The This outbox poller reads from the outbox table (s) every 2 on startup and every 30 minutes by default. 

Both intervals are configurable. Scheduling Scheduling it say once a day, which makes sure that the execution time of the process will not exceed the interval, will lead to other problems as customers expect updates on cases which don't happen. However, scheduling it every second will lead to the execution time of the publisher being longer than the interval which eventually will crash the application. A warning message will be shown in the log if the interval is exceeded and processing will be started again from that time plus the interval. If this message is printed regularly, consider changing the interval.

Starting from version 16.7, the property blueriq.case.engine.outbox.poller.interval.minutes can be used to update the interval. The value is of type Duration and default value is 2M. See Duration for the different value options.

Code Block
languagetext
titleExample
blueriq.case.engine.outbox.poller.interval.minutes=15m # default is 30m

Starting from version 17.4 it's also possible to set a separate interval for messages coming from the process engine, which don't contain a case ID.

Code Block
languagetext
titleExample
blueriq.case.engine.outbox.poller.process.messages.interval.minutes=60s30s # default is 1m

Batch size

Starting from version 17.2, the property blueriq.case.engine.outbox.poller.batchsize can be used to set number of messages that are pulled retrieved from outbox table. Default The default value is set to 10000.

Code Block
titleExample
blueriq.case.engine.outbox.poller.batchsize=50000

Async processors

Starting from version 17.2, the property blueriq.case.engine.outbox.async.threads.pool.size can be used to set number of threads that process messages taken retrieved from the outbox. Default The default value is set to 1.

Code Block
titleExample
blueriq.case.engine.outbox.async.threads.pool.size=5

Outbox Tuning

Additional information about tuning and configuring Outbox can be found here - Best practice - How to tune the Case Engine components.