You are viewing the documentation for Blueriq 14. Documentation for other versions is available in our documentation directory.
This component was introduced in Blueriq 14.6. Before Blueriq 14.6, this component was a part of the Trace SQL Store component.
For backwards compatibility, the timeline-sql-store
profile is also enabled when you enable the trace-sql-store
profile.
If no datasource is configured for the timeline, Blueriq will use the same datasource as for the trace-sql-store. We intend to remove these backwards compatibilities in Blueriq 15.
Table of contents
Description
This Timeline SQL Store Component contains a Timeline DAO implementation that can be used by the trace engine to store timeline messages in a database.
Blueriq 14.8 introduces the possibility to consume timeline events that are pushed on a queue by the Timeline Event Publisher Component and then store them in a database in an asynchronous way. See consume timeline events.
Requirements
This component persists data in a database, that must be provided. See platform support for the supported databases.
Installation
In order to use this component, the trace-sql-store or the timeline-sql-store profile must be active. More information on how to configure the application using Spring Profiles can be found here: Component configuration with Spring Profiles.
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)
For customers that are upgrading an existing version of Blueriq, database upgrade scripts are provided in the Upgrade instructions when applicable.
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:
- If necessary, create a new datasource. See Configuring JDBC database drivers for information on how to do this.
- Timeline SQL Store component is using the timeline-sql-store datasource to store data. The timeline-sql-store datasource can be configured using JDBC or JNDI.
Using JDBC datasource: this can be configured in the
application-externaldatasources.properties
file. When configuring external datasources, theexternaldatasources
Example application-externaldatasources.propertiesblueriq.datasource.timeline-sql-store.url=jdbc:sqlserver://<database_url>:<port>;databaseName=bq_timeline;instance=SQL_EXPRESS blueriq.datasource.timeline-sql-store.username=<username> blueriq.datasource.timeline-sql-store.password=<password> blueriq.datasource.timeline-sql-store.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver blueriq.hibernate.timeline-sql-store.hbm2ddl.auto=validate blueriq.hibernate.timeline-sql-store.dialect=org.hibernate.dialect.SQLServer2012Dialect
Using JNDI datasource: this can be configured in the
application-jndidatasources.properties
file When configuring JNDI datasources thejndidatasources
profile should be enabled.Example application-jndidatasources.propertiesblueriq.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
- Hibernate settings
These settings are done for each datasource type in the corresponding properties file, as in the examples above.
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:
- none
- validate
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 Componentto publish timeline events to a queue and then consume them using this component.
To be able to consume event messages, the event channel needs to be configured in the application.properties
. This file can be found, or otherwise should be placed in the spring.config.additional-location
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.
# RabbitMQ configuration blueriq.timeline.event.listener.amqp.version=2.0 # Enable consumer functionality blueriq.timeline.event.listener.amqp.enabled=true |
Enable TLS connection
To enable a secure (TLS) AMQP connection to the queue, set the property "blueriq.timeline.event.listener.amqp.rabbitmq.ssl
.enabled
" to "true
".
The default for AQMP port with TLS on RabbitMQ is '5671', it needs to be explicitly enabled though, see https://www.rabbitmq.com/ssl.html for more information.
Performance
The performance impact of the Timeline SQL Store is minimal when used normally: to write timeline messages to the database and retrieve these messages for one given Case ID.