You are viewing the documentation for Blueriq 13. Documentation for other versions is available in our documentation directory.
Configuration
The customerdata service is required by the Customerdata Client component, so when this component is used the following needs to be configured first.
External config location
For supplying configuration from an external location you need to configure the spring.config.additional-location
for the application. See the Config location section for your application platform on the page Installing Runtime
Create 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)
Use the appropriate scripts to create the tables on your database.
Datasource configuration
For the customerdata service to work, a datasource needs to be configured in application.yml
. This file is placed in the following folder by the installer: <Blueriq installation folder>\Services\customerdata\conf
.
Since Blueriq 10.7 the application.yml(or application.properties) is renamed to blueriq-customerdata-odata-service-v1.yml (or blueriq-customerdata-odata-service-v1.properties)
####################################################################### ## datasource configuration ## ####################################################################### blueriq: customerdata: datasource: customer-data-sql-store: url: <url> username: <username> password: <password> driver-class-name: org.h2.Driver validation-query: SELECT 1 testWhileIdle: true timeBetweenEvictionRunsMillis: 5000 ####################################################################### ## Security configuration ## ## ## ## Here you can override the default username/password ## ####################################################################### spring: security: user: name: <username> password: '{noop}<password>' hibernate: dialect: org.hibernate.dialect.H2Dialect hbm2ddl: auto: validate id: new_generator_mappings: true show_sql: false use_nationalized_character_data: true
We recommend setting a validation query so that when a database connection is lost due to a network failure for instance, it can be recovered once the network is restored. The validation query is database specific, the query below works with SQL Server (and H2), for Oracle use SELECT 1 FROM DUAL
. For more information on configuring datasources, see How to configure BasicDataSource Configuration Parameters.
For additional datasource configuration please see the #DATASOURCE section in the Spring property documentation
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
When using H2, which is not suitable for production environments, the hbm2ddl-auto
setting needs to be set to none
, as validate
does not work for H2. Again, in production environments this setting should always be on validate
.
JNDI
If you would like to use JNDI to configure your datasource, replace the blueriq.customerdata.datasource
section in the application.yml
described above with the following:
Since Blueriq 10.7 the application.yml(or application.properties) is renamed to blueriq-customerdata-odata-service-v1.yml (or blueriq-customerdata-odata-service-v1.properties)
Please note that when Jndi is your preferred resource configuration, the Customerdata Service needs differently named jndi resources for the customer-sql-store on the one hand, and the entity-event-manager on the other hand.
blueriq: customerdata: datasource: customerdata-sql-store: jndi-name: java:jboss/datasources/myCustomerdataSqlStoreJndiName
Database drivers
Depending on the underlying database, a specific driver needs to be installed on the application server as described on Configuring JDBC database drivers.
Case Insensitive searching for oracle
For MSSQL searching through case data is case insensitive by default. The default collation for Oracle is case sensitive and because of that searching in Case Data is case sensitive.
For Oracle we created the possibility to enable case insensitive searching, for more information how to enable it see: How to enable case insensitive search on case data for Oracle
The feature toggle has to be set to true to enable this feature.
Example:
blueriq: customerdata: oracle: case-insensitive-search-enabled: true
Endpoint per aggregate type
Since Blueriq 10.4 it became possible to have different endpoints per aggregate type. In the schematic overview below is shown how having multiple endpoints per aggregate looks like. The application.properties
contains multiple connections per aggregate type, the customerdata properties contain the information to which data store the aggregate should be saved to.
application.properties
The following properties need to be set in the application.properties
of the Blueriq Runtime:
# Mandatory = default connection for every aggregate that does not have a custom connection blueriq.customerdata-client.url=http://localhost:10097/customerdata/api/v1 blueriq.customerdata-client.username=blueriq blueriq.customerdata-client.password=welcome # Optional - Custom connection(s) per aggregate type blueriq.customerdata-client.type.employee.url=http://localhost:20097/customerdata/api/v1 blueriq.customerdata-client.type.employee.username=blueriq blueriq.customerdata-client.type.employee.password=welcome blueriq.customerdata-client.type.departement.url=http://localhost:30097/customerdata/api/v1 blueriq.customerdata-client.type.departement.username=blueriq blueriq.customerdata-client.type.departement.password=welcome
The properties above contain the default settings, which are set by the Installer. If afterwards these settings are customized in the customerdata service they need to be changed in the Runtime as well.