Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Einplatzversion auf Terminalserver (https://www.delphipraxis.net/171732-einplatzversion-auf-terminalserver.html)

hoika 22. Nov 2012 10:34

Einplatzversion auf Terminalserver
 
Hallo,

ich habe hier ein Programm ...
Designed als Einzelplatzversion, Daten (Ini,File Of Record)
werden ins Exe-Verzeichnis geschrieben (wohin sonst ... ).
Es wird nicht ins Programme-Verzeichnis installiert,
da klappt das mit dem Schreiben in die Dateien ja.

Jetzt soll das Programm auf einen Terminal-Server.
Also installiert, 5 Mann haben Zugriff.
Es keine Fehlermeldung ala "Datei bereits gesperrt".

Ist das normale ?

Ich dachte, es gäbe einen Haufen Probleme ???


Heiko

himitsu 22. Nov 2012 11:01

AW: Einplatzversion auf Terminalserver
 
Bei was soll denn diese Fehlermeldung kommen?
Beim Zugriff auf deine Dateien im EXE-Verzeichnis und wenn ja, greifen denn zwei Instanzen gleichzeitig auf diese Dateien zu?

Und wo liegt denn jetzt nun deine EXE?

jaenicke 22. Nov 2012 11:04

AW: Einplatzversion auf Terminalserver
 
Zitat:

Zitat von hoika (Beitrag 1192335)
Designed als Einzelplatzversion, Daten (Ini,File Of Record)
werden ins Exe-Verzeichnis geschrieben (wohin sonst ... ).

Wohin sonst? Naja, vielleicht an eine der normalen Stellen? Zum Beispiel das Anwendungsdatenverzeichnis?

Zitat:

Zitat von hoika (Beitrag 1192335)
Jetzt soll das Programm auf einen Terminal-Server.
Also installiert, 5 Mann haben Zugriff.
Es keine Fehlermeldung ala "Datei bereits gesperrt".

Wenn du in die selbe Datei schreibst, ist das eben Zufall, ob es geht oder nicht. Da die Schreibvorgänge vermutlich nicht lange dauern, passieren diese vielleicht gar nicht genau parallel.

Zudem kannst du beim Öffnen einer Datei ja angeben, dass diese auch beim Schreiben nicht gesperrt werden soll. Schlecht ist dann nur, wenn zwei gleichzeitig schreibend auf den selben Datensatz zugreifen. Oder wenn jemand einen halb aktualisierten Datensatz liest, den ein anderer gerade schreibt...

Oder das Programm liegt komplett in z.B. den Anwendungsdaten der einzelnen Benutzer, dann hat ja jeder alles nur für sich.

generic 22. Nov 2012 11:36

AW: Einplatzversion auf Terminalserver
 
Zitat:

Zitat von jaenicke (Beitrag 1192347)
Zitat:

Zitat von hoika (Beitrag 1192335)
Designed als Einzelplatzversion, Daten (Ini,File Of Record)
werden ins Exe-Verzeichnis geschrieben (wohin sonst ... ).

Wohin sonst? Naja, vielleicht an eine der normalen Stellen? Zum Beispiel das Anwendungsdatenverzeichnis?

Auf keinen Fall, dass ist doch auch nur von einen Benutzer zur gleichen Zeit nutzbar.
Jeder Benutzer hat sein persönliches Profil.
Da gehören die persönlichen Daten hin bzw. welche in Nutzer nutzen soll.

Gemeinsam genutzte Dateien gehören ins besagte "ProgrammData"-Verzeichnis (%ALLUSERSPROFILE%).
Wenn allerdings schreibend drauf zugegriffen wird:
Es müssen Schreibrechte drauf vergeben werden und es muss im Programm auf die Multiuserfähigkeit geachtet werden.
Daher setzt man bei MU eher Datenbanken ein, welche sich um so etwas kümmern.
Stichwort "ACID"

jaenicke 22. Nov 2012 17:15

AW: Einplatzversion auf Terminalserver
 
Ich meinte natürlich auch das Anwendungsdatenverzeichnis des Benutzers...

generic 23. Nov 2012 08:54

AW: Einplatzversion auf Terminalserver
 
Im Entwickler hatte ich übrigens mal einen Artikel über die Speicherorte:

Entwickler Magazin (Ausgabe: 04.11)
Artikel: Einstellungssache - Anwendungsdaten und Einstellungen

Inhalt:
Welche Möglichkeiten gibt es um etwas zu Speichern: ini, xml, registry, sonstiges.
Wo kann/sollte man speichern.

jaenicke 23. Nov 2012 12:44

AW: Einplatzversion auf Terminalserver
 
Zu dem Thema habe ich auch mal eine Open Source Lösung veröffentlicht, die ich in mehreren Projekten für Einstellungen benutzt habe:
http://www.delphipraxis.net/134803-s...-0-rc-3-a.html
Und einen Hintergrundartikel dazu gibt es auch:
http://www.entwickler-ecke.de/viewto...541637&view=dl


Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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