C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38998] [질문] dbExpress를 이용한 MySQL 사용시 궁금합니다.
subspace.케이블가이 [subspace] 1134 읽음    2005-01-31 15:58
안녕하세요.
올 한해에도 새해 복 많이 받으시구요.. 부자 되세요... ^^

현재 dbExpress를 이용해서 MySQL를 서버로 3-tier 시스템을 만들고 있습니다.
그런데 궁금한 것이 있어서요..

서버는 소켓 기반으로 (블럭킹모드로 구동) 클라이언트가 접속하면 쓰레드를 생성하여
각 쓰레드가 클라이언트와 통신을 하면서 클라이언트의 요청에 따라서 DB 쿼리를 수행하고
그 결과를 클라이언트에게 전달합니다.
이때 Main Form에 TSQLConnection 개체를 넣고,
프로그램이 구동되면 TSQLConnection 개체는 초기화 되어 DB에 접속하게 됩니다.
그리고 클라이언트의 접속시점에 쓰레드 생성시 초기화된 TSQLConnection 개체를 넘겨주어
각 쓰레드는 TSQLQuery 개체를 생성하고 TSQLConnection 개체를 연결하여 각 쓰레드가
원하는 쿼리를 하도록 합니다.

이때 다수의 쓰레드가 동시에 TSQLConnection을 TSQLQuery에 넣어 사용하는 것에 문제가 될것
같아서 CriticalSection으로 하나의 쓰레드만이 처리하도록 했는데요..
이렇게 하는 것이 맞는 것인가요? 아니면 궂이 CriticalSection을 둘 필요가 없는지 궁금합니다.

그리고 만약에 위처럼 하게 되면 하나의 세션을 이용하여 모든 쓰레드가 쿼리를 함으로써
병목현상이 발생될 것인데, n개의 세션을 Pool 형태로 해서 동시에 최대 n개의 쓰레드가
쿼리를 수행하려면 TSQLConnection 개체를 n개를 만들어 사용해야 하는 것인지 궁금합니다.

쩝..
너무 설명이 난해하게 하지 않았는지 모르겠습니다.
이러한 방법에 대해서 노하우가 있으시면 간단히 말씀해 주시면 감사드리겟습니다.

그럼 수고하세요.

+ -

관련 글 리스트
38998 [질문] dbExpress를 이용한 MySQL 사용시 궁금합니다. subspace.케이블가이 1134 2005/01/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.