[c 언어]mssql connection 관련 질문드립니다!

dkdlel12의 이미지

안녕하세요

현재 freetds+odbc 라이브러리를 사용하여 mssql과 c를 연결하여 사용하고 있습니다.

만약에 하나의 데몬을 띄워 mssql 컨넥션부분을 공유메모리상에 띄어놓고

다른 프로세스에서 공유메모리에 접근하여 query를 전달하는 방법이 있는지 궁금합니다.

공유메모리가 아니더라도 여러 프로세서에서 한번의 컨넥션으로 수많은 query를 처리하는 방법이 있는지 궁금합니다.

하나의 프로세스에서 query문들을 처리해서는 안되며, 각각 다른 프로세스에서 접근해야 합니다.

fork, thread 사용을 제외한 방법이 있을까 궁금하네요!

rexos33의 이미지

MS SQL connection을 맺고 SQL 서버로 쿼리를 전송하는 프로세스는 서버가 되고, 나머지 쿼리를 하고자하는 프로세스들은 클라이언트가 되어 소켓 네트워크 통신을 하면 더 깔끔할 것 같습니다. 로컬 머신에서 Loopback(127.0.0.1) 통신이므로 네트워크 지연도 거의 발생하지 않으며 이기종으로 포팅할 때도 유리하며, 여러대의 머신에서 클라이언트들이 실행될 수도 있으니 규모의 확장에도 도움이 되는 등 다수의 장점들이 있을 것 같습니다.

이미 공유 메모리를 통해서 하는 방법을 강구하였다면 이 방법 역시도 나쁘지 않을 것 같습니다.

모두들 행복하세요~

shyblue의 이미지

메세지큐도 있습니다. IPC 메세지큐로 쿼리를 던지고, 커넥션을 맺고 있는 프로세스는 메세지큐에서 하나씩 꺼내서 처리하면 됩니다.

時日也放聲大哭

rexos33의 이미지

다만 다수의 클라이언트 프로세스가 붙고 복잡한 로직이 필요하면 제어하는데 상당히 어려움을 격습니다.
구현 하고자하는 프로그램이 정말 단순하다면 굳이 소켓 프로그래밍을 이용하기 보다는 IPC 메시지큐를 사용해볼 것도 권하고 싶습니다.

모두들 행복하세요~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.