프로그래밍/자바
iBatis 삽질의 추억
panpro
2011. 5. 27. 21:14
아. 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()도 해 주자.