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)