Hi there,
We are using Camunda 7.12.0, Spring Boot 2.2.6 and camunda-bpm-spring-boot-starter 3.4.2.
As database we’re using Oracle 12.1.0.2.0.
We are using the Camunda Spring intgeration for our microservices. Each Microservice has therefore a embedded Camunda Engine running, but the Engines are using the same database.
Most of the Microservices have their own Database so two datasources are configured:
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix = "datasource.offerapplication")
public DataSource offerApplicationDataSource() {
return create().build();
}
@Bean(name = "camundaBpmDataSource")
@ConfigurationProperties(prefix = "datasource.camunda")
public DataSource camundaDataSource() {
return create().build();
}
}
using following configuration file:
datasource:
offerapplication:
driverClassName: oracle.jdbc.OracleDriver
platform: oracle
jdbcUrl: jdbc:oracle:thin:@{databaseserver}
username: {username}
password: *******************
camunda:
driverClassName: oracle.jdbc.OracleDriver
platform: oracle
jdbcUrl: jdbc:oracle:thin:@{databaseserver}
username: {username}
password: *******************
According to the documentation https://docs.camunda.org/manual/7.13/user-guide/spring-boot-integration/configuration/#defaultdatasourceconfiguration it is required to configure a transactionManager for the Camunda datasource to avoid running in the auto-commit mode, so we changed the DataSourceConfiguration to following:
@Bean
@Primary
@ConfigurationProperties(prefix = "datasource.offerapplication")
public DataSource offerApplicationDataSource() {
return create().build();
}
@Bean(name = "camundaBpmDataSource")
@ConfigurationProperties(prefix = "datasource.camunda")
public DataSource camundaDataSource() {
return create().build();
}
@Bean
@Primary
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager();
}
@Bean
public PlatformTransactionManager camundaTransactionManager(@Qualifier("camundaBpmDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
But Camunda is still running in the auto-commit mode. We also tried to disable the auto-commit mode directly on the datasource, but this has also no effect.
Can someone please help us with this issue?
Thank you very much for your help