728x90
반응형
dbcp 관련 개선사항을 정리하였습니다. 추후 관련 내용을 다시 봤을 때 기억이 안날 것 같아 기록해놨습니다.
DBCP 개선 내용
- MyBatis 에서 dbcp 를 통해 connection 을 가져올 때마다, connection 관련 initSql 을 실행해야하는 요건이 있었습니다.
- 그런데 connection 을 가져올 때 마다 initSql 를 수행하다 보니 기존에 이미 initSql 를 수행했던 Connection 이 또 다시 initSql 를 수행하니 오버헤드가 발생 됩니다.
- 그렇기에 dbcp 내에서 connection 을 생성할 때, 한 번만 initSql 을 수행하도록 진행할려고 했습니다.
- 하지만 dbcp 내에 connection 을 생성할 때, 해당 로직을 실행할 수 있는 interface 가 없었습니다.
- dbcp 쪽에 해당 이슈를 개선사항으로 제기하고, github 에 PR을 작성하여 dbcp 2.7 버전에 위 사항을 반영했습니다.
관련 issue ticket 및 PR
결론
- DBCP 는 위와 같이 처리했습니다. 그러나 만약 DBCP opensource 자체를 교체한다면 문제가 되는 상황이 발생할 수 있습니다.
- 그러나 사이트 (상당히 보수적인 사이트) 특성상 오픈소스를 교체할 일은 없을 것이라 생각됩니다.
- 위와 별개로 HikariCP 는 어떻게 돼있나 궁금해서 찾아봤습니다.
- HikariCP 에서는 initSql 라는 옵션이 있습니다. initSql 옵션을 통해 처음 Connection 을 만들 때, initSql 을 실행시킬 수 있습니다.
- 그렇기에 HikariCP 로 교체하는건 문제가 없을 것이라 생각했습니다.
'Opensource' 카테고리의 다른 글
mybatis 와 PreparedStatement 정리 (0) | 2022.03.11 |
---|---|
[apache-commons-email] 첨부파일 명에 한글 포함될 경우 깨지는 현상 (0) | 2020.07.11 |
HikariCP 는 Statement Cache 를 사용하지 않는다. (0) | 2020.07.10 |
댓글