AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

Ein Thema von Sherlock · begonnen am 10. Jan 2018 · letzter Beitrag vom 14. Jan 2018
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 10. Jan 2018, 15:47
Ich hänge irgendwie fest, und kanns mir nicht erklären, was da passiert. Mein Projekt ist für Win, macOS und iOS. Die ersten beiden machen keine Probleme (mehr), aber unter iOS kommt es sporadisch, nicht vorhersehbar zu dieser Exception
Zitat:
Im Projekt ist eine Exception der Klasse EInsufficientRtti mit der Meldung 'Unzureichende RTTI zur Unterstützung dieser Operation verfügbar' aufgetreten.
die sehe ich aber nur im Debugger. Wenn die App alleine läuft, beendet sie sich einfach komplett, und ich rate, daß das an dieser Exception liegt.

Das Vorkommen der Exception konnte ich auf SOAP-Aufrufe eingrenzen (ich verwende schlicht sonst keine RTTI, zumindest aktiv und bewusst). Ich habe eine soap.pas basierend auf die Server-WSDL von Delphi erzeugen lassen, und es läuft auch wie gesagt unter Win und macOS ganz ordentlich, unter iOS kann es mal stundenlang gut gehen, und mal direkt beim App-Start nicht. Wenn das dann aber mal passiert, dann war es das, ich habe keinen Schimmer, wie ich auf diese Exception reagieren soll. Denn die SOAP-Objekte sind ja IInvokable, die im initialization der soap.pas registriert werden. Ich kann nichts freigeben und neu erzeugen, oder wie mache ich das mit einer Unit zur Laufzeit?

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

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 10. Jan 2018, 18:03
Gibt es ein Test-Projekt, dann könnte ich das mal probieren ?

Habe zwar bisher nur SOAP unter Win gemacht, aber iOS steht immer auf der Liste.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 11. Jan 2018, 06:45
Hmmm, dann bräuchte es auch einen Server... beides kommt von mir. Ich bin mir allerdings ziemlich sicher, daß es auch mit der Masse von Requests zu tun hat, die mein Client sendet.ich versuche das mal einzudämmen. Ein Testprojekt wird schwierig. Ich wollte nur erstmal hören, ob das ein bekanntes Thema ist, oder eher nicht. Wie es mir scheint gilt letzteres.

Danke!

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

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#4

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 06:34
Ich meinte auch erstmal testen mit einem freien Service:
http://www.webservicex.net/WS/wscatlist.aspx

Wenn dir das weiterhilft.
Damit schonmal der Client läuft.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 12:09
AFAIK nutzt SOAP unten drunter die RTTI - wäre also eine Hilfe, wenn du den Callstack anschauen/posten würdest, es gibt ca nen Duzend Stellen, die diese Exception raisen (alle samt in der System.Rtti.pas)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 12:54
Stevie, das habe ich auch herausgefunden. Ich bin gerade dabei eine Möglichkeit zu finden, das gesamte SOPA-Objekt, also das IInvokable, neu zu registrieren.

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

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 12:59
Wenn das sporadisch passiert vermute ich eher ein Problem mit Multithreading.
Die RTTI ist nicht threadsafe - beim initialen Erzeugen der RTTI Objekte kann es zu race conditions kommen.
Das würde sich auch mit deiner Aussage, dass es beim App start kracht, decken.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#8

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 14:21
Wenn das sporadisch passiert vermute ich eher ein Problem mit Multithreading.
Die RTTI ist nicht threadsafe - beim initialen Erzeugen der RTTI Objekte kann es zu race conditions kommen.
Das würde sich auch mit deiner Aussage, dass es beim App start kracht, decken.
Ich bin jetzt nicht OP. Aber mal ernsthaft damit SOAP wie es von Delphi unterstützt wird (WSDL import &c) läuft muss es ja RTTI benutzen. Und als Indy TCP Anwendung ist Multithreding auf beiden Seiten(Server und Client) gegeben.
Müssen wir das als Programmierer jetzt selbst absichern? Oder macht der generierte Code das schon vernünftig?
Kann man einen von Delphi generierten Soap Server unter last laufen lassen?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 12. Jan 2018, 14:43
RTTI ist nicht Threadsafe? Das ist natürlich ein Problem, da ich die SOAP-Aufrufe in einen Thread auslagere... Gnarf!! Unter Windows führt das aber über Tage(!!!) Nicht zu Problemen.

Jetzt muss ich mal in mich gehen.

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

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: FMX: SOAP führt nicht vorhersehbar zu EInsufficientRTTI

  Alt 14. Jan 2018, 13:17
Die RTTI ist nicht threadsafe - beim initialen Erzeugen der RTTI Objekte kann es zu race conditions kommen.
Müssen wir das als Programmierer jetzt selbst absichern? Oder macht der generierte Code das schon vernünftig?
Kann man einen von Delphi generierten Soap Server unter last laufen lassen?
RTTI ist nicht Threadsafe? Das ist natürlich ein Problem, da ich die SOAP-Aufrufe in einen Thread auslagere... Gnarf!! Unter Windows führt das aber über Tage(!!!) Nicht zu Problemen.
Ich sollte das wohl mal spezifizieren - bestimmte Teile in der unit System.Rtti sind nicht threadsafe.
Guckstu: https://quality.embarcadero.com/browse/RSP-17897 (bin nicht sicher, ob das genau der Fehler ist, der dich betrifft, aber es ist einer davon)

Es gab noch andere Fehler, die aber zumindest in 10.2 gefixt sein sollten, wie z.B. https://quality.embarcadero.com/browse/RSP-12906
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 15: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