Jak zintegrować aurea-java-engine z

Transkrypt

Jak zintegrować aurea-java-engine z
AureaBPM
Jak zintegrować aurea-java-engine z
zewnętrznymi bazami danych?
Silnik umożliwia integrację z zewnętrznymi bazami danych w ramach pojedynczej
transakcji JTA. Do baz danych można odwoływać się ze skryptów.
Poniżej znajduje się opis konfiguracji takiego połączenia z zewnętrzną bazą danych.
persistence.xml
Należy wyedytować plik persistence.xml, który znajduje się wewnątrz archiwum
aurea-engine-runner.war w lokalizacji WEB-INF/lib/aurea-enginedomain-{version}.jar/META-INF/persistence.xml. W pliku tym należy dodać nową
sekcję konfiguracji Persistence Unit:
<persistence-unit name="${custom.persistence-unit.name}" transactiontype="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/${custom.data-source}</jta-data-source>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.hbm2ddl.auto" value="none" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="${db.dialect}" />
<property name="hibernate.transaction.jta.platform" value="${db.jta.factory}"
/>
</properties>
</persistence-unit>
W powyższej konfiguracji należy zastąpić parametr ${custom.persistenceunit.name} unikalną nazwą, np. custom. Parametr ${custom.data-source} musi
odpowiadać nazwie źródła danych skonfigurowanego na serwerze aplikacji.
Parametry ${db.dialect} i ${db.jta.factory} powinny zostać zastąpione wartościami
odpowiadającymi danemu środowisku.
W pliku może znaleźć się wiele sekcji konfiguracji Persistence Unit'ów. Każdy
powinien być nazwany swoją unikalną nazwą.
Strona 1 / 2
(c) 2017 Piotr Ostrowski <[email protected]> | 2017-03-08 05:32
URL: http://faq.aurea-bpm.com//index.php?action=artikel&cat=2&id=7&artlang=pl
AureaBPM
inject.properties
Plik inject.properties znajduje się w archiwum aurea-engine-runner.war w lokalizacji
WEB-INF/classes/inject.properties. Należy w nim znaleźć i wyedytować poniższy
wpis:
module.database.customPersistenceUnits=${custom.persistence-unit.name}
Parametr ${custom.persistence-unit.name} należy zastąpić taką samą nazwą, jakiej
użyliśmy wcześniej w pliku persistence.xml. Jeśli zostało skonfigurowanych wiele
Persistence Unit, można wymienić po przecinku wiele unikalnych nazw.
web.xml
Plik web.xml znajduje się w archiwum aurea-engine-runner.war w lokalizacji WEBINF/web.xml. Należy w nim dopisać dodatkową sekcję tak jak poniżej:
<resource-ref>
<description>Custom Database</description>
<res-ref-name>jdbc/${custom.data-source}</res-ref-name>
<res-type>javax.sql.XADataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Parametr ${custom.data-source} powinien zostać podmieniony na nazwę źródła
danych skonfigurowanego na serwerze aplikacji (taka sama jak w pliku
persistence.xml). Jeśli zdefiniowaliśmy wiele Persistence Unit, należy dodać
powyższą konfigurację dla każdego z nich.
Poniżej zaprezentowano przykładowy skrypt używający zewnętrznej bazy danych:
import pl.tecna.aurea.engine.script.tx.CustomUnit0;
Object timestamp = ctx.em(CustomUnit0.class).createNativeQuery("VALUES
(CURRENT_TIMESTAMP)").getSingleResult();
System.out.println("Current timestamp: " + timestamp);
W powyższym skrypcie CustomUnit0 oznacza pierwszy Persistence Unit
zdefiniowany w pliku inject.properties. Jeśli zdefiniujemy wiele połączeń z
zewnętrznymi bazami danych, należy użyć kolejno CustomUnit1, CustomUnit2, itd.
Unikalny ID rozwiązania: #1006
Autor: : Karolina Paczuska
Data ostatniej aktualizacji: 2016-01-25 13:03
Strona 2 / 2
(c) 2017 Piotr Ostrowski <[email protected]> | 2017-03-08 05:32
URL: http://faq.aurea-bpm.com//index.php?action=artikel&cat=2&id=7&artlang=pl
Powered by TCPDF (www.tcpdf.org)

Podobne dokumenty