AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Webbroker und mehrere Seiten unter localhost
Thema durchsuchen
Ansicht
Themen-Optionen

Webbroker und mehrere Seiten unter localhost

Ein Thema von Delbor · begonnen am 28. Sep 2015 · letzter Beitrag vom 29. Sep 2015
 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Webbroker und mehrere Seiten unter localhost

  Alt 28. Sep 2015, 14:15
Hi Olli73

Da bei Embarcadero nichts darüber nachzulesen ist, wann der/die Threads starten, und da Embarcadero selber das Event BeforeDispatch für Vorarbeiten wie DB-Zugriffe etc. empfiehlt, nahm ich mal an, dass BeforeDispatch gefeuert wird, bevor der Thread wirklich startet.

Zitat:
Von den Webmodulen werden automatisch mehrere Instanzen erstellt und alle (parallelen) Anfragen werden dann jeweils in einer von diesen Instanzen von Webmodul abgearbeitet, und zwar multithreaded (wäre ja auch blöd, wenn eine Anfrage mal länger dauert und alle anderen deswegen ewig warten müssten).
Nach meinem Stand der Unwissenheit wird für jede Anfrage genau eine Instanz des Webmoduls erzeugt. Die Embarcadero-Seiten habe ich bisher folgendermassen interpretiert:
  • Der Browser startet eine Anfrage, wenn der User auf ein Lesezeichen klickt oder die URL in der Adresszeile eingibt.
  • Der Dispatcher nimmt die Anfrage entgegen und feuert OnBeforeDispatch, sofern dieses Event assigned ist,
  • Startet danach/andernfalls einen Thread, in dem nun erstmal der Defaulthandler des Webmoduls abgearbeitet wird, sofern Handled nicht auf False umgestellt wurde(in diesem Fall würde der DefaultHandler am Schluss aller ActionItems abgearbeitet).
  • Wenn ActionItem[1] Handled auf True stellt, ist die Behandlung abgeschlossen und es werden keine weiteren ActionItems mehr abgearbeitet.
  • Wenn ActionItem[1] Handled auf False stellt (bzw. belässt), ist die Behandlung noch nicht abgeschlossen, und ActionItem[2] wird abgearbeitet. Diese Folgen können beliebig fortgesetzt werden, bis ein ActionItem Handled auf True stellt.
  • War Handled False, als die Bearbeitung der ActionItems begann, wird nun ActionItem[0] ausgeführt. Andernfalls war dies zu Anfang schon der Fall, und die Behandlung ist nun abgeschlossen.

Nach deiner Reaktion zu urteilen, hätte ich ganz offensichtlich vor meinen Zugriffen auf die Form eine Criticalsection einleiten müssen. Das würde wohl auch erklären, weshalb ich keinen Schreibzugriff auf den Speicher habe.
Nicht erklärt ist damit allerdings, wieso unter anderem die URL leer ist und PathInfo die offenbar zuletzt eingegeben Datei angibt.
Und woher kommen die offensichtlich 4 Threads? Es scheint mir im Moment so, als würden die im OnBeforeDispatch-Event erzeugt. Etwa durch meine Zugriffe auf Form1??

Über Kommentare, eventuell wo angebracht, auch etwas ausführlichere, würde ich mich sehr freuen! Vielen Dank!

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
 


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 17:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz