![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie pytanie. Otwieram za pomocą php plik DBF. I teraz pytanie- Jeśli plik jest otwierany tylko w trybie odczytu, to na jak długo jest on blokowany? Czy jest on blokowany do momentu wywołania dbase_close, czy tylko do momentu kiedy cały plik zostanie wczytany do pamięci? A może przy odczycie w ogóle nie jest blokowany?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat [...] Dlatego podejrzewam, że mogło mieć to coś wspólnego dostępem do pliku. Przyczyn mogłoby być setki, a że baza danych nie posiada obsługi transakcji, a właściwie jednej z ich cech, tj. atomowości, mogła zostać naruszona wewnętrzna struktura bazy.Cytat A gdyby tak kopiować plik i pracować na kopii? Czy podczas kopiowania plików dostęp do pliku źródłowego jest zablokowany? Kopiowanie trwa nieco ponad 1sek. ale i tak to duże ryzyko. Dlatego chciałbym wiedzieć, czy kopiowanie tego pliku byłoby w 100% bezpieczne. Przed rozpoczęciem kopiowania musiałbyś zablokować plik - najlepiej zarówno dla odczytu jak i zapisu - wykonać kopię, po czym usunąć blokadę.Cytat Ale próbowałem zrobić test na takim skrypcie. I przez pierwsze 20sek. nie mogłem zmienić nazwy pliku. Ale już po upływie 20sek. mogłem zmienić nazwę, mimo, że skrypt nadal się wykonywał. Plik został otwarty w momencie wywołania dbase_open (linia #3), a zamknięty przy wywołaniu dbase_close (linia #9). Tak więc w momencie wykonywania się drugiego sleepa (linia #10) skrypt nie posiadał już uchwytu (ang. handle) do pliku dlatego też system operacyjny, a dokładniej system plików, pozwolił na zmianę nazwy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 14:28 |