[SPRING] 최대 절전 모드와 @ 트랜잭션을위한 스프링 데이터 소스 설정하기
SPRING최대 절전 모드와 @ 트랜잭션을위한 스프링 데이터 소스 설정하기
이 순간에 @Transactional 주석을 사용하여 DriverManagerDataSource를 사용하여 트랜잭션을 관리합니다. 그러나 모든 트랜잭션은 매우 느린 데, 그 이유는 매번 db에 대한 데이터 소스 열기 및 닫기 연결 때문입니다.
트랜잭션 속도를 높이려면 어떤 데이터 소스를 사용해야합니까?
해결법
-
==============================
1.DriverManagerDataSource는 실제로 연결 풀이 아니므로 테스트 용으로 만 사용해야합니다. Apache Commons DBCP에서 BasicDataSource를 시도해야한다. 같은 것 :
DriverManagerDataSource는 실제로 연결 풀이 아니므로 테스트 용으로 만 사용해야합니다. Apache Commons DBCP에서 BasicDataSource를 시도해야한다. 같은 것 :
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean>
-
==============================
2.내 응용 프로그램에서 두 가지 접근 방식을 조합하여 사용하고 있습니다. 첫 번째는 c3p0 연결 풀링이며, chkal과 거의 동일한 솔루션입니다. 두 번째 방법은 Spring을 사용하는 것이다. lazyConnectionDataSourceProxy는 데이터베이스에 접속했을 때만 연결을로드하는 지연로드 프록시를 생성한다. 이것은 매우 유용합니다. 두 번째 레벨 캐시가 있고 캐시 된 데이터와 쿼리 만 읽으면 데이터베이스가 손상되지 않고 연결을 확보 할 필요가 없습니다 (매우 비쌉니다).
내 응용 프로그램에서 두 가지 접근 방식을 조합하여 사용하고 있습니다. 첫 번째는 c3p0 연결 풀링이며, chkal과 거의 동일한 솔루션입니다. 두 번째 방법은 Spring을 사용하는 것이다. lazyConnectionDataSourceProxy는 데이터베이스에 접속했을 때만 연결을로드하는 지연로드 프록시를 생성한다. 이것은 매우 유용합니다. 두 번째 레벨 캐시가 있고 캐시 된 데이터와 쿼리 만 읽으면 데이터베이스가 손상되지 않고 연결을 확보 할 필요가 없습니다 (매우 비쌉니다).
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClassName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- Pool properties --> <property name="minPoolSize" value="5" /> <property name="initialPoolSize" value="10" /> <property name="maxPoolSize" value="50" /> <property name="maxStatements" value="50" /> <property name="idleConnectionTestPeriod" value="120" /> <property name="maxIdleTime" value="1200" /> </bean> <bean name="lazyConnectionDataSourceProxy" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy"> <property name="targetDataSource" ref="dataSource" /> </bean>
from https://stackoverflow.com/questions/4190062/configure-spring-datasource-for-hibernate-and-transactional by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring이 속성 파일에서 삽입 될 때 SpEL 표현식의 모든 문자 / 표현식을 평가할 수 있습니까? (0) | 2019.04.28 |
---|---|
[SPRING] 컬링 경로를 통해 Amazon S3에 업로드 (0) | 2019.04.28 |
[SPRING] Vaadin / Spring 애플리케이션에서 정적 리소스를 제공하는 방법은 무엇입니까? (0) | 2019.04.28 |
[SPRING] Spring 부팅시 CORS를 Spring 보안 레벨에서 사용하는 방법 [닫기] (0) | 2019.04.28 |
[SPRING] Spring MVC에서 HTML을 조건부로 렌더링 (0) | 2019.04.28 |