TL;DR
# Before
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop;MVCC=TRUE
# After : MVCC=TRUE 제거
url: jdbc:h2:tcp://localhost/~/jpashop
김영한 강사님의 "실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발"이라는 강의를 보다가 다음과 같은 에러를 발견하였다.
org.h2.jdbc.JdbcSQLNonTransientConnectionException:
Unsupported connection setting "MVCC"
시키는대로 했는데 '당췌 이게 무슨일인가'했는데... 나와 비슷한 이슈를 겪은 사람들이 많은 것을 확인했다.
(해결완료) Unsupported connection setting "MVCC" 에러나오시는분 참고하세요 - 인프런 | 질문 & 답변
전에 1번 완강했었는데다시 반복 강의 들을때 문제생겨서 올립니다. 3시반30분의 삽질끝에..결국 찾아낸 ㅠㅠ저같은 분이 없으시길.. [사진] 이러한 에러가 나오실거에요.. [ 사진 크게 보시려면
www.inflearn.com
데이터베이스인 H2가 1.4.200 버전으로 업데이트하고 난 뒤 MVCC 옵션이 사라진 것이다. MVCC는 다중 버전 동시성 제어(Multi-Version Concurrency Control)라는 것인데 동시에 실행되는 트랜잭션을 최대화하면서도, 데이터 무결성이 유지되도록 하기 위함이다. 트랜잭션이 발생했을 때 버전을 생성해서 변경된 데이터를 반영한다. 장점도 있지만 버전 충돌의 리스크도 가지고 있다. (자세한 내용을 알고 싶은 분들은 아래 블로그 추천)
[ H2 ] Unsupported connection setting "MVCC"
H2 커넥션 도중 에러가 났다 Error 내용 com.example.demo.MemberRepositoryTest > testMember() FAILED org.springframework.dao.InvalidDataAccessApiUsageException at MemberRepositoryTest.java:23 Caused by..
gogo-jjm.tistory.com
그러면 H2는 MVCC의 대안으로 무엇을 사용할 것인가 찾아보니 MVStore라는 것을 쓰는 것으로 보인다. 개선된 버전관리가 가능한 것으로 보인다.
MVStore
MVStore Overview Example Code Store Builder R-Tree Features - Maps - Versions - Transactions - In-Memory Performance and Usage - Pluggable Data Types - BLOB Support - R-Tree and Pluggable Map Implementations - Concurrent Operations and Caching - Log Str
www.h2database.com
참고자료
- http://h2-database.66688.n3.nabble.com/MVCC-problem-with-in-memory-H2-in-1-4-200-td4035993.html
- https://stackoverflow.com/questions/60373580/default-business-application-not-working-because-of-h2-db-error
- https://stackoverflow.com/questions/65208440/what-does-mv-store-false-mean-when-connecting-to-h2-database
- https://github.com/h2database/h2database/issues/1204
'Spring' 카테고리의 다른 글
스프링 게이트웨이에서 dev, prod 등 여러 환경 적용하기 (0) | 2021.10.07 |
---|---|
oauth 세팅 중 yml과 properties가 이해되지 않을 때, 스프링 시큐리티와 프로바이더 (0) | 2021.09.28 |
Postman에서 Mock Server과 API 만들고 테스트하기 (하) (0) | 2021.06.23 |
Postman에서 Mock Server과 API 만들고 테스트하기 (상) (2) | 2021.06.23 |
아파치 POI, 스프링에서 엑셀 만들기 (0) | 2021.06.18 |
Comment