# Cockpit для нескольких камунд

**URL:** <https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107>\
**Category:** РАЗНОЕ\
**Created:** [28.Сентябрь.2021 14:34:41 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107 "2021-09-28T14:34:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dmitry.Raz](https://forum.reunico.com/user_avatar/forum.reunico.com/dmitry.raz/32/21_2.png) [@Dmitry.Raz](https://forum.reunico.com/u/Dmitry.Raz)\
**Post date:** [28.Сентябрь.2021 14:34:41 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107/1 "2021-09-28T14:34:41Z")

</div>

коллеги, есть вопрос!

Каким образом можно подключить cockpit для нескольких экземпляров системы, использующих разные базы? Используем движок встроенный в spring boot приложение.

---

<div class="post-metadata">

**Author:** ![Mstislav](https://forum.reunico.com/user_avatar/forum.reunico.com/mstislav/32/102_2.png) [@Mstislav](https://forum.reunico.com/u/Mstislav)\
**Post date:** [28.Сентябрь.2021 14:43:44 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107/2 "2021-09-28T14:43:44Z")

</div>

Что имеется ввиду под “несколькими камундами”?  
Это?  
[https://docs.camunda.org/manual/7.15/webapps/cockpit/dashboard/#multi-engine](https://docs.camunda.org/manual/7.15/webapps/cockpit/dashboard/#multi-engine)

---

<div class="post-metadata">

**Author:** ![Dmitry.Raz](https://forum.reunico.com/user_avatar/forum.reunico.com/dmitry.raz/32/21_2.png) [@Dmitry.Raz](https://forum.reunico.com/u/Dmitry.Raz)\
**Post date:** [28.Сентябрь.2021 18:14:39 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107/3 "2021-09-28T18:14:39Z")

</div>

Все верно)  
интересует пример настроенного подключения Cockpit к нескольким базам Camunda.

Начали с настроек приведенных в документации и сразу проблемы если хотим подключить несоклько баз:

😬 😬 😬 😬

> spring:  
> datasource:  
> url: jdbc:postgresql://localhost:5432/camunda\_primary  
> username: postgres  
> password:  
> second-datasource:  
> url: jdbc:postgresql://localhost:5432/camunda\_second  
> username: postgres  
> password:
> 
> third-datasource:  
> url: jdbc:postgresql://localhost:5432/camunda\_third  
> username: postgres  
> password:

> Caused by: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.  
> at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:1004) ~[HikariCP-3.4.5.jar:na]  
> at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:109) ~[HikariCP-3.4.5.jar:na]  
> at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.3.4.jar:5.3.4]  
> at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.3.4.jar:5.3.4]  
> at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:223) ~[spring-jdbc-5.3.4.jar:5.3.4]  
> at com.sun.proxy.$Proxy72.getMetaData(Unknown Source) ~[na:na]

---

<div class="post-metadata">

**Author:** ![Mstislav](https://forum.reunico.com/user_avatar/forum.reunico.com/mstislav/32/102_2.png) [@Mstislav](https://forum.reunico.com/u/Mstislav)\
**Post date:** [29.Сентябрь.2021 06:05:41 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107/4 "2021-09-29T06:05:41Z")

</div>

Добрый день!

Не скажу про Spring Boot и Embedded Engine - не доводилось организовывать на нем multiple engines. В Camunda Standalone на основе Tomcat (как и в других серверах приложений) делается так:

Сконфигурировать дополнительные процессные движки **bpm-platform.xml**

```auto
<process-engine name="secondCamunda">
    <job-acquisition>default</job-acquisition>
    <configuration>org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration</configuration>
    <datasource>java:jdbc/secondCamunda</datasource>

    <properties>
      <property name="history">full</property>
      <property name="databaseSchemaUpdate">true</property>
      <property name="authorizationEnabled">true</property>
      <property name="jobExecutorDeploymentAware">true</property>
      <property name="historyCleanupBatchWindowStartTime">00:01</property>
    </properties>

  </process-engine>
  <process-engine name="thirdCamunda">
    <job-acquisition>default</job-acquisition>
    <configuration>org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration</configuration>
    <datasource>java:jdbc/thirdCamunda</datasource>

    <properties>
      <property name="history">full</property>
      <property name="databaseSchemaUpdate">true</property>
      <property name="authorizationEnabled">true</property>
      <property name="jobExecutorDeploymentAware">true</property>
      <property name="historyCleanupBatchWindowStartTime">00:01</property>
    </properties>

```

Настроить подключения к базам в **server.xml** :

```auto
<Resource name="jdbc/secondCamunda"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              uniqueResourceName="secondCamunda"
              driverClassName="org.postgresql.Driver"
              url="jdbc:postgresql://localhost:5432/bff_underwriting"
              defaultTransactionIsolation="READ_COMMITTED"
              username="postgres"
              password=""
              maxTotal="20"
              minIdle="5"
              maxIdle="20" />

    <Resource name="jdbc/thirdCamunda"
              auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              uniqueResourceName="secondCamunda"
              driverClassName="org.postgresql.Driver"
              url="jdbc:postgresql://localhost:5432/bff_scoring"
              defaultTransactionIsolation="READ_COMMITTED"
              username="postgres"
              password=""
              maxTotal="20"
              minIdle="5"
              maxIdle="20" />

```

В итоге в веб-приложениях появляется возможность переключения между процессными движками:

![image](https://forum.reunico.com/images/transparent.png)

Должен сказать, что это не очень удобно.  
Есть более адекватные альтернативы:

- Разработать собственное решение, которое будет использовать REST/Java API Camunda для подключения к инстансам Camunda
- Попробовать Camunda Optimize

---

<div class="post-metadata">

**Author:** ![Dmitry.Raz](https://forum.reunico.com/user_avatar/forum.reunico.com/dmitry.raz/32/21_2.png) [@Dmitry.Raz](https://forum.reunico.com/u/Dmitry.Raz)\
**Post date:** [01.Октябрь.2021 06:07:46 UTC](https://forum.reunico.com/t/cockpit-dlya-neskolkih-kamund/107/5 "2021-10-01T06:07:46Z")

</div>

Вобщем, ошибка с подключением нескольких датасорцов решилась указанием правильных проперти (jdbc-url, вместо url):

> spring:  
> datasource:  
> jdbc-url: jdbc:postgresql://localhost:5432/camunda\_primary  
> username: postgres  
> password:  
> driver-class-name: org.postgresql.Driver  
> second-datasource:  
> jdbc-url: jdbc:postgresql://localhost:5432/camunda\_second  
> username: postgres  
> password:
> 
> third-datasource:  
> jdbc-url: jdbc:postgresql://localhost:5432/camunda\_third  
> username: postgres  
> password:

> @Configuration  
> public class DataSourceConfig {  
> @Bean  
> @Primary  
> @ConfigurationProperties(prefix=“spring.datasource”)  
> public DataSource primaryDataSource() {  
> return DataSourceBuilder.create().build();  
> }
> 
> ```
> @Bean(name="secondDataSource")
> @ConfigurationProperties(prefix="spring.second-datasource")
> public DataSource secondDataSource() {
> return DataSourceBuilder.create().build();
> }
> 
> @Bean(name="thirdDataSource")
> @ConfigurationProperties(prefix="spring.third-datasource")
> public DataSource thirdDataSource() {
> return DataSourceBuilder.create().build();
> }
> 
> ```
> 
> }

@Mstislav использовать сервер приложений для нас не вариант. Будем искать возможность использовать spring boot.
