SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001023SAS.Планета[All Projects] Багpublic26-10-2011 13:5610-10-2012 11:43
ReporterGarl 
Assigned Tovdemidov 
PriorityurgentSeveritymajorReproducibilitysometimes
StatusclosedResolutionfixed 
PlatformWindowsOS7OS VersionProfessional
Product Version110418 
Target Version120808Fixed in Version120808 
Summary0001023: При одновременном запуске двух копий программы удаляются все метки
Descriptionпо пунктам:
1) из quicklaunch запускается по двойному клику 2 копии программы.

естественно файл с метками огромный и машина загружена конвертированием и файловыми операциями по самые гланды
обе копии запускаются крайне медленно порядка 10-15 секунд
в иотоге запускаются обе

2) закрываем первую копию. открываем во второй копии параметры меток и видим что метки исчезли..

и вот тут одно но:

файл с метками пока не закрыть программу , всё ещё содержит данные, а как только мы программу закрываем, она перезаписывает метки!
Additional Informationпредложение или задавать вопрос при закрытии программы с пустыми метками и наличием "набитого" marks.sml
или не перезаписывать его(что неправильно)
или создавать что нибудь типа .loc файла на время монопольной работы с файлом меток
или не давать запускать вторую копию программы из одного и того же места с одним и тем же названием .exe

предложения рассматриваются.
подтверждения бага ожидаются.
Tagsдоступ
Attached Files

- Relationships

-  Notes
(0004185)
bk99 (reporter)
26-10-2011 14:51

Во ты попал!
И что - все свои метки похерил?!
Сочувствую!

Примерил ситуёвину на себя и содрогнулся!
(Проверить не решился)
(0004186)
Garl (manager)
26-10-2011 15:55

это уже воспроизведение бага к которому был готов.
ситуацию спасло то что метку были заблаговременно скопированы на домашний комп.
(0004187)
zed (manager)
26-10-2011 16:42

>не давать запускать вторую копию программы
Сделать в виде опции, включённой по умолчанию. Причём, не просто с одним и тем же именем exe или одной и той же папки, а глобально: http://www.delphisources.ru/pages/faq/base/only_one_app_instance2.html
(0004188)
Garl (manager)
26-10-2011 16:54
edited on: 26-10-2011 17:15

глобально не сильно вариант. очень часто нужно 2-3 копии запущенных их разных мест
да и разные версии с разным именем живут в одной папке и юзают один кэш.

(0004189)
Fetser (reporter)
26-10-2011 17:11

Совершенно верно метки удаляются если две копии закрывать в том же порядке что и запускаешь. Если сначала закрыть вторую копию потом первую метки остаются и такая неприятность только в последней ночной сборке.
в версии 111022.4467 всё нормально
(0004190)
vasketsov (manager)
26-10-2011 17:36

А какие именно операции при запуске программы требуют монопольный доступ к меткам и почему? Налицо два читателя меток, которые по идее не должны друг другу гадить. Мало ли какое приложение ещё захочет вычитать из-под саса метки.
(0004191)
Garl (manager)
26-10-2011 17:54

ну по идее пока одна читает(считай монопольно) вторая не дожидается файла с метками и думает что меток нету. закрываем первую (с метками) она записывает свои метки, закрываем вторую (без меток) и нате получите!
вот тут бы проверка на занятость фала бы не помешала.
(0004192)
vasketsov (manager)
26-10-2011 19:32

>читает(считай монопольно)
не вижу логики в монопольном чтении меток при старте программы

>проверка на занятость фала бы не помешала
ну в общем случае конечно не помешала бы, но это как бы уже немного другой вопрос (не вторичный, не первичный, а просто ортогональный ненужной блокировке меток от параллельного чтения)
(0004193)
Tolik (manager)
27-10-2011 06:37

Надо запрещать запуск двух программ (даже с разным именем) из одной папки, а из разных папок запрещать не надо.
(0004194)
Snake (reporter)
27-10-2011 06:57

Одновременное использование файла с метками может произвести к путанице.
Например две программы №1 и №2 прочитали файл с метками.
Далее в программе №1 добавили метку, после чего закрываем программу №1 и она сохраняет "свои" метки, а программа №2 об добавленой метке ничего не знает и при закрытии перезапишет файл "своими" метками. Таким образом добавленая метка пропала.
А если добавлялись и удалялись метки в обоих программах, то вообще кошмар.
Тут на мой взгляд нужно:
1.либо существенно усложнять программу, назначать главную копию программы (сервер) и она будет обрабатывать сообщения об добавлении/удалении/изменении метки и предавать информацию в другие копии программы (клиенты).(усложнение это всегда новые ошибки, а иногда переписывание огромной части программы, что в свою очередь опять приводит к новым ошибкам)
2.либо все изменения сохранять в дополнительный временный файл котрый будет доступен всем копиям, а копия программы которая будет закрыта последней "решает", какие изменения записать в конечный файл.(тоже достаточное усложнение)
3.либо первая программа имеет полный доступ к метка, а все копии только чтение. (самый простой вариант), только решить вопрос с проверкой на занятость файла и дождатся пока освободится.
(0004196)
zed (manager)
27-10-2011 07:00

4. Либо хранить метки в базе данных, поддерживающей многопользовательский доступ к меткам.
(0004203)
Tolik (manager)
27-10-2011 08:08

№3 вполне достаточно.
(0004204)
Garl (manager)
27-10-2011 08:33

4 интереснее.
(0004205)
vdemidov (manager)
27-10-2011 08:38

>4 интереснее.
И какой сервер баз данных ставить пользователю? Вообще подсистему меток нужно выносить в плагины. Я в последнее много делал в этом направлении, но пока далеко не все что нужно для этого.
(0004207)
zed (manager)
27-10-2011 11:51
edited on: 27-10-2011 11:52

>сервер баз данных
Если метки в сети и это некая корпоративная сеть, то однозначно MySQL, если просто нужно запускать несколько копий на одном компе, то можно и без сервера - BerkeleyDB. Кстати, начал эту берклевскую базу подробнее изучать и буду наверное пробовать делать кэш на ней.
 
>Вообще подсистему меток нужно выносить в плагины
Да, это лучше всего, так же как и подсистему кэша с подсистемой качалки :)

(0004208)
Fetser (reporter)
27-10-2011 12:23

После реализации хотелки 0000033 (Загрузка меток через командную строку) Возможно хранение меток в виде файлов KMZ сортируя их по папкам. Конечно при возможности импорта сразу нескольких KMZ одновременно. Тогда необходимость в самой базе меток становится не так актуальна.
Выигрыш и в скорости работы с метками и в многопользовательском доступе (если разные пользователи одновременно работают с разными KMZ они не мешают друг другу.)вероятность одновременного сохранения KMZ с одним именем снижается в разы.

- Users who viewed this issue
User List Anonymous (2528x), hrucker (1x)
Total Views 2529
Last View 20-04-2024 13:46

- Issue History
Date Modified Username Field Change
26-10-2011 13:56 Garl New Issue
26-10-2011 14:51 bk99 Note Added: 0004185
26-10-2011 15:55 Garl Note Added: 0004186
26-10-2011 16:42 zed Note Added: 0004187
26-10-2011 16:54 Garl Note Added: 0004188
26-10-2011 17:11 Fetser Note Added: 0004189
26-10-2011 17:15 Garl Note Edited: 0004188 View Revisions
26-10-2011 17:36 vasketsov Note Added: 0004190
26-10-2011 17:54 Garl Note Added: 0004191
26-10-2011 19:32 vasketsov Note Added: 0004192
27-10-2011 06:37 Tolik Note Added: 0004193
27-10-2011 06:57 Snake Note Added: 0004194
27-10-2011 07:00 zed Note Added: 0004196
27-10-2011 08:08 Tolik Note Added: 0004203
27-10-2011 08:33 Garl Note Added: 0004204
27-10-2011 08:38 vdemidov Note Added: 0004205
27-10-2011 11:51 zed Note Added: 0004207
27-10-2011 11:52 zed Note Edited: 0004207 View Revisions
27-10-2011 12:23 Fetser Note Added: 0004208
29-10-2011 08:28 gpsMax Summary при одновременном запуске двух копий программы удаляются все метки => При одновременном запуске двух копий программы удаляются все метки
29-10-2011 08:33 gpsMax Additional Information Updated View Revisions
28-06-2012 22:09 vdemidov Status new => resolved
28-06-2012 22:09 vdemidov Fixed in Version => 120808
28-06-2012 22:09 vdemidov Resolution open => fixed
28-06-2012 22:09 vdemidov Assigned To => vdemidov
28-06-2012 22:10 vdemidov Product Version .Nightly => 110418
28-06-2012 22:10 vdemidov Target Version => 120808
07-07-2012 11:56 gpsMax Tag Attached: доступ
10-10-2012 11:43 Tolik Status resolved => closed



Copyright © 2007 - 2024 SAS.Planet Team