Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Add the artifact with groupId com.blueriq and artifactId blueriq-component-timeline-sql-store as a dependency to your Blueriq runtime POM file if you want to depend on it.

Configuration

Database

Scripts to create the required database content are provided for the following databases:

  • SQL Server
  • Oracle
  • H2 (we do not recommend using a H2 database in production environments)
Info

For customers that are upgrading an existing version of Blueriq, database upgrade scripts are provided in the Upgrade instructions when applicable.

UI Text Box
typewarning

Please make sure the timeline-sql-store has a separate datasource. Using the same datasource for other components is known to cause errors.

Use the following steps to configure the datasource:

...

The

...

languagepowershell
titleExample application-externaldatasources.properties

...

datasource name is timeline-sql-store.

...

...

Include Page
_

...

Code Block
languagepowershell
titleExample application-jndidatasources.properties
blueriq.datasource.timeline-sql-store.jndiName=java:/comp/env/jdbc/blueriqTimeline
blueriq.hibernate.timeline-sql-store.hbm2ddl.auto=validate
blueriq.hibernate.timeline-sql-store.dialect=org.hibernate.dialect.SQLServer2012Dialect

DatasourceConfiguration
_DatasourceConfiguration

...

Supported dialects:

  • org.hibernate.dialect.SQLServer2012Dialect (for SQL Server)
  • org.hibernate.dialect.Oracle12cDialect (for Oracle)
  • org.hibernate.dialect.H2Dialect (for H2) (we do not recommend using a H2 database in production environments)

Supported hbm2ddl.auto values:

...

Consume timeline events

The Timeline SQL Store component can store timeline messages directly in the database, but it is also possible to decouple the storage of timeline messages using the Timeline Event Publisher Component to publish timeline events to a queue and then consume them using this component.

...

Note

The Timeline SQL Store either stores timeline messages in the database, or consumes timeline events from the queue. When the configuration below is enabled, only timeline events are consumed, no timeline messages are saved to the database directly. So if you enable this configuration, be sure to also enable the Timeline Event Publisher Component, otherwise no timeline information is saved anywhere.

The queue configuration can be configured using a default queue (using blueriq.default.rabbitmq.* in the application.properties). When it is needed, it can be overruled using the configuration below.

Also the timeline events queue has a default, and can be overruled by configuration when needed.

# RabbitMQ configuration
blueriq.timeline.event.listener.amqp.rabbitmq.host=localhost
blueriq.timeline.event.listener.amqp.rabbitmq.port=5672
blueriq.timeline.event.listener.amqp.rabbitmq.virtualHost=/
blueriq.timeline.event.listener.amqp.rabbitmq.username=guest
blueriq.timeline.event.listener.amqp.rabbitmq.password=guest
blueriq.timeline.event.listener.amqp.rabbitmq.queueNames=traceTimelineEvents

blueriq.timeline.event.listener.amqp.concurrency.max-concurrent-consumers=1
blueriq.timeline.event.listener.amqp.concurrency.concurrent-consumers=1

# Enable consumer functionality
blueriq.timeline.event.listener.amqp.enabled=true
Note

In certain circumstances it is possible that an error happens while consuming the timeline event. Because of the workings of RabbitMQ, this will result in an endless loop where it tries to re-send the timeline event until it is correctly consumed. To prevent this, a republish mechanism is added with Blueriq 15.7. This mechanism sends timeline events to a dead-letter-queue when an error occurs. This will prevent the creation of the endless loop. For information see Configuring RabbitMQ


For more information on concurrent consumers see Configuring RabbitMQ.

...