2017-10-03 2 views
0

두 개의 데이터베이스가있는 응용 프로그램이 있습니다.외부 jpa 연결 - 스프링 부트

Mongo의 주된 하나이며 Postgres 중 하나에 연결됩니다.

외부 서버에있는 포스트 그레스의 연결 (Mongo는 동일한 컴퓨터에 있음).

필자가 Postgres의 데이터베이스에 제대로 연결하면 배포하지만, 문제가 발생하면 약간의 시간이 지나면 연결이 끊어지며 더 이상 복구되지 않습니다.

연결을 닫지 않으려면 어떤 매개 변수를 사용해야합니까?

spring: 
devtools: 
    restart: 
     enabled: false 
    livereload: 
     enabled: false 
data: 
    mongodb: 
     uri: mongodb://xxxxx:27017 
     database: xxx 
datasources:  
    elser: 
     driver-class-name: org.postgresql.Driver 
     url: jdbc:postgresql://222.21.224.337:5432/xxx 
     username: username 
     password: password 
mail: 
    host: localhost 
    port: 25 
    username: 
    password: 
thymeleaf: 
    cache: true 
jpa: 
    show-sql: true 
    database-platform: io.github.jhipster.domain.util.FixedPostgreSQL82Dialect 
    database: POSTGRESQL 
    properties: 
     hibernate.id.new_generator_mappings: true 
     hibernate.cache.use_second_level_cache: false 
     hibernate.cache.use_query_cache: false 
     hibernate.generate_statistics: true 
     hibernate.dialect: org.hibernate.dialect.PostgreSQL82Dialect 
+1

스프링 부트는 비 메모리 데이터베이스를 감지하면 연결 풀을 사용하려고 시도합니다. 기본 풀 [여기에 설명 된대로] (https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-database))는 Tomcat에서 제공 한 것입니다. 따라서 자신의 연결 풀을 제공하지 않는 한'spring.datasource.tomcat.test-on-borrow = true'를 설정하면 Tomcat이 코드를 넘겨주기 전에 연결을 테스트하게되고 만약 연결이 유효하지 않다면 그것을 대체하십시오. 그러나 대부분의 풀은 오류를 올바르게 복구하지 못하는 것으로 유명합니다. – manish

답변

0

manish : 이렇게 될까요?

data: 
    mongodb: 
     uri: mongodb://srv-xxx:27017 
     database: xxx 
datasources:  
    elser: 
     driver-class-name: org.postgresql.Driver 
     url: jdbc:postgresql://185.25.114.57:5432/XXX 
     username: XXXX 
     password: XXXX 
    tomcat: 
     test-on-borrow:true 
관련 문제