"Залипание" Галактики
Модераторы: m0p3e, edward_K, Модераторы
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
"Залипание" Галактики
Коллеги, приветствую.
Обнаружил следующую проблемку с клиентским приложением Галактики, которую не знаю как побороть. В принципе она не сильно критично, но слишком напрягает, мешает и сбивает с толку. Возможно проблема не разрабовская, а админская, но решил все-таки запостить сюда.
Суть вот в чем.
1) Установлена Галактика 9.1 2х-звенка. С БД Pervasive SQL. Атлантис 5.5.21. Установлена Галка вручную (копированием EXE, настройкой путей вручную, ручной регистрацией компонент и т.п.). Ну в принципе, что есть - то есть, от этого никуда не деться: клиент работал самостоятельно.
2) Разработаны под нее ряд интерфейсов с выгрузкой в Excel определенных данных. Часть интерфейсов - запускается через присоединенки, часть - самостоятельные интерфейсы, запускаемые из Отчетов пользователя.
Так вот имеются две проблемы
Проблема РАЗ.
Сама Галактика при запуске "залипает" и всегда находится на первом плане на рабочем столе, переключение на другие приложения возможно, но они всегда находятся ПОД Галактикой. Доступ к приложению по сути можно получить только свернув Галактику.
Проблема ДВА
Разработанные интерфейсы имеют визуализацию длительных процессов (на момент поячеечной загрузки данных в Excel). В момент, когда в интерфейсе выбраны все нужные параметры, и происходит запуск собственно выгрузки с визуализацией отработки, происходит сначала "подвисание" Галки, а затем (убедился опытным путем) визуализация запускается, НО - ПОД главным окном Галактики. По сути пользователь видит "подвисшую" Галактику, не подозревая о том, что идут процессы формирования Excel-файлов. А они длительные - до 30-40 мин на формирование уходит.
С этим приходится бороться, уменьшив главное окно галки вполовину по ширине, чтобы хоть как-то видеть, что процесс не завис, а идет.
При этом попытки вывода мессаг внутри визуализации отрабатывают нормально - видны, как и нужно, на переднем плане.
Кстати, когда процесс отрабатывет и файл сформирован - Эксель загружается, но тоже "под" окном Галактики (см. первую проблему).
Если кто подскажет, как побороть, в первую очередь, ВТОРУЮ проблему - буду премного благодарен. К тому же чувствую что описанные 1 и 2 проблемки каким-то образом взаимосвязаны
Обнаружил следующую проблемку с клиентским приложением Галактики, которую не знаю как побороть. В принципе она не сильно критично, но слишком напрягает, мешает и сбивает с толку. Возможно проблема не разрабовская, а админская, но решил все-таки запостить сюда.
Суть вот в чем.
1) Установлена Галактика 9.1 2х-звенка. С БД Pervasive SQL. Атлантис 5.5.21. Установлена Галка вручную (копированием EXE, настройкой путей вручную, ручной регистрацией компонент и т.п.). Ну в принципе, что есть - то есть, от этого никуда не деться: клиент работал самостоятельно.
2) Разработаны под нее ряд интерфейсов с выгрузкой в Excel определенных данных. Часть интерфейсов - запускается через присоединенки, часть - самостоятельные интерфейсы, запускаемые из Отчетов пользователя.
Так вот имеются две проблемы
Проблема РАЗ.
Сама Галактика при запуске "залипает" и всегда находится на первом плане на рабочем столе, переключение на другие приложения возможно, но они всегда находятся ПОД Галактикой. Доступ к приложению по сути можно получить только свернув Галактику.
Проблема ДВА
Разработанные интерфейсы имеют визуализацию длительных процессов (на момент поячеечной загрузки данных в Excel). В момент, когда в интерфейсе выбраны все нужные параметры, и происходит запуск собственно выгрузки с визуализацией отработки, происходит сначала "подвисание" Галки, а затем (убедился опытным путем) визуализация запускается, НО - ПОД главным окном Галактики. По сути пользователь видит "подвисшую" Галактику, не подозревая о том, что идут процессы формирования Excel-файлов. А они длительные - до 30-40 мин на формирование уходит.
С этим приходится бороться, уменьшив главное окно галки вполовину по ширине, чтобы хоть как-то видеть, что процесс не завис, а идет.
При этом попытки вывода мессаг внутри визуализации отрабатывают нормально - видны, как и нужно, на переднем плане.
Кстати, когда процесс отрабатывет и файл сформирован - Эксель загружается, но тоже "под" окном Галактики (см. первую проблему).
Если кто подскажет, как побороть, в первую очередь, ВТОРУЮ проблему - буду премного благодарен. К тому же чувствую что описанные 1 и 2 проблемки каким-то образом взаимосвязаны
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: "Залипание" Галактики
1.Стартовое окно можно как то погасить в cfg. сам не делал, но наблюдал 2 варианта запуска - в одном после запуска галка пропадает до тех пор пока окно с паролем не появиться, в другом(там NT авторизация) появляется окно с заставкой и там отображаются все процессы, в том числе и по загрузке сохраненных интерфейсов. Хотя может дело в серверах
Как правило долгий запуск говорит о проблеме с ключем или с СУБД или там и там. Smb2 то вырублен? Эта рекомендация есть в доке.
2. LogStrToFile вам в помощь. С выводом даты и времени
Очень часто проблемы возникают еще до срабатывания cmInit - это говорит либо о долгой загрузке переменных объектов, объявленных не через ObjInterface(но лучше использовать так , а не через LoadInterFace- все равно время потеряете, но потом) - возможно от каких то следует отказаться.
либо о кривом запросе - очень долго подбирает данные. Не хорошо юзать жесткие подцепки и подусловия на уровнях ниже 2(с потолка, но сталкивался что на 3 все виснет) - лучше потом в цикле это отработать. Condition это вообще зло - лучше прописать условие в (( .. and () )). Опять же следует избегать таблиц без подцепок или большого их числа - лучше написать объекты или сделать еще несколько вьюх(вроде они не будут грузиться, пока к ним не обратитесь). Сложные вычисления лучше кэшировать(мне не лень подкэшировать и обращение к справочникам во временную таблицу)
А еще лучше собрать на DSQL.
Насчет Excel - а стандартные отчеты также себя ведут или нет?
Если нет, значит вы чего то не так запускается - чем вы Excel открываете?
Я предпочитаю XlRes := xlCreateNewExcelWithTemplate(wstr, True);
У меня написан свой набор функций, так что изменить одно на другое не долго сразу для всех отчетов.
Также возможно у вас проблема с принтерами(офис не любит, когда проблемы с принтером по умолчанию) или с сетью.
Да и 30-40 минут это долго - матричный вывод используете?
Как правило долгий запуск говорит о проблеме с ключем или с СУБД или там и там. Smb2 то вырублен? Эта рекомендация есть в доке.
2. LogStrToFile вам в помощь. С выводом даты и времени
Код: Выделить всё
var
TimeLog_File:string;
TimeLog_Time:time;
Procedure TimeLog( const wStr :string ) ;
{
if TimeLog_File=''
{ TimeLog_File:=GetStringParameter('Files','OutputFilesDirectory',0)
+'!TimeLog.log'
}
if(wStr='START' and FileExist(TimeLog_File)) DeleteFile(TimeLog_File)
LogStrTofile(TimeLog_File,DateToStr(Cur_Date,'дата DD/MM/YYYY')+
TimeToStr(Cur_Time,' тек.вр HH:MM:SS:SSS')+
TimeToStr(sub_time(Cur_Time,TimeLog_Time),' - пред.этап = HH:MM:SS:SSS')+
' '+wStr) ;
TimeLog_Time:=Cur_Time ;
}
либо о кривом запросе - очень долго подбирает данные. Не хорошо юзать жесткие подцепки и подусловия на уровнях ниже 2(с потолка, но сталкивался что на 3 все виснет) - лучше потом в цикле это отработать. Condition это вообще зло - лучше прописать условие в (( .. and () )). Опять же следует избегать таблиц без подцепок или большого их числа - лучше написать объекты или сделать еще несколько вьюх(вроде они не будут грузиться, пока к ним не обратитесь). Сложные вычисления лучше кэшировать(мне не лень подкэшировать и обращение к справочникам во временную таблицу)
А еще лучше собрать на DSQL.
Насчет Excel - а стандартные отчеты также себя ведут или нет?
Если нет, значит вы чего то не так запускается - чем вы Excel открываете?
Я предпочитаю XlRes := xlCreateNewExcelWithTemplate(wstr, True);
У меня написан свой набор функций, так что изменить одно на другое не долго сразу для всех отчетов.
Также возможно у вас проблема с принтерами(офис не любит, когда проблемы с принтером по умолчанию) или с сетью.
Да и 30-40 минут это долго - матричный вывод используете?
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
Эдуард, спасибо за комменты
Теперь по порядку
1. Длительность отработки - не критичный параметр абсолютно, но я абсолютно уверен в том ,что связан в первую очередь с тем, что
- для 9.1 используется Pervasive SQL, а сам объем данных достаточно большой (специально делал клон базы с конвертацией на MS SQL - тестил свои отчеты - все выполняется в 5-10 раз быстрее)
- используеся не матричный, а поячеечный вывод (но не критично, т.к. тестил с матричным, видимого прироста в скорости не получил)
- в логической таблице интерфейса явно не прописывал, т.к. максимум что юзается - 2-3 временных таблицы, куда складываю данные + 3-4 справочника (физ.таблы), на записи которых просто через GetFirstFastRow прыгаю. Conditions не юзаю, хватает Bounds. Для открытия юзаю xlOpenWorkBook (sFileName) где sFileName - предварительно подготвленнный файл с шапкой (естественно копия, перед открытием он копируется в рабочий каталог из EXE\XLS).
2. Повторюсь, что главная проблема - это то, что визуализация происходит ПОД основным окном Галки, а сама Галка - всегда alwaysOnTop, основное окно - всегда в фокусе ((( и переключиться на визуализацию возможно только если Галка занимает часть окна и хоть кусок визуализационного окна виден и на него можно просто мышью кликнуть и вытащить на свободное место...
Дополнительно по ОС, на которой стоит Галка:
- работаю с ноута через TeamViewer c тестовой галкой, установленной на машинке с Windows Server 2008 R2 Ent SP1, 64-разрядная, 64 ГБ оперативы. Естественно сама галка и БД - физически лежат в одном месте.
Теперь по порядку
1. Длительность отработки - не критичный параметр абсолютно, но я абсолютно уверен в том ,что связан в первую очередь с тем, что
- для 9.1 используется Pervasive SQL, а сам объем данных достаточно большой (специально делал клон базы с конвертацией на MS SQL - тестил свои отчеты - все выполняется в 5-10 раз быстрее)
- используеся не матричный, а поячеечный вывод (но не критично, т.к. тестил с матричным, видимого прироста в скорости не получил)
- в логической таблице интерфейса явно не прописывал, т.к. максимум что юзается - 2-3 временных таблицы, куда складываю данные + 3-4 справочника (физ.таблы), на записи которых просто через GetFirstFastRow прыгаю. Conditions не юзаю, хватает Bounds. Для открытия юзаю xlOpenWorkBook (sFileName) где sFileName - предварительно подготвленнный файл с шапкой (естественно копия, перед открытием он копируется в рабочий каталог из EXE\XLS).
2. Повторюсь, что главная проблема - это то, что визуализация происходит ПОД основным окном Галки, а сама Галка - всегда alwaysOnTop, основное окно - всегда в фокусе ((( и переключиться на визуализацию возможно только если Галка занимает часть окна и хоть кусок визуализационного окна виден и на него можно просто мышью кликнуть и вытащить на свободное место...
Дополнительно по ОС, на которой стоит Галка:
- работаю с ноута через TeamViewer c тестовой галкой, установленной на машинке с Windows Server 2008 R2 Ent SP1, 64-разрядная, 64 ГБ оперативы. Естественно сама галка и БД - физически лежат в одном месте.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: "Залипание" Галактики
1. у первасива есть неприятность, когда файлы разбиваются на несколько кусков после 2 гигов и после этого начинаются тормоза. Начиная с 9.5 сие можно отключить, но аккуратно. Скорей всего придется все выгрузить в dbf, грохнуть таблицы, переключить настройки и загрузить обратно. И вроде у него есть свой конвертор - давно уже не юзаю
2. Там не менее когда то была базка в 25 гигов, и она более менее крутилась.
3. Попробуйте все таки xlCreateNewExcelWithTemplate или xlOpenNewExcel(True) + xlOpenWorkBook(wstr) - в отличии от той, создается новый экземпляр Excel и в уже открытых файлах можно продолжать работать.
4. Getfirst не самый быстрый путь. Иногда шустрее сразу набить времянку без фильтров - получается раза в 2 быстрее. И все таблы должны все таки быть с условиями во view. Была как то мелочь -убрал неипользуемый синоним StErr(а там записей пара лимонов) и фейс стал грузиться вместо 2 минут минуту(ну там еще выборка по дереву шла). Еще была история про подвисание актов - оказалось на локал выгружался весь TTNDOC - так что не пренебрегайте сим.
5. Матричный вывод дает ускорение раз в 100, при условии что не юзается сложного форматирования
6. И все таки Logstrtofile - см. мою функцию.
2. Там не менее когда то была базка в 25 гигов, и она более менее крутилась.
3. Попробуйте все таки xlCreateNewExcelWithTemplate или xlOpenNewExcel(True) + xlOpenWorkBook(wstr) - в отличии от той, создается новый экземпляр Excel и в уже открытых файлах можно продолжать работать.
4. Getfirst не самый быстрый путь. Иногда шустрее сразу набить времянку без фильтров - получается раза в 2 быстрее. И все таблы должны все таки быть с условиями во view. Была как то мелочь -убрал неипользуемый синоним StErr(а там записей пара лимонов) и фейс стал грузиться вместо 2 минут минуту(ну там еще выборка по дереву шла). Еще была история про подвисание актов - оказалось на локал выгружался весь TTNDOC - так что не пренебрегайте сим.
5. Матричный вывод дает ускорение раз в 100, при условии что не юзается сложного форматирования
6. И все таки Logstrtofile - см. мою функцию.
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
1. Собственно, заморачиваться с конвертацией БД смысла нет - клиент с Галки уходит на 1С, посему все мои интерфейсы - экспорт данных, которые будут юзать внедренцы 1С при выгрузке данных.
2. С точки зрения скорости - процесс некритичен - работает и нехай работает Заказчика это устраивает. Хотя к сведению принял советы и по Экселю и по логическим таблицам.
3. Проблема с "залипнувшей" Галкой так и не решилась. Кстати стандартные ёкселевские отчеты также выполняются с визуализацией под главным окном галки... неприятно весьма... пока как временное решение, перед собственно запуском процесса, который выгружает данные, уменьшаю размер главного окна раза в 3 и утаскиваю в правыую или левую сторону, дабы когда окно визуализации появится, его можно было вытащить на свободное место Изврат конечно, но решения я пока не вижу... )))
2. С точки зрения скорости - процесс некритичен - работает и нехай работает Заказчика это устраивает. Хотя к сведению принял советы и по Экселю и по логическим таблицам.
3. Проблема с "залипнувшей" Галкой так и не решилась. Кстати стандартные ёкселевские отчеты также выполняются с визуализацией под главным окном галки... неприятно весьма... пока как временное решение, перед собственно запуском процесса, который выгружает данные, уменьшаю размер главного окна раза в 3 и утаскиваю в правыую или левую сторону, дабы когда окно визуализации появится, его можно было вытащить на свободное место Изврат конечно, но решения я пока не вижу... )))
-
- Местный житель
- Сообщения: 1044
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Иркутская область
Re: "Залипание" Галактики
А "залипание" на любом компе происходит? Может кто-то побаловался и установил такую программку?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: "Залипание" Галактики
Поиграйтесь с
System.VisualType
Windows.FastVisual - вроде было нечто подобное на 712 - пришлось в False поставить.
И ниже от VisualBarLength
System.VisualType
Windows.FastVisual - вроде было нечто подобное на 712 - пришлось в False поставить.
И ниже от VisualBarLength
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
2 Мария
Протестить на других компах пока возможности нет - я удаленно разрабатываю, доступ к Галке имею только через TeamVewer. Грешил сначала на него, но другие приложения из-под него работают штатно, даже Support - нормально уходят в фон и на другой уровень...
Как передам разработку внедренцам - они уже непосредственно с рабочих мест и понаблюдают.
Шаловливых программок никаких не стоит
2 Эдуард
Игрался этими параметрами. Не помогло. Они отвечают как раз за саму визуализацию - отображать ее вообще или нет, устанавливают на уровне ядра шаг перерисовки и т.п.
Протестить на других компах пока возможности нет - я удаленно разрабатываю, доступ к Галке имею только через TeamVewer. Грешил сначала на него, но другие приложения из-под него работают штатно, даже Support - нормально уходят в фон и на другой уровень...
Как передам разработку внедренцам - они уже непосредственно с рабочих мест и понаблюдают.
Шаловливых программок никаких не стоит
2 Эдуард
Игрался этими параметрами. Не помогло. Они отвечают как раз за саму визуализацию - отображать ее вообще или нет, устанавливают на уровне ядра шаг перерисовки и т.п.
Re: "Залипание" Галактики
В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
Миш, пробовал - это первым делом поюзал ))).LaaLaa писал(а):В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Ситуация одинакова что с включенным, что с выключенным пунктом - единственное отличие, что сам тулбар ведет себя либо "всегда в фокусе", либо как обычно - уходит на задний план при перекрытии окном др. приложения
Re: "Залипание" Галактики
регулярно наблюдаю аналогичное поведение визуализации в support'е при расчете прав пользователя. Проявляется не всегда, а примерно в 70% случаев. Не смог понять от чего это зависит. Есть смутное подозрение (но не уверенность), что такая беда с визуализацией появилась после перехода на 5.5.21, на 5.5.20 не припоминаю ничего такого.
субд оракл, win7 x64.
субд оракл, win7 x64.
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
Ну у меня саппорт себя нормально ведет, правда там стоит 5.5.14 или 17 (точно не помню), но точно не 21. А в Галке часть компонент точно собрана на 5.5.21 и как раз у Галки проблемка с визуализацие и проявляется...
Re: "Залипание" Галактики
Да не в том тулбаре. Не тот который с кнопками модулей. А тот который в сновном окне галакьтики. Там правой копкой мышки есть пункт " По верх всех окон"Maverick писал(а):Миш, пробовал - это первым делом поюзал ))).LaaLaa писал(а):В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Ситуация одинакова что с включенным, что с выключенным пунктом - единственное отличие, что сам тулбар ведет себя либо "всегда в фокусе", либо как обычно - уходит на задний план при перекрытии окном др. приложения
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: "Залипание" Галактики
Оппа... "а слона то я и не заметил". Честно говоря, даже не знал что и там такая кнопа есть... Как-то не обращал внимания на это...LaaLaa писал(а):
Да не в том тулбаре. Не тот который с кнопками модулей. А тот который в сновном окне галакьтики. Там правой копкой мышки есть пункт " По верх всех окон"
Миш, спасибо, попробую завтра с утреца поюзать ее...
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: "Залипание" Галактики
Проверял этот параметр - выключен.LaaLaa писал(а):В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Тоже очень часто Галактика после запуска решает что она "главная" и выскакивает поверх остальных окон. Как это отключить, не знаем.
Второй вопрос: в сформированном отчёте FastReport жмём контрл Ф - вводим строчку - ничего не находим и окно, с сообщением что "Текст не найден" наоборот не появляется посреди экрана... хотя внизу в линейке задач вижу, что окно есть, жму мышкой - вот оно. При чём иногда окно появляется как надо, сразу сверху! Закономерности поведения так и не выяснили, что дико раздражает, особенно если пользователи в Терминальных режимах работают... некоторые на перезагрузку уходят, т.к. не могут найти это окно