.NET/C#
아주 큰~~~ 삽질
tornado
2006. 7. 25. 19:46
현재 ASP.NET 2.0 으로 개발하고 있는데, 데이터베이스 관련해서 프레임워크를
하나 만들어서 사용한다.
COM+ 사용 안하고 멀티 트랜잭션 가능하고, 테이블과 객체 매핑 되고, Stored Procedure 에
최적화 시켜놨당.
그런데, 웹페이지 띠우고 새로고침 몇십번 하면 tcp resource 부족으로 먹통이 된다. ㅎㅎ
왜 그러나~ 하고 코드 자세히 뜯어보니...
private ArrayList dbts = new ArrayList();
public void CreateTransaction(bool isTransaction)
{
DBTransaction dbt = new DBTransaction(true);
dbts.add(dbt);
}
public void ReleaseTransaction()
{
foreach(DBTransaction dbt in dbts){
dbts.Clone();
}
}
대충 이런 코드가 있는데... 빨간색 부분.... 허걱..
Close() 해야 하는데, Clone() 이당...
Visual Studio 에 코드 자동완성 뜨는거에 대충 엔터쳐서 작성해 놨더니
저렇게 되었음.
즉 트랜잭션 열어놓구, 종료두 안하고 ArrayList 를 계속 복사한 상황이다.
빨리 알아냈으니 다행이지 큰일날뻔했네 ㅎ