AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke DataSnap-Client lässt sich nicht erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

DataSnap-Client lässt sich nicht erstellen

Ein Thema von himitsu · begonnen am 27. Nov 2020 · letzter Beitrag vom 28. Nov 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

DataSnap-Client lässt sich nicht erstellen

  Alt 27. Nov 2020, 15:49
Moin Moin,

beim Versuch einen DataSnap-Client neu zu erstellen, gibt es am Ende des Experten einen Fehler und es bricht bei/vor Erstellung der Units ab.
Delphi 10.4.1 (im XE keine Probleme)

TestServer.exe
* compilieren + starten (ohne Debugger)
ClientTCP.exe
* Datei > Neu > DataStnap > DataSnap-Client-Modul
* Lokaler Server
* Eigenständiger DataSnap-Server
* TCP/IP
* Port 211, User/Pass= egal
-> Remote-Fehler: Zugriffsverletzung bei Adresse 00A37818 in Modul 'TestServer.exe'. Lesen von Adresse 00000000

* der DSServer ist wie vom Experten generiert
* nur zusätzlich mit Billig-Logging und den zwei Testfunktionen für TStream.

Der Fehler kommt in der IDE / im Experten (nicht aus in der Server-EXE)
Die Server-EXE erkennt schonmal die Verbindung (LOG: UserAuthenticate Protocol=tcp/ip Context= User=user:pass)

XE: Quellcode und Compilate
104: nur die Quellcodes, da die EXEn das Limit brechen (Allein der Server wird von 3MB wird zu 31MB und selbst Release+komprimiert übertrifft es die 5MB des Forum-Anhangs)

---

Damals im XE, bei den ersten Generationen des DataSnap hatten wir/ich so Einiges am automatisch generierten Code angepasst.
* bei Übertragung von TPgDataSet, während der Übertragung von TEXT in VARCHAR geändert, weil es mit TEXT nicht ging
* bei Übertragung von Streams die übertragenen Streams in einen TMemoryStream umkopiert, weil Komponenten mit dem Stream.Size=-1 (wenn über 32 KB) nicht zurecht kamen
* ...
* ich hoffe das ganze Zeugs für TDataSet-Übertragung ist wieder raus (hatte es entfernt, als wir nach massiven langjährigen Problemen auf Materialized-Views in der Datenbank als PreCache umgestiegen sind)

Bei Umstellung von XE zu 10.2 10.3 10.4 wollte ich mir nun den Server und Client neu erstellen lassen
und dann schauen/vergleichen was nun zu tun wäre.
* die Übertragungsverschlüsselung hatte ich auskommentiert (fand auf die Schnelle irgendwelche Klassen/Units nicht, aber egal, da bisher eh nicht aktiv )
* und ansonsten ließ sich der alte Code erstmal problemlos kompilieren (nur paar USES anpassen)
* aber im Betrieb raucht dann der DataSnap-Client beim Connect:=True ab
* * Exception weil Interface (GUID irgendwas) nicht registriert sei (war irgendwas aus der IPPeerAPI)
Angehängte Dateien
Dateityp: 7z AppServer.7z (1,81 MB, 1x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Nov 2020 um 16:06 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: DataSnap-Client lässt sich nicht erstellen

  Alt 27. Nov 2020, 16:14
Du musst deine Frage noch stellen!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: DataSnap-Client lässt sich nicht erstellen

  Alt 27. Nov 2020, 17:01
Weiß jemand warum es nicht geht?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: DataSnap-Client lässt sich nicht erstellen

  Alt 28. Nov 2020, 17:27
Problem gelöst


OK, es war doch ein Fehler im Server und nicht im Experten.

Es waren 2-3 Fehler in Logging und Fehlerbehandlung.
* auf EventObject.ServerClass im Queue zuzugreifen, wenn es dieses DatenObjekt nicht mehr gibt
* die Exception im Queue wir in den aufrufenden Thread durchgereicht, aber dort nicht ausgegeben
* und somit wurde der Fehler nicht angezeigt

* dann war bei den DataSnap-Admin-Methoden ala DSAdmin.GetServerMethodParameters die ServerClass = nil

* und da es selten Spaß macht die IDE mehrfach zu starten, seit es Recovery gibt und die IDe extrem langsam geworden ist (in den letzten 15 Jahren immer mehr)
* hatte ich den Serverprozess ohne Debugger gestartet

Zitat:
Delphi-Quellcode:
procedure TServerContainer1.DSAuthenticationManager1UserAuthorize(
  Sender: TObject; EventObject: TDSAuthorizeEventObject;
  var valid: Boolean);
begin
  TThread.Queue(nil, procedure
    begin
      Form1.Memo1.Lines.Add(Format('UserAuthorize User=%s ServerClass=%s MethodAlias=%s',
        [EventObject.UserName, EventObject.ServerClass.ClassName, EventObject.MethodAlias]));
    end);
Delphi-Quellcode:
procedure TServerContainer1.DSAuthenticationManager1UserAuthorize(
  Sender: TObject; EventObject: TDSAuthorizeEventObject;
  var valid: Boolean);
var
  Log: string;
begin
  if Assigned(EventObject.ServerClass) then
    Log := Format('UserAuthorize User=%s ServerClass=%s MethodAlias=%s',
      [EventObject.UserName, EventObject.ServerClass.ClassName, EventObject.MethodAlias])
  else
    Log := Format('UserAuthorize User=%s ServerClass=nil MethodAlias=%s',
      [EventObject.UserName, EventObject.MethodAlias]);
  TThread.Queue(nil, procedure
    begin
      Form1.Memo1.Lines.Add(Log);
    end);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 14:28 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