SASGIS - SACS.Планета
View Issue Details
0002504SACS.Планета[All Projects] Багpublic24-09-2014 06:5216-04-2015 00:24
Leontiy 
vasketsov 
highcrashalways
closedwon't fix 
WindowsXPSP3
 
 
0002504: При работе на сетевом диске в многопользовательском режиме метки сохраняются у последнего кто вышел из программы
Установил SACS.Planet.Nightly.140202.783 на сетевой диск. При работе двух пользователей метки сохраняются у того кто вышел из программы последний. При выходе первого выскакивает сообщение в трее: "windows - ошибка отложенной записи. Не удалось сохранить все данные файла \путь к файлу\MarksDB.sqlitedb-shm. Часть данных потеряна. Эта ошибка может быть вызвана отказом оборудования компьютера или сетевого подключения. Попытайтесь сохранить".
No tags attached.
related to 0002420closed vasketsov Сохранение меток в многопользовательском режиме 
Issue History
24-09-2014 06:52LeontiyNew Issue
24-09-2014 06:57zedNote Added: 0014673
24-09-2014 10:23LeontiyNote Added: 0014674
24-09-2014 18:33zedNote Added: 0014675
24-09-2014 22:46LeontiyNote Added: 0014676
24-11-2014 18:46vasketsovNote Added: 0014992
24-11-2014 18:48vasketsovNote Added: 0014993
24-11-2014 18:53vasketsovRelationship addedrelated to 0002420
24-11-2014 19:22zedNote Added: 0014996
24-11-2014 19:52vasketsovNote Added: 0014997
24-11-2014 19:56vasketsovNote Added: 0014998
16-04-2015 00:23vasketsovNote Added: 0015586
16-04-2015 00:23vasketsovStatusnew => closed
16-04-2015 00:24vasketsovAssigned To => vasketsov
16-04-2015 00:24vasketsovResolutionopen => won't fix

Notes
(0014673)
zed   
24-09-2014 06:57   
А потому что SQLite не предназначен для работы на сетевых дисках.
(0014674)
Leontiy   
24-09-2014 10:23   
Ясно! А в ближайшем будущем можно ожидать такой работы от SAS/SACS? Или имеется другой способ работы на сетевых дисках?
(0014675)
zed   
24-09-2014 18:33   
Кто ж его знает, что там будет в будущем и чего от него можно ожидать. Следите за ночнушками.
(0014676)
Leontiy   
24-09-2014 22:46   
Буду следить и ждать реализации! Спасибо за разъяснение.
(0014992)
vasketsov   
24-11-2014 18:46   
Напишите сюда, что именно у Вас в файлике MarksDB.sqlitedb.conn.sql содержится.

>SQLite не предназначен для работы на сетевых дисках
Ну, всё же не всё настолько плохо.
(0014993)
vasketsov   
24-11-2014 18:48   
Референсное содержимое должно быть такое:
PRAGMA page_size=1024
;
PRAGMA cache_size=100000
;
PRAGMA main.journal_mode=WAL
;
PRAGMA synchronous=NORMAL
;
(0014996)
zed   
24-11-2014 19:22   
> Ну, всё же не всё настолько плохо.

По крайней мере на виндах, всё плохо.

Atomic Commit In SQLite

9.1 Broken Locking Implementations

SQLite uses filesystem locks to make sure that only one process and database connection is trying to modify the database at a time. The filesystem locking mechanism is implemented in the VFS layer and is different for every operating system. SQLite depends on this implementation being correct. If something goes wrong and two or more processes are able to write the same database file at the same time, severe damage can result.

We have received reports of implementations of both Windows network filesystems and NFS in which locking was subtly broken. We can not verify these reports, but as locking is difficult to get right on a network filesystem we have no reason to doubt them. You are advised to avoid using SQLite on a network filesystem in the first place, since performance will be slow. But if you must use a network filesystem to store SQLite database files, consider using a secondary locking mechanism to prevent simultaneous writes to the same database even if the native filesystem locking mechanism malfunctions.

The versions of SQLite that come preinstalled on Apple Mac OS X computers contain a version of SQLite that has been extended to use alternative locking strategies that work on all network filesystems that Apple supports. These extensions used by Apple work great as long as all processes are accessing the database file in the same way. Unfortunately, the locking mechanisms do not exclude one another, so if one process is accessing a file using (for example) AFP locking and another process (perhaps on a different machine) is using dot-file locks, the two processes might collide because AFP locks do not exclude dot-file locks or vice versa.
(0014997)
vasketsov   
24-11-2014 19:52   
Читать надо тут:
http://sqlite.org/wal.html
Но в принципе ты прав, 100% работа не гарантируется.
Для настоящей многопользовательской работы надо в СУБД метки совать.
Но пока совсем не до этого.
(0014998)
vasketsov   
24-11-2014 19:56   
Попробуйте программу установить не на сетевой диск, а каждому локально.
После этого в ini пропишите пути до карт, меток и т.п., которые должны соответствовать общему сетевому диску.
Поработайте.
О результатах доложите.
(0015586)
vasketsov   
16-04-2015 00:23   
Пожалуй закрою, чтобы не висело.
Всё равно скоро метки в СУБД уедут.