AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

(Berlin) Multithreading mit SOAP

Ein Thema von Sherlock · begonnen am 28. Jun 2016 · letzter Beitrag vom 28. Jun 2016
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#1

(Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 14:10
Delphi-Version: 10 Seattle
Ich möchte mit einem SOAP-Client mehrere Server "abklappern", nacheinander ist das freilich möglich, parallel führt das zu folgendem Fehler
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt EasyDEvice.exe ist eine Exception der Klasse DOMException mit der Meldung 'Microsoft MSXML ist nicht installiert' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Google sagt, klar, das geht nicht weil die SOAP Implementierung nicht threadsicher ist, man kann das aber beheben, indem man für jeden Thread CoInitialize mit abschließendem CoUninitilize aufruft. Das mag unter Windows noch angehen, aber MacOS, iOS oder gar Android kennen ActiveX maximal vom Hörensagen? Was kann man da machen?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#2

AW: (Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 14:45
Scheint so als hätte ich mir ganz Umsonst Sorgen gemacht. Wie hat meine selige Oma immer schon gesagt: Probieren geht über studieren. Ich hab CoInitialize und CoUnititialize einfach in IFDEF WINDOWS gepackt ebenso wie das uses ActiveX und schon klappte es auch unter MacOS wie gewünscht.

Erstaunlich, wie gut die Multiplattformunterstützung ist... irgendwie besser als das "native" Windows.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: (Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 15:48
Nun ja, im Grunde war der Fehler ja, dass "Microsoft MSXML" für diesen Thread nicht installiert initialisiert war.
(Microsoft Microsoft Extensible Markup Language Document Object Model )

Und in den anderen OS wird mit dei deren XML-DOM halt anders umgegangen.
$2B or not $2B

Geändert von himitsu (28. Jun 2016 um 15:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#4

AW: (Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 15:59
Das ist mir klar. Ich finds halt Klasse, daß für die anderen OS dieser Teil wirklich gut funktioniert - auch bei Multithreading.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: (Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 16:20
Bei MS ist das XMLDOM halt nicht Multithread, es verwaltet auch nicht selber die Threads (sich selber intitialisieren, wenn wo benötigt und wieder beenden, wenn keine Referenz mehr, oder so)

Da muß man halt selber die Umgebung pro Thread initialisieren.

Wenn du ganz hart drauf bist und das nie wieder vergessen willst, dann kannst du unter Windows auch das Erstellen/Beenden von Threads hooken und dort "automatisch" CoInitialize und CoUnititialize aufrufen.
Braucht dann zwar bissl mehr RAM und klein bissl Zeit für CoInitialize/CoUnititialize, auch da, wo es nicht nötig wäre, aber davon haben wir ja eh genug.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#6

AW: (Berlin) Multithreading mit SOAP

  Alt 28. Jun 2016, 16:35
Ich will so wenig wie möglich selber machen, darum entwickle ich ja nicht mit Assembler. Ich weiss darum auch zugegebenermaßen nicht allzuviel von den Interna, aber das hat mich bisher nicht davon abgehalten gute Software abzuliefern.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  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 15:38 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