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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

Since Blueriq 14.6, the Timeline DAO, which used to be included in the Trace SQL Store Component, has been split to a separate component. See Timeline SQL Store component for details.



Table of contents 

Description

This Trace SQL Store Component contains a Trace DAO implementation that can be used by the trace engine to store trace messages in a database.

The configuration options are found below in this document.

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 trace-sql-store-without-timeline (Blueriq 14.6 and onwards) profile must be active. More information on how to configure the application using Spring Profiles can be found here: Component configuration with Spring Profiles.

The latter profile will only write trace message to the database and not timeline messages. See Timeline SQL Store component for writing timeline messages to a separate database.

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

The trace can be used in different settings, to configure how the trace will behave, and how the timeline will behave. In the table below, different combinations of bootstrap.properties are explained:

Active bootstrap profilesEffect
trace-sql-store
Both timeline and trace will be stored in the external datasource configured as "trace-sql-store"
timeline-sql-store
Timeline is stored in external datasource "timeline-sql-store", trace is ignored
trace-sql-store-without-timeline, timeline-sql-store
Timeline is stored in external datasource "timeline-sql-store", trace in "trace-sql-store"
timeline-sql-store, trace-event-publisher-amqp
Timeline is stored in external datasource "timeline-sql-store", trace is pushed to the exchange configured at the properties

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 trace-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:

  1. If necessary, create a new datasource. See Configuring JDBC database drivers for information on how to do this.
  2. Trace SQL Store component is using the trace-sql-store datasource to store data. The trace-sql-store datasource can be configured using JDBC or JNDI.
    1. Using JDBC datasource : this can be configured in the  application-externaldatasources.properties file. When configuring external datasources, the externaldatasources profile should be enabled.

      application-externaldatasources.properties
      blueriq.datasource.trace-sql-store.url=jdbc:sqlserver://<database_url>:<port>;databaseName=bq_comments;instance=SQL_EXPRESS
      blueriq.datasource.trace-sql-store.username=<username>
      blueriq.datasource.trace-sql-store.password=<password>
      blueriq.datasource.trace-sql-store.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
      blueriq.hibernate.trace-sql-store.hbm2ddl.auto=validate
      blueriq.hibernate.trace-sql-store.dialect=org.hibernate.dialect.SQLServer2012Dialect
    2. Using JNDI datasource : this can be configured in the  application-jndidatasources.properties file When configuring JNDI datasources the jndidatasources profile should be enabled.

      application-jndidatasources.properties
      blueriq.datasource.trace-sql-store.jndiName=java:/comp/env/jdbc/blueriqTrace
      blueriq.hibernate.trace-sql-store.hbm2ddl.auto=validate
      blueriq.hibernate.trace-sql-store.dialect=org.hibernate.dialect.SQLServer2012Dialect
  3. Configuring the datasource from the Development Dashboard
    Go to Settings Widget → Datasources tab → On the left side menu : select trace-sql-store datasource. The same properties are available for configuration as from the properties file. Make sure the corresponding profile is enabled (externaldatasources or jndidatasources)
  4. 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


Performance

The performance impact of the Trace SQL Store is minimal when used normally: to write trace messages to the database.

It is also possible to use the Trace SQL Store to query the trace engine database, like the timeline container does. The Trace SQL Store offers good performance as long as the result set is limited. For large scale analysis, when summaries or aggregates are desired, the Trace SQL Store is not recommended because it is primarily designed to return a list of trace entries. For these scenarios it is recommended to use SQL (or HQL) to query the database.

  • No labels