파비의 매일매일 공부기록

iBatis - DB Connection Hang이 자꾸 발생해요(defaultStatementTimeout 설정) 본문

Trouble Shooting/From workplace

iBatis - DB Connection Hang이 자꾸 발생해요(defaultStatementTimeout 설정)

fabichoi 2021. 1. 13. 23:30

Oracle DB로 Migration 하기 이전에는 발생하지 않았던 문제들이 자꾸 발생한다.

이번에는 Query속도가 너무 오래 걸려서(about 300 sec이상)

Thread Pool이 꽉 차거나 Server가 죽어버리는 등의 문제들이 간간히 있어서

어떻게 하면 해결할 수 있을까 하고 찾아봤다.

 

기존에 UI 쪽 Ajax Call에만 Timeout이 걸려있었기에

Transaction 자체가 길어지는 경우에는 딱히 방법이 없었다.

 

그러던 중 iBatis 설정 중에 defaultStatementTimeout를 활용하면

timeout 시간이 지나면 connection을 close 해줄 수 있다는 걸 찾아서 적용했다.

 

아래와 같이 설정하면 된다.

<sqlMapConfig>

<settings defaultStatementTimeout="60" />

</sqlMapConfig>

테스트해보니 정상 동작해서 운영서버에도 적용하였다.

물론 오늘 조치한 건 임시방편이고 오래 걸리는 Query를 Tuning이 필요하다.

반응형
Comments