[c 언어]mssql connection 관련 질문드립니다!
글쓴이: dkdlel12 / 작성시간: 수, 2011/02/09 - 1:40오후
안녕하세요
현재 freetds+odbc 라이브러리를 사용하여 mssql과 c를 연결하여 사용하고 있습니다.
만약에 하나의 데몬을 띄워 mssql 컨넥션부분을 공유메모리상에 띄어놓고
다른 프로세스에서 공유메모리에 접근하여 query를 전달하는 방법이 있는지 궁금합니다.
공유메모리가 아니더라도 여러 프로세서에서 한번의 컨넥션으로 수많은 query를 처리하는 방법이 있는지 궁금합니다.
하나의 프로세스에서 query문들을 처리해서는 안되며, 각각 다른 프로세스에서 접근해야 합니다.
fork, thread 사용을 제외한 방법이 있을까 궁금하네요!
Forums:
제 생각인데...
MS SQL connection을 맺고 SQL 서버로 쿼리를 전송하는 프로세스는 서버가 되고, 나머지 쿼리를 하고자하는 프로세스들은 클라이언트가 되어 소켓 네트워크 통신을 하면 더 깔끔할 것 같습니다. 로컬 머신에서 Loopback(127.0.0.1) 통신이므로 네트워크 지연도 거의 발생하지 않으며 이기종으로 포팅할 때도 유리하며, 여러대의 머신에서 클라이언트들이 실행될 수도 있으니 규모의 확장에도 도움이 되는 등 다수의 장점들이 있을 것 같습니다.
이미 공유 메모리를 통해서 하는 방법을 강구하였다면 이 방법 역시도 나쁘지 않을 것 같습니다.
모두들 행복하세요~
메세지큐도 있습니다. IPC 메세지큐로 쿼리를
메세지큐도 있습니다. IPC 메세지큐로 쿼리를 던지고, 커넥션을 맺고 있는 프로세스는 메세지큐에서 하나씩 꺼내서 처리하면 됩니다.
時日也放聲大哭
IPC 메시지큐도 좋은 방법입니다.
다만 다수의 클라이언트 프로세스가 붙고 복잡한 로직이 필요하면 제어하는데 상당히 어려움을 격습니다.
구현 하고자하는 프로그램이 정말 단순하다면 굳이 소켓 프로그래밍을 이용하기 보다는 IPC 메시지큐를 사용해볼 것도 권하고 싶습니다.
모두들 행복하세요~
댓글 달기