아. iBatis.
오늘 transaction을 명시적으로 적용한 (SqlMapClient.startTransaction() ) 함수를 하나 맹글었는데, 사실 그동안 iBatis에서 transaction을 쓸 일이 별로 없었다규.
이거이 쓰고 나면 딱 커넥션풀 갯수만큼만 잘 되고 그 다음부터는 커넥션풀을 얻어오지 못했다는 타임아웃 에러가 나고 먹통이 되어버린다.
밥먹고 와서 삽질한 결과, 드뎌 알아냈다. iBatis에서 startTransaction을 했거든 commitTransaction만 하지 말고 꼭 endTransaction도 하라는 것.
이런 형태면 된다.
try
{
SqlMapClient.startTransaction();
.....
SqlMapClient.commitTransaction();
}
catch (SQLException ex)
{
.....
}
finally
{
SqlMapClient.endTransaction();
}
이거였다. commitTransaction() 만 하면 Connection pool에 반납하지 않고 그냥 죽어버린다. 디져쓰.
꼭 endTransaction()도 해 주자.
'프로그래밍 > 자바' 카테고리의 다른 글
[자바] 복잡한 난수 쉽게 만드는 법 (0) | 2014.11.21 |
---|---|
iBatis에서 iterate 쓰기 : 여러개의 or이나 in 안에 여러 개의 데이터 넣기 (2) | 2010.07.21 |
maven2에서 ibatis를 dependency 거는 법 - pom.xml에서 (0) | 2009.08.13 |
maven2에는 컴파일할 소스 디렉토리의 위치가 default로 정해져 있었다! (0) | 2009.08.12 |
maven2에서 java.nio.BufferOverflowException 에러 발생시 - 소스코드 인코딩,encoding과 OS가 다를 때 처리 (2) | 2009.07.15 |