AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Zugriff auf eine *.ini-Datei über mehrere Rechner im Netzwerk
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf eine *.ini-Datei über mehrere Rechner im Netzwerk

Ein Thema von Jean · begonnen am 23. Mai 2013 · letzter Beitrag vom 27. Mai 2013
Antwort Antwort
rwalper

Registriert seit: 6. Sep 2006
48 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Zugriff auf eine *.ini-Datei über mehrere Rechner im Netzwerk

  Alt 24. Mai 2013, 15:10
Hallo,

ich verwende auch Ini-Dateien zum Speichern von zentralen Einstellungen. Dabei konnte ich die Erfahrung machen, dass Ini-Dateien, auf denen häufig zugegriffen wird, Probleme in einem reinen SMB2-Netzwerk bereiten können (nur Rechner mit Windows Server 2008 und Windows Vista aufwärts, kein einziger mit Windows XP!).

Bei SMB2 werden Dateien auf SMB-Freigaben 10s standardmäßig gecached. Das soll so sein, Performance etc., und ist nur abschaltbar, wenn man SMB2 deaktiviert.

Bei Ini-Dateien, die nur selten gelesen werden, ist das kein Problem. Ich hatte aber eine Ini auf einem Server 2008, in der zentrale Programmeinstellungen gespeichert wurden und die häufig gelesen wurde. Hier gab es massive Probleme. Einzelne Ini-Zugriffe dauerten sehr lange. Das ganze Programm lief in Zeitlupe, die Processorlast ging hoch. Über den ProcessMonitor von SysInternals konnte man sehen, dass massenhaft Zugriffe auf diese Ini-Datei stattfanden, auch dann wenn im Programm gerade keine Ini-Zugriffe stattfanden.

Wenn man dann aber auf allen anderen PC's diese Anwendung minimiert hatte, lief wieder alles einwandfrei. Sowie man nur auf einem einzigen PC diese Anwendung wieder als Fenster öffnete (ohne irgendwas zu tun) lief wieder alles in Zeitlupe.

Ich weiß nicht, ob es ein Bug im SMB2-Client-Cache ist(oder war) oder ob nicht irgendeine andere Systemeinstellung damit zu tun hatte (Virenscanner waren alle aus).

Ich habe nun statt einer Ini-Datei eine XML-Datei verwendet (Zugriffe über TXMLDocument). Seitdem läuft es bei allen Kunden stabil.

Gruß
  Mit Zitat antworten Zitat
tgvoelker

Registriert seit: 9. Sep 2002
Ort: Oelsnitz, Vogtland
44 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zugriff auf eine *.ini-Datei über mehrere Rechner im Netzwerk

  Alt 27. Mai 2013, 06:56
Solange Du nicht schreibst, ist alles in Butter. TIniFile.Read... ruft Windows API-funktionen auf, ReadString z.B. GetPrivateProfileString.

Allerdings kommt es für den Fall gleichzeitigen Lesens/Schreibens ggf. zu Deadlocks. Das liegt daran, daß die Windows-API beim Zugriff auf INI-Dateien augenscheinlich kein Locking implementiert, Du diese Locks also selbst setzen müßtest, z.B. indem du die INI-Datei als Filestream mit ShareDenyWrite zum Lesen öffnest und wieder zumachst, wenn Du Deine Werte gelesen hast.

Zum Thema:
http://web.archive.org/web/200803080.../06/68152.aspx
Thomas Völker
  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 13: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