AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?
Thema durchsuchen
Ansicht
Themen-Optionen

Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

Ein Thema von Assarbad · begonnen am 6. Nov 2018 · letzter Beitrag vom 8. Nov 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 6. Nov 2018, 22:39
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 MSDN-Library durchsuchenDeleteFileTransacted ...

Das Lustige ist ja, daß Microsoft die seit Windows 8 oder so schon wieder als "Deprecated" führt.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 6. Nov 2018, 22:51
Zitat:
Das Lustige ist ja, daß Microsoft die seit Windows 8 oder so schon wieder als "Deprecated" führt.
Dann macht es keinen sinn weiterhin darüber nachzudenken, geschweige denn zu diskutieren.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#3

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 00:07
Zitat:
Das Lustige ist ja, daß Microsoft die seit Windows 8 oder so schon wieder als "Deprecated" führt.
Dann macht es keinen sinn weiterhin darüber nachzudenken, geschweige denn zu diskutieren.
Doch, denn ein angeblicher Grund für die schnelle Abschaffung ist, daß es zu selten benutzt wurde. Daher diese Mini-Umfrage. Wenn du kein Interesse daran hast, brauchst du dich ja nicht beteiligen
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.650 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 06:37
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 07:42
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.
Heiko
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 07:45
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 07:55
Ich benutze die auch nicht und mache das so wie jaenicke.
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 09:03
Als ich es fand war ich auch interessiert, aber schon vor Jahren war klar: Nein.

Schon vor vier Jahren sagte bereits ein schlauer Mann:
ich ab nur noch nie gesehn, daß das wirklich jemand mal benutzt hätte
Ich denke die sind allerdings nicht erst seit Windows 8 deprecated. Und dass Microsoft etwas strongly recommended sehe ich auch nicht oft. Bei der Geschwindigkeit wie sich Windows in den letzten Jahren ändert würde ich mich auch nie im Leben darauf verlassen dass so etwas noch lange verfügbar bleibt.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 15:08
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.
Nun wäre die Frage wie ihr die Dateien umbenennt. MSDN-Library durchsuchenMoveFileEx / MSDN-Library durchsuchenMoveFile wäre zwar scheinbar richtig, aber nur scheinbar. Denn wenn das fehlschlägt, wird intern ne Kopie versucht. Und schwupp ist deine vermeintlich atomare Aktion nicht mehr atomar. Das hier ist die einzige Methode wenn man sich an die Win32-API hält, wie man hier atomares Verhalten erreicht. Einzige Alternative dazu ist der Rückgriff auf die NT Native API an deren Verfügbarkeit für Delphianer ich selbst vor vielen Jahren gearbeitet habe.

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 Delphi-Referenz durchsuchenRenameFile in SysUtils.pas aus Delphi-7-Zeiten benutzt du auch MoveFile. Haste also auch den Hut auf ...

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.
Hmm, erstens: was anderes ist ein Dateisystem als eine Datenbank? Es ist eine domänenspezifische Datenbank, aber es ist eine Datenbank. Und bei der Registry (TxR) wärst du damit vielleicht auch ohne diese Erklärung damit d'accord gegangen. TxR scheint übrigens im Gegensatz zu den Dateisystemfunktionen nach wie vor ein Ding zu sein.

Zweitens: mir scheint du mißverstehst wie das normale MSDN-Library durchsuchenDeleteFile 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 ... siehe oben)

Vielleicht ist es auch noch zu früh für mich, aber der Grund der Abschaffung könnte ja auch ein Designproblem/ Fehlkonstruktion sein.
Jain. Aber ReFS unterstützt keine Transaktionen, somit sind sie allein auf NTFS beschränkt. Wenn man das als Fehlkonstruktion von ReFS sehen will, dann wäre das halt eine mögliche Sichtweise.

Ich denke die sind allerdings nicht erst seit Windows 8 deprecated.
Quellen? Da es mit Windows Vista eingeführt wurde, bliebe dazwischen ja nur Windows 7.

Und dass Microsoft etwas strongly recommended sehe ich auch nicht oft.
Dann mußt du mehr Doku lesen

Bei der Geschwindigkeit wie sich Windows in den letzten Jahren ändert würde ich mich auch nie im Leben darauf verlassen dass so etwas noch lange verfügbar bleibt.
Das ist nun auch wieder wahr, jupp.

Okay, also bisher keiner der es benutzt. Alles klar. Danke für die Rückmeldungen!
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#10

AW: Mini-Umfrage: Wer von euch benutzt Transactions auf Windows?

  Alt 7. Nov 2018, 20:55
Ich würde gerne wissen, wozu diese Umfrage dient? Danke für eine kurze Info.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:19 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