프로그래밍/자바

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()도 해 주자.