Združovanie Oracle Connection s jarou

1. Prehľad

Oracle je jednou z najpopulárnejších databáz vo veľkých produkčných prostrediach. Ako vývojári na jar je teda veľmi bežné, že musíte s týmito databázami pracovať.

V tomto výučbe si povieme, ako môžeme túto integráciu uskutočniť.

2. Databáza

Prvá vec, ktorú potrebujeme, je samozrejme databáza. Ak žiadnu nemáme nainštalovanú, môžeme získať a nainštalovať ktorúkoľvek z databáz dostupných na serveri Oracle Database Software Downloads. Ale v prípade, že nechceme robiť žiadnu inštaláciu, môžeme pre Docker vytvoriť aj ľubovoľný z databázových obrázkov Oracle.

V takom prípade použijeme Oracle Database 12c, vydanie 2 (12.2.0.2) Obrázok dokovacej stanice Standard Edition. To nám následne bráni v tom, aby sme do nášho počítača museli inštalovať nový softvér.

3. Združovanie pripojení

Teraz máme databázu pripravenú na prichádzajúce spojenia. Ďalej sa potom naučíme niekoľko rôznych spôsobov, ako na jar robiť združovanie pripojení.

3.1. HikariCP

Najjednoduchší spôsob združovania spojení s Spring je použitie automatickej konfigurácie. The spring-boot-starter-jdbc závislosť zahŕňa HikariCP ako preferovaný zdroj združovaných údajov. Preto ak nahliadneme do svojho pom.xml uvidíme:

 org.springframework.boot spring-boot-starter-data-jpa 

The spring-boot-starter-data-jpa závislosť zahŕňa spring-boot-starter-jdbc závislosť prechodne pre nás.

Teraz už len musíme pridať našu konfiguráciu do application.properties spis:

# Nastavenia pripojenia OracleDB spring.datasource.url = jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1 spring.datasource.username = books spring.datasource.password = books spring.datasource.driver-class-name = oracle. jdbc.OracleDriver # Nastavenia HikariCP spring.datasource.hikari.minimumIdle = 5 spring.datasource.hikari.maximumPoolSize = 20 spring.datasource.hikari.idleTimeout = 30000 spring.datasource.hikari.maxLifetime = 2000000 spring.datasource.hikari.connection 30000 spring.datasource.hikari.poolName = HikariPoolBooks # nastavenie JPA spring.jpa.database-platform = org.hibernate.dialect.Oracle12cDialect spring.jpa.hibernate.use-new-id-generator-mappings = false spring.jpa.hibernate .ddl-auto = vytvoriť

Ako vidíte, máme tri rôzne nastavenia konfigurácie sekcií:

  • The Nastavenia pripojenia OracleDB v tejto časti sme nakonfigurovali vlastnosti pripojenia JDBC ako vždy
  • The Nastavenia HikariCP v tejto časti konfigurujeme združovanie pripojení HikariCP. V prípade, že potrebujeme pokročilú konfiguráciu, mali by sme skontrolovať zoznam konfiguračných vlastností HikariCP
  • The Nastavenia JPA Táto časť obsahuje základné konfigurácie pre používanie režimu dlhodobého spánku

To je všetko, čo potrebujeme. Nemôže to byť jednoduchšie, však?

3.2. Tomcat and Commons DBCP2 Connection Pooling

Spring odporúča HikariCP pre svoj výkon. Na druhej strane podporuje aj Tomcat a Commons DBCP2 v automaticky konfigurovaných aplikáciách Spring Boot.

Pokúša sa použiť HikariCP. Ak nie je k dispozícii, pokúsi sa použiť združenie Tomcat. Ak ani jeden z nich nie je k dispozícii, pokúsi sa použiť program Commons DBCP2.

Môžeme tiež určiť oblasť pripojenia, ktorá sa má použiť. V takom prípade stačí do našej pridať novú vlastnosť application.properties spis:

spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource

Ak potrebujeme nakonfigurovať konkrétne nastavenia, máme k dispozícii ich predvoľby:

  • spring.datasource.hikari. * pre konfiguráciu HikariCP
  • spring.datasource.tomcat. * pre konfiguráciu združovania Tomcat
  • spring.datasource.dbcp2. * pre konfiguráciu Commons DBC2

A vlastne môžeme nastaviť jar.datasource.type akémukoľvek inému Dátový zdroj implementácia. Nie je nutné, aby to bol niekto z troch spomenutých vyššie.

Ale v takom prípade budeme mať iba základnú out-of-the-box konfiguráciu. Bude veľa prípadov, keď budeme potrebovať nejaké pokročilé konfigurácie. Pozrime sa na niektoré z nich.

3.3. Združovanie Oracle Universal Connection

Ak chceme použiť pokročilé konfigurácie, musíme explicitne definovať Dátový zdroj fazuľa a nastaviť vlastnosti. Pravdepodobne najjednoduchší spôsob, ako to dosiahnuť, je použitie @ Konfigurácia a @Bean anotácie.

Oracle Universal Connection Pool (UCP) pre JDBC poskytuje plnohodnotnú implementáciu pre ukladanie do pamäte JDBC pripojení. Namiesto vytvárania nových spojení znova používa. Poskytuje nám tiež súbor vlastností na prispôsobenie správania bazénu.

Ak chceme použiť UCP, musíme pridať nasledujúce závislosti Maven:

 com.oracle.database.jdbc ojdbc8 com.oracle.database.ha ons com.oracle.database.jdbc ucp 

Teraz sme pripravení deklarovať a nakonfigurovať fond pripojení UCP:

@Configuration @Profile ("oracle-ucp") verejná trieda OracleUCPConfiguration {@Bean public DataSource dataSource () hodí SQLException {PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource (); dataSource.setUser ("knihy"); dataSource.setPassword ("knihy"); dataSource.setConnectionFactoryClassName ("oracle.jdbc.pool.OracleDataSource"); dataSource.setURL ("jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1"); dataSource.setFastConnectionFailoverEnabled (true); dataSource.setInitialPoolSize (5); dataSource.setMinPoolSize (5); dataSource.setMaxPoolSize (10); vrátiť dátový zdroj; }}

Vo vyššie uvedenom príklade sme prispôsobili niektoré vlastnosti fondu:

  • setInitialPoolSize Určuje počet dostupných pripojení vytvorených po iniciovaní oblasti
  • setMinPoolSize určuje minimálny počet dostupných a požičaných pripojení, ktoré náš fond udržiava, a
  • setMaxPoolSize určuje maximálny počet dostupných a požičaných pripojení, ktoré náš fond udržiava

Ak potrebujeme pridať ďalšie konfiguračné vlastnosti, mali by sme skontrolovať PoolDataSource JavaDoc alebo príručka pre vývojárov.

4. Staršie verzie Oracle

Pre verzie staršie ako 11.2, napríklad Oracle 9i alebo 10g, mali by sme vytvoriť OracleDataSource namiesto použitia Oracle Universal Connection Pooling.

V našom OracleDataSource inštanciu napríklad zapneme do pamäte cache pripojenia setConnectionCachingEnabled:

@Configuration @Profile („Oracle“) verejná trieda OracleConfiguration {@Bean public DataSource dataSource () hodí SQLException {OracleDataSource dataSource = new OracleDataSource (); dataSource.setUser ("knihy"); dataSource.setPassword ("knihy"); dataSource.setURL ("jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1"); dataSource.setFastConnectionFailoverEnabled (true); dataSource.setImplicitCachingEnabled (true); dataSource.setConnectionCachingEnabled (true); vrátiť dátový zdroj; }}

V uvedenom príklade sme vytvárali OracleDataSource pre združovanie pripojení a nakonfiguroval niektoré parametre. Môžeme skontrolovať všetky konfigurovateľné parametre na serveri OracleDataSource JavaDoc.

5. Záver

V dnešnej dobe je konfigurácia združovania databázových pripojení k databáze Oracle pomocou pružiny hračkou.

Už sme videli, ako to urobiť iba pomocou automatickej konfigurácie a programovo. Aj keď Spring odporúča používať HikariCP, sú k dispozícii ďalšie možnosti. Mali by sme byť opatrní a zvoliť správnu implementáciu pre naše súčasné potreby.

Celý príklad nájdete ako vždy na GitHube.


$config[zx-auto] not found$config[zx-overlay] not found