:: Архив конференции по VFP до 2005 года
Принудительный сброс данных из памяти на диск
Saratoga
Автор

Сообщений: 489
Дата регистрации: 02.02.2004
Такая ситуация - в конторе, где стоит программа, часто происходят скачки напряжения, UPS по всей видимости не справляется, как результат, холодное выключение компьютера, данные, внесенные в программу в последнем сеансе работы с ней, частично или полностью теряются...Есть ли способ принудительно сбрасывать все данные на диск, скажем, выполнять эту процедуру с периодичностью 20 минут?
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
Ну, есть FLUSH, например, только боюсь в Вашем случае этого будет недостаточно, видимо нужен терминал сервер или пересмотр концепции организации модификации данных.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
SYS(1104) но ищите АКБ на свой УПС по-любому




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
2Hel!Riser

Цитата:
SYS(1104)

Поясни, пожалуйста, чем поможет - у него же просто питание вырубается.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
дык сбросить кеш на дисок Она круче FLUSH а то што питание вырубаеца - дык я за смену аккумулятороф тоже!




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
Денис.

Как я понял автора, происходит следующее (если не прав, то Saratoga поправит)

Сидит пользователь , вводит данные в буф. таблицу/view, решил их сохранить, а в этот момент отвалилась сеть - вот он и спрашивает мол, а что предпринять, на мой взгляд ни FLUSH ни SYS(1104) не помогут, поскольку хендл уж не знаю соединения, файла отвалился.

Поэтому есть три решения

- UPS (надежность близка к 100%)
- Terminal (почти 100% надежность)
- либо пересмотр идеологии работы с таблицами/view/соединениями, те работа с локальными курсорами как для ф-сервер, так и для к-сервер и при отвале соединения - восстановление его и сброс наработанного пользователем на сервер (про надежность не скажу, на мой взгля тоже высока)

ЗЫ на моей памяти это уже второй пост на такую тему.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
Цитата:
Есть ли способ принудительно сбрасывать все данные на диск, скажем, выполнять эту процедуру с периодичностью 20 минут?
Паш, вот она ключевая фраза, на кот я отвечал Протиф твоих решений нич:е не имею - фс:е чотка




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
PaulWist

Сообщений: 14585
Дата регистрации: 01.04.2004
Цитата:
вот она ключевая фраза, на кот я отвечал

А мне она кажется совсем не понятной, те предположим вводятся данные в одну буф.(5) таблицу и в этот момент наступает время "Ч", что произойдет - всё что он ввел прилипнет на диск - нет, а прилипнет только то, что сохранял в передыдущий раз и по каким-то причинам буфер не был сброшен, тогда встает вопрос - а нафига вообще это промежуточное сохранение, если его можно выполнять при завершении транзакции, те то что не меняли сброситься на диск, а то что редактируем всё равно останется не сохраненным.

ЗЫ ну , вообщем это мое понимание на "пальцах"




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Hel!Riser!

Нет, sys(1104) не записывает данные на диск - она наоборот - считывает
"свежие" данные с диска - например если SET REFRESH их ещё не считал
А FLUSH вроде только в VFP9 довели до ума - до того он AFAIK как-то "не так"
работал. А в VFP9 вроде он завязан на АПИшную функцию сброса WriteBack
буфера - т.е. пытается физически записать данные на носитель.

P.S. А я понял что речь не про "отваливание сети" а про вырубание собственно
клиентских компов (поди и данные там локально лежат




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Saratoga
Автор

Сообщений: 489
Дата регистрации: 02.02.2004
Немного детализирую:
Редактирование происходит как правило одной записи в отдельном диалоговом окне
каждую запись сбрасываю командой SCATTER в переменные, в них правлю, далее командой GATHER загоняю отредактированные данные обратно в запись.

scatter name mo(index)
Редактирование mo(index).field1,mo(index).field2,...,mo(index).fieldN
rlock([table])
gather name mo(index)
unlock([table])

Теряются данные, попавшие в запись уже после команды gather, причем не в одной записи, а сразу в нескольких. Т.е. фокс сделал все от него зависящее, чтобы сохранить модифицированную запись, и видимо далее данные не попадают на диск, а остаются в памяти по причинам, завиясящим от операционки?
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика