Re: [질문] db connection

782 views
Skip to first unread message

이상혁

unread,
Sep 8, 2012, 2:17:03 AM9/8/12
to nett...@googlegroups.com
ThreadLocal을 써서 Thread별로 DB Connection을 만들어서 사용하면 되지 않을까요?

2012년 8월 14일 화요일 오후 12시 12분 36초 UTC+9, silver 개발자 님의 말:
안녕하세요? netty를 잘 활용하고 있는 실버 개발자입니다.

netty의 각 worker thread별로 db connection을 할당해서 사용하고 싶은데,
마땅한 방법이 떠오르질 않네요.. 각 connection별로 할당하기에는 db connection수도 너무 많고 그래서요..

어떤 방법이 있을까요?

미리 감사드립니다. (꾸~벅)

elliott

unread,
Sep 10, 2012, 8:36:18 PM9/10/12
to nett...@googlegroups.com
꼭 DB connection을 쓰레드별로 할당 해야 하는지요?.. 그렇게 되면 커넥션도 리소스를 많이 먹기 대문에 그닥 좋은거 같진 않은데요...

그걸 피할 방법을 먼저 고민해보는건 어떨까요???

이광운

unread,
Sep 10, 2012, 8:47:14 PM9/10/12
to nett...@googlegroups.com
음...질문하신 분이 어떤 서비스 상황인지는 감이 안오지만 connection별로 Db Connection을 얻어서 갖고 있기에는 여러모로 낭비도 있고 속도도 그렇고...그래서 "DB Pooling"을 쓰시지 않나? 조심스레 여쭤봅니다.

2012년 9월 11일 오전 9:36, elliott <sey...@gmail.com>님의 말:

앱개발하자

unread,
Jul 9, 2013, 10:16:23 PM7/9/13
to nett...@googlegroups.com
dbcp 클래스를 하나 만들어놓고,
핸들러 안에서 getconnection() 하고
다 사용한 후 세군데 close 해주면 안될까요?
저도 지금 공부중인데...
조언 부탁드립니다.

2012년 9월 11일 화요일 오전 9시 47분 16초 UTC+9, 떵꺼리 님의 말:

elliott

unread,
Jul 10, 2013, 5:02:44 AM7/10/13
to nett...@googlegroups.com
DB connection자체가 트랜잭션 처리를 지원하기 때문에 굳이 소캣 connecction마다 배치를 하지 않아도 됩니다.
만약 빈번하게 처리가 된다면 DB connection을 pool로 만드시고 공통된 DB처리 메소드로 처리 하는 것이 어떨까 싶네요.

일반적으로 DBMS에서 connection에 한개가 있고 그 수가 결코 많지 않습니다.

2013년 7월 10일 수요일 오전 11시 16분 23초 UTC+9, 앱개발하자 님의 말:

앱개발하자

unread,
Jul 10, 2013, 9:08:46 PM7/10/13
to nett...@googlegroups.com
DBCP 연동 해결하였는데요...
안드로이드클라이언트(TCP) - 서버연결쪽(Netty) - 서버디비연결쪽(DBCP) - MySQL, 오라클 등의 DB
전체적인 테스트는 아직 못해봤으나 연결만 말씀드리자면,
잘됩니다.

쓰레드마다 커넥션을 두면 문제가,
db접속시마다 생성소멸을 반복하는데
그 작업부하가 만만치 않습니다.
그래서 보통 미리 커넥션풀에 커낵션을 만들어 놓고
필요할때 꺼내쓰고 다쓴뒤 다시 넣어두는 방법으로 설계합니다.

dbcp 라이브러리(?)가 잘되어있는 것이 있습니다.
아파치 commons.dbcp 입니다.
이것은 최대최소 커낵션 갯수, 대기시간 등등
옵션등록만해주면 알아서 처리해주네요..

커넥션 풀 클래스를 하나 만드신 후
핸들러에서 getConnection() 메소드를 이용하여 꺼내쓰시면 됩니다.

2013년 7월 10일 수요일 오후 6시 2분 44초 UTC+9, elliott 님의 말:
Reply all
Reply to author
Forward
0 new messages