AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Maximale Anzahl gleichzeitiger Verbindungen

Maximale Anzahl gleichzeitiger Verbindungen

Ein Thema von greenmile · begonnen am 19. Sep 2021 · letzter Beitrag vom 20. Sep 2021
Antwort Antwort
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#1

Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 17:59
Hallo,

(m)ein Programm lädt mehrere Bild-Dateien von einem Server, dafür laufen einige Threads zur selben Zeit. Das Problem ist, dass anscheinend nur 2 zur selben Zeit laufen und die restlichen warten. Ein wenig Google ergab dann, dass die maximale Anzahl gleichzetiger Verbindungen zum selben Server auf 2 limitiert ist, außer man setzt in der Registry den Wert unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Interne t Explorer\Main\FeatureControl\FEATURE_MAXCONNECTION SPERSERVER" hoch. Das Problem ist: Das bringt nix. Egal ob ich dort "iexplorer.exe" noch den Namen meiner EXE eintrage, es werden nicht mehr. Ich muss leider die Funktionen der WinINet verwendet. Alternativ habe ich schon (erfolglos) versucht:

Code:
InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @MaxConnections, SizeOf(MaxConnections));
InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @MaxConnections, SizeOf(MaxConnections));
Das scheint aber nur bis IE7 zu funktionieren. Hat noch jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#2

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 18:12
Schonmal überlegt, dass diese Begrenzung auch auf der anderen Seite vorkommen kann und der Server das Limit vorgibt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Papaschlumpf73
Online

Registriert seit: 3. Mär 2014
Ort: Berlin
308 Beiträge
 
Delphi 12 Athens
 
#3

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 18:14
Probiere mal bitte diese Registry-Einstellungen für 20 gleichzeitige Verbindungen - hat früher immer funktioniert.

Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
"MaxConnectionsPer1_0Server"=dword:00000020
"MaxConnectionsPerServer"=dword:00000020
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 18:14
Schonmal überlegt, dass diese Begrenzung auch auf der anderen Seite vorkommen kann und der Server das Limit vorgibt?
Da habe ich auch schon geschaut, bin allerdings nicht so ganz schlau geworden, wo ich das im Apache einstellen kann. Habe auf "MaxConnectionsPerChild" getippt und da steht 0 ("which implies no maximum connections per child").

[Code]
StartServers 250
MinSpareServers 100
MaxSpareServers 150
MaxRequestWorkers 512
ServerLimit 512
MaxConnectionsPerChild 0
[Code]

hast du noch eine Idee?

Geändert von greenmile (19. Sep 2021 um 18:18 Uhr)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 18:16
Probiere mal bitte diese Registry-Einstellungen für 20 gleichzeitige Verbindungen - hat früher immer funktioniert.

Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
"MaxConnectionsPer1_0Server"=dword:00000020
"MaxConnectionsPerServer"=dword:00000020
Hat nix gebracht.
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
322 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 19. Sep 2021, 19:46
hallo,

vielleicht hier

http://www.winfaq.de/faq_html/Conten...?h=tip0405.htm

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
608 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 20. Sep 2021, 08:47
Im Regelfall machen die Webserver das. Wenn es dein eigener Server ist kannst du es einstellen. Sonst eher nicht.
Mein FTP Server (bei Hetzner) erlaubt maximal 10 gleichzeitige Verbindungen. Ein FTP Server von DemoScene.org nur zwei.

Bei Webhostern war es lange Zeit üblich 2 gleichzeitige Verbindungen zu erlauben. Heutzutage sind es meißt 4.

Client / PC seitig muss man da schon seit vielen Jahren nichts mehr einstellen. Unter XP war da mal was. Aber das ist ja lange her.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 20. Sep 2021, 09:07
InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize)
InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize)

Gibt bei mir bei auf einem 'normalen' Windows 4 (INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER) bzw 2 (INTERNET_OPTION_MAX_CONNS_PER_SERVER) zurück.

Kann man denn irgendwie in Erfahrung bringen, ob die App für eine Verbindung warten müsste, weil gerade alles voll ist?

Kann das zwar (anscheinend) temporär erhöhen, mir wäre es aber lieber wenn ich weiß, ob die Schlange gerade voll ist, dann kann ich gemütlich warten.

Code:
  dwSize := SizeOf(dwMaxHttp10);
  InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize);
  If (dwMaxHttp10<10) then begin
    dwMaxHttp10 := 10;
    InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize);
  end;

  dwSize := SizeOf(dwMaxHttp11);
  InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize);
  If (dwMaxHttp11<10) then begin
    dwMaxHttp11 := 10;
    InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize);
  end;

Geändert von greenmile (20. Sep 2021 um 09:54 Uhr)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Maximale Anzahl gleichzeitiger Verbindungen

  Alt 20. Sep 2021, 11:41
Ich denke, ich habe den Fehler gefunden. Wenn die EXE in "FEATURE_BROWSER_EMULATION" gelistet ist, muss hier ein Eintrag einfolgen:

HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULA TION\name-der.exe DWord 11000
HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_MAXCONNECTION SPERSERVER\name-der.exe DWord 10
HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_MAXCONNECTION SPERSERVER\name-der.exe DWord 10

Ansonsten hier:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Int ernet Settings\MaxConnectionsPerServer DWord 10
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Int ernet Settings\MaxConnectionsPer1_0Server DWord 10

Entsprechend geben auch diese Funktionen den hinterlegten Wert zurück:

Code:
InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize)
InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize)
Zusätzlich mache ich das dann noch per Software, scheint aber nicht zu greifen, muss ich noch testen:

Code:
        dwSize := SizeOf(dwMaxHttp10);
        InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize);
        If (dwMaxHttp10<10) then begin
          dwMaxHttp10 := 10;
          InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER, @dwMaxHttp10, dwSize);
        end;

        dwSize := SizeOf(dwMaxHttp11);
        InternetQueryOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize);
        If (dwMaxHttp11<10) then begin
          dwMaxHttp11 := 10;
          InternetSetOption(nil, INTERNET_OPTION_MAX_CONNS_PER_SERVER, @dwMaxHttp11, dwSize);
        end;

Geändert von greenmile (20. Sep 2021 um 11:48 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:50 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