2016-12-06 1 views
1

My Spring Boot 애플리케이션은 두 개의 다른 데이터베이스에 연결해야합니다. 첫 번째 데이터베이스 (주)는 localhost 응용 프로그램과 동일한 서버에 설치되고 다른 데이터베이스 (보조)는 원격 서버에 설치되며 유지 관리, 백업, 테스트 등을 위해 항상 사용할 수있는 것은 아닙니다.스프링 부트와 하이버 네이트 : 데이터베이스에 연결할 수없는 경우에도 애플리케이션을 시작하십시오.

다음 구성 (application.properties)을 사용합니다.

# main connection 
spring.datasource.driverClassName=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://localhost/?autoReconnect=true&verifyServerCertificate=false&useSSL=false&requireSSL=false 
spring.datasource.username=emater 
spring.datasource.password=emater 

# Keep the connection alive if idle for a long time (needed in production) 
spring.datasource.testWhileIdle = true 
spring.datasource.validationQuery = SELECT 1 

# secondary connection 
planejamento.datasource.driverClassName=com.mysql.jdbc.Driver 
planejamento.datasource.url=jdbc:mysql://10.22.1.4/?verifyServerCertificate=false&useSSL=false&requireSSL=false 
planejamento.datasource.username=emater 
planejamento.datasource.password=emater 
planejamento.datasource.testWhileIdle = false 

#config hibernate 
spring.jpa.hibernate.ddl-auto=none 
spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQLSpatial56Dialect 
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext 
spring.jpa.show-sql=true 
spring.jpa.format-sql=true 
spring.jpa.use-sql-comments=true 
spring.jpa.hibernate.enable_lazy_load_no_trans=true 

응용 프로그램을 초기화 할 때 최대 절전 모드는 두 데이터베이스에 모두 연결을 시도합니다. 두 번째 데이터베이스를 사용할 수없는 경우 예외가 throw되고 응용 프로그램 초기화가 중단됩니다.

응용 프로그램을 시작할 때 응용 프로그램이 중단되지 않도록 사용할 수있는 속성이 있습니까?

어떻게해야합니까?

+0

기본 메소드에서 Exception을 잡아낼 수 있습니다. –

+0

이 링크는 도움이 될 수 있습니다. https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/exception/JDBCConnectionException.html –

+0

예가 있습니까? 내 응용 프로그램의 기본 메서드에서 '시도/catch'될 것이라고? 어떻게 될까요? –

답변

1

최대 절전 모드는 SessionFactory이 DB Connection에서 DatabaseMetaData을 추출 할 수있을 때 DB에 연결해야합니다. 식별자를

  • 자격을하는 방법
    • 현재의 카탈로그와 스키마를 DB는
    • 을 임시 테이블을 지원하는 경우 DDL은 트랜잭션이 커밋 발생하는 경우 다음 DatabaseMetaData

      , 그것은 알 필요가

    • 드라이버가 스크롤 할 수있는 경우 ResultSet
    • 드라이브 드라이버 반환 IDENTITY 열에 대한 키를 생성하는 경우 r은 일괄 업데이트를
    • 을 지원

    SessionFactory가 초기화 될 때이 정보가 해결 될 때 당신은 관련 데이터베이스가 같은 기한 때, 게으르게 새로운 MicroService을 시작하는 것이 더 낫다 있도록 잘.

  • 관련 문제