Camunda BPM - zmiana domyślnej bazy H2 na MySQL

Domyślnie Camunda skonfigurowana jest by używać bazy H2. Czym jest baza H2. To lekka, napisana w Java baza która zajmuje (bez danych) tylko około 2MB na dysku. Ale ilość danych które może obsłużyć jest imponująca - maksymalnie 18446744073709551616 rekordów w tabeli. Idealnie nadaje się więc do różnego rodzaju projektów jako "domyślna baza", uruchamiana w produkcjach w wersji demo - uruchamiasz produkt a baza razem z nim. Możesz połączyć się z bazą H2 Camundy wpisując w przeglądarce http://localhost:8080/h2/h2 - użytkownik 'sa' bez hasła (pozostaw domyślne ustawienia w oknie logowania).

Camunda zaleca zmianę bazy danych na inną jeśli oprogramowanie ma być wykorzystywane produkcyjnie. Camunda ma gotowe skrypty by utworzyć strukturę bazy danych dla następujących baz danych: cockroachdb, db2, mariadb, oracle, postgres. Każdy więc odnajdzie się tutaj ze swoją ulubioną bazą danych. My pokażemy jak skonfigurować Camundę do pracy z MySQL.

Instalujemy MySQL

Istnieje wiele sposobów w jaki możesz uruchomić MySQL. Jednym z nich, szczególnie jeśli używasz tej bazy do testów lub w niezbyt obciążonym środowisku jest pobranie całego pakietu narzędzi Xampp [nie wymaga instalacji - wystarczy rozpakować], można też pobrać Wamp [identyczna koncepcja] lub po prostu pobierz bazę ze strony MySQL. Zakładamy jednak że już masz działający serwer MySQL. W takim razie zacznij od utworzenia bazy danych.

Utwórz bazę danych o nazwie 'camunda', użytkownika i nadaj odpowiednie uprawnienia. Dobrze byłoby by nazwa użytkownika nie była zbyt oczywista, np. także 'camunda'.

Konfigurujemy Camundę do pracy z MySQL

Pobierz sterownik [Java] ze strony MySQL i po rozpakowaniu [np. mysql-connector-java-8.0.23.jar] skopiuj go do katalogu 'camunda-bpm-tomcat-X.X.0\server\apache-tomcat-X.X.X\lib'. Otwórz w edytorze, np notepad++ plik 'camunda-bpm-tomcat-X.X.0\server\apache-tomcat-X.X.X\conf\server.xml' i znajdź sekcję:

<Resource name="jdbc/ProcessEngine"
          auth="Container"
          type="javax.sql.DataSource"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          uniqueResourceName="process-engine"
          driverClassName="org.h2.Driver"
          url="jdbc:h2:./camunda-h2-dbs/process-engine;MVCC=TRUE;TRACE_LEVEL_FILE=0;DB_CLOSE_ON_EXIT=FALSE"
          defaultTransactionIsolation="READ_COMMITTED"
          username="sa"  
          password="sa"
          maxTotal="20"
          minIdle="5"
          maxIdle="20" />

Zmień ustawienia na takie jak niżej (oczywiście zmieniająć użytkownika i hasło):

<Resource name="jdbc/ProcessEngine"
          auth="Container"
          type="javax.sql.DataSource"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          uniqueResourceName="process-engine"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://127.0.0.1:3306/camunda"
          defaultTransactionIsolation="READ_COMMITTED"
          username="bpm_user_camunda"  
          password="XCP-Phj12LM+"
          maxTotal="20"
          minIdle="5"
          maxIdle="20" />

Uruchom camundę wybierając odpowieni dla Twojego systemu plik startujący z katalogu 'camunda-bpm-tomcat-X.X.X'. Camunda przy starcie wykona tworzenie struktury bazy danych (utworzy tabele) i wgra niezbędne ustawienia oraz przykładowe taski. Możesz to sprawdzić logując sie do MySQL. Gotowe - Twoja Camunda działa na produkcyjnej wersji bazy danych!