Hello Camunda community,
I’m relatively new to Camunda and I have troubles creating a usable Oracle connexion in my Camunda Spring Boot development :
Oracle version : 12.1
Oracle driver successfully installed with Maven : ojdbc7-12.1.0.1.jar
Our connexions Oracle are done via ldap : jdbc:oracle:thin:@ldap://ldap-tns1:4035/cn=OracleContext,dc=oracle,dc=chuv/camunda_db_dev
This ldap connexion works well for others applications.
The Oracle schema is up and running well.
The error is as follows :
java.sql.SQLException: L’URL Oracle indiquée n’est pas valide
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:309) ~[ojdbc7-12.1.0.1.jar:12.1.0.1.0]
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:230) ~[ojdbc7-12.1.0.1.jar:12.1.0.1.0]
We use the yaml file to create the sping.datasource : here is the oracle connexion part (i removed the camunda engine db hikari/h2 part) :
spring:
profiles:
active: "dev"
main:
banner-mode: "off"
spring.datasource:
oracle:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@ldap://ldap-tns1:4035/cn=OracleContext,dc=oracle,dc=chuv/camunda_db_dev
username: camunda_app
password: XXXXXXXXXX
test-on-borrow: true
validation-query: SELECT 1 FROM dual
max-active: 5
spring.jpa:
database: Oracle
database-platform: org.hibernate.dialect.Oracle10gDialect
I also have a DataSourceConfiguration class as follows : (i removed the camunda engine db hikari/h2 part) :
@Configuration
@EnableConfigurationProperties({
EngineDataSourceProperties.class,
OracleDataSourceProperties.class
})
public class DataSourceConfiguration {
/**
* Datasource engine properties.
*/
@Autowired
private EngineDataSourceProperties engineDataSourceProperties;
@Autowired
private OracleDataSourceProperties oracleDataSourceProperties;
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public DataSourceProperties businessDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("spring.datasource.camunda.db")
public OracleDataSource businessDataSource() {
return businessDataSourceProperties().initializeDataSourceBuilder().type(OracleDataSource.class)
.build();
}
And finally the OracleDataSourceProperties class :
@ConfigurationProperties(prefix = "spring.datasource.oracle") //oracle.datasource
public class OracleDataSourceProperties extends DataSourceProperties {
@JsonProperty("driver-class-name")
private String driverClassName;
@JsonProperty("sql-script-encoding")
private Charset sqlScriptEncoding;
public OracleDataSourceProperties() {
super();
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("OracleDataSourceProperties{");
sb.append("driverClassName='").append(driverClassName);
sb.append(", url=").append(this.getUrl());
sb.append(", username=").append(this.getUsername());
sb.append(", password=").append(this.getPassword());
sb.append(", sqlScriptEncoding=").append(sqlScriptEncoding);
sb.append("}");
return sb.toString();
}
// Getters ///////////////////////////////////////////////////////////////////////////////
@Override
public String getDriverClassName() {
return driverClassName;
}
@Override
public Charset getSqlScriptEncoding() {
return sqlScriptEncoding;
}
// Setters ///////////////////////////////////////////////////////////////////////////////
@Override
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
@Override
public void setSqlScriptEncoding(Charset sqlScriptEncoding) {
this.sqlScriptEncoding = sqlScriptEncoding;
}
Any suggestions ?
Thanks for the help
Fred