AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [Indy] TidTCPServer und Datenbank Zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

[Indy] TidTCPServer und Datenbank Zugriff

Ein Thema von Win32.API · begonnen am 11. Jan 2010 · letzter Beitrag vom 11. Jan 2010
Antwort Antwort
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#1

[Indy] TidTCPServer und Datenbank Zugriff

  Alt 11. Jan 2010, 12:57
Datenbank: MySQL • Version: 5.5 • Zugriff über: noch garnicht
Hallo,

ich bin dabei eine Client-Server-Anwendung zu planen und stehe nun vor der Frage, ob ich fuer jeden Client eine eigene Datenbank-Verbindung erstellen soll (bei Indy wird fuer jeden Client ein eigener Thread erstellt) oder eine globale Verbindung erstelle und alle Zugriffe auf diese schuetze.

Zu den Anforderungen an den Server:
  • Es koennen mehrere 100 Clients gleichzeit connecten
  • Beim connecten werden pro Client ca 10 Queries ausgefuerht
  • Bei Anfragen an den Server _kann_ unter Umstaenden auch aus der DB gelsen werden muessen
  • Loggin findet auch ueber die DB statt

Hat jemand Erfahrung mit solchen Szenarien? Welche Komponenten sind fuer den Zugriff auf MySQL Datenbanken zu empfehlen? Hatte Data Access Components for MySQL von Devart ins Auge gefasst.


--Win32.API
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#2

Re: [Indy] TidTCPServer und Datenbank Zugriff

  Alt 11. Jan 2010, 16:17
Zitat von Win32.API:
..ich bin dabei eine Client-Server-Anwendung zu planen und stehe nun vor der Frage, ob ich fuer jeden Client eine eigene Datenbank-Verbindung erstellen soll
Ja, ist allgemein üblich.

Zitat von Win32.API:
..bei Indy wird fuer jeden Client ein eigener Thread erstellt
In solchen Szenarien arbeitet man Serverseitig mit Workerthreads.
D.h. die eingehenden Clientconnections (Sockets) werden durch diese abgearbeitet.
Dadurch ist eine gute Skallierung, auch bei hunderten gleichzeitigen Zugriffe möglich.
Als Faustregel gilt, 8 Workerthreads pro CPU.
Beim Indy IdTCPServer, gibt es die Einstellung "MaxConnections" und auch einen Threadmanager.
Wie diese genau zu handhaben sind, kann ich dir leider nicht beantworten.

Zitat von Win32.API:
oder eine globale Verbindung erstelle und alle Zugriffe auf diese schuetze.
Würde ich nicht empfehlen, weil dadurch keine Skallierung möglich ist.


lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#3

Re: [Indy] TidTCPServer und Datenbank Zugriff

  Alt 11. Jan 2010, 17:12
Hallo Astat,

danke fuer Deine Antwort.

Zitat von Astat:
In solchen Szenarien arbeitet man Serverseitig mit Workerthreads.
D.h. die eingehenden Clientconnections (Sockets) werden durch diese abgearbeitet.
Dadurch ist eine gute Skallierung, auch bei hunderten gleichzeitigen Zugriffe möglich.
Als Faustregel gilt, 8 Workerthreads pro CPU.
Beim Indy IdTCPServer, gibt es die Einstellung "MaxConnections" und auch einen Threadmanager.
Wie diese genau zu handhaben sind, kann ich dir leider nicht beantworten.
An Workerthreads habe ich auch schon gedacht, aber konnte leider keinerlei Informationen ueber Indy und Threadmanager/Threadpools finden.


Grueße,
Win32.API
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#4

Re: [Indy] TidTCPServer und Datenbank Zugriff

  Alt 11. Jan 2010, 19:14
Zitat von Win32.API:
An Workerthreads habe ich auch schon gedacht, aber konnte leider keinerlei Informationen ueber Indy und Threadmanager/Threadpools finden.
Hallo Win32.API, in der DP sind einige hoch karätige INDY Entwickler zu hause, zB. "Assertor".

Tip: Erstell einen neuen Thread unter (Internet und Netzwerk) mit diesem konkreten Problem.
Sollte sich dann sicher jemand finden lassen, der Dir weiterhelfen kann.

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz