You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

Outbox 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 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. This outbox poller reads from the outbox table on startup and every 30 minutes by default. 

Both intervals are configurable. 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. See Duration for the different value options.

Example
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.

Example
blueriq.case.engine.outbox.poller.process.messages.interval.minutes=30s # 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 retrieved from outbox table. The default value is set to 10000.

Example
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 retrieved from the outbox. The default value is set to 1.

Example
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.