Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Mit Windows Vista wurden Transactions für verschiedene Dateisystemoperationen eingeführt. Wer von euch benutzt die aktiv in Programmen die von anderen Leuten als euch selbst benutzt werden? Beispiel DeleteFileTransacted ...
Das Lustige ist ja, daß Microsoft die seit Windows 8 oder so schon wieder als "Deprecated" führt. |
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Zitat:
gruss |
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Zitat:
|
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Wir benutzen eine der genannten Alternativen, nämlich simples Ersetzen der Dateien. Sprich wir schreiben in eine temporäre Datei und benennen diese dann am Ende in den richtigen Dateinamen um. Ich sehe auch sonst in dafür in Frage kommenden Projekten niemanden, der dafür diese Transaktionen benutzt.
|
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Hallo,
zusätzlich sollte man eine leere Datei mit dem richtigen Dateinamen erzeugen und exclusiv öffnen, um zu verhindern, dass jemand während der Dateiarbeit den Dateinamen "kapert". So macht es u.a. Firefox beim Download. |
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Ich nutze es nicht, ich kenne niemand, der es tut, aber:
bei dem Begriff "Transaction" zuckt es ja bei mir. Für mich ist das jedoch ein Datenbankbegriff. Darf man sich das unter Windows funktional ebenso vorstellen? Scheinbar nicht ganz, die API Doku aus dem Link scheint mir jedenfalls schon inkonstitente Zustände zu beschreiben: The file is deleted after the last transacted writer handle to the file is closed, provided that the transaction is still active. If a file has been marked for deletion and a transacted writer handle is still open after the transaction completes, the file will not be deleted. Vielleicht ist es auch noch zu früh für mich, aber der Grund der Abschaffung könnte ja auch ein Designproblem/ Fehlkonstruktion sein. |
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Ich benutze die auch nicht und mache das so wie jaenicke.
|
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Als ich es fand war ich auch interessiert, aber schon vor Jahren war klar: Nein.
Schon vor vier Jahren sagte bereits ein schlauer Mann: Zitat:
|
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Zitat:
ReactOS versucht das Verhalten von Windows bestmöglich nachzuempfinden und hier findest du die Implementierung von MoveFileExW ohne daß du WinDbg oder nen Disassembler bemühen müßtest. Speziell geht es um diese Zeile. Das einzige Delphi was ich noch installiert habe ist in einer abgewrackten alten XP VM und das ist ein Delphi 7. Jetzt weeß ick natürlich nich ob sich das geändert hat, aber mit RenameFile in SysUtils.pas aus Delphi-7-Zeiten benutzt du auch MoveFile. Haste also auch den Hut auf ... Zitat:
Zweitens: mir scheint du mißverstehst wie das normale DeleteFile funktioniert. DeleteFile löscht nicht etwa, wie der Name es suggeriert, die Datei. Stattdessen setzt diese Funktion - übrigens mit der gleichen Methode die ich oben schon erwähnte (SetFileInformationByHandle) - ein Flag. Wenn die Funktion zum Aufrufer zurückkehrt muß die Datei noch lange nicht gelöscht sein (in NTFS kann das durchaus mal ein paar Sekunden dauern, wenn das System gerade "zu tun" hat). Wer mehr wissen will, schaut sich das hier an. Unter der Haube werkelt da NtSetInformationFile, welches Treiberentwicklern ein Begriff sein dürfte. SetFileInformationByHandle ist meines Wissens für die unterstützten Klassen eine 1:1-Abbildung der darunterliegenden NT Native API. Kurzum DeleteFile ist ebensowenig atomar wie MoveFileEx. Hammer, oder? ;) Und "schlimmer" noch, bei näherer Betrachtung ist die vermeintliche Inkonsistenz nicht so inkonsistent wie du meinst. Transaktionen geben ja Garantien. Wenn nun also eine Datei, bspw. durch einen anderen Prozeß, zum Löschen vorgemerkt wird, dann (Ach ja, intern benutzt MoveFile MoveFileEx, also falls hier jemand mitliest und MoveFile benutzt und sich in Sicherheit wog, dem kann ich diesen Zahn umgehend ziehen :zwinker: ... siehe oben) Zitat:
Zitat:
Zitat:
Zitat:
Okay, also bisher keiner der es benutzt. Alles klar. Danke für die Rückmeldungen! :thumb: |
AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Ich würde gerne wissen, wozu diese Umfrage dient? Danke für eine kurze Info.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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