Страница 4 из 6

Сервер терминал

Добавлено: 24 Май 2017, 16:52
Yufil
Вроде бы в последних версиях можно хранить параметры в реестре.

А я делал свои реализации GetIni и PutIni, поскольку
- ini-файл может писаться в каталог, куда пользователю нет доступа
- ini-файл размером более 30К (может быть, и меньше) часто ломается
- ini-файл может засоряться пустыми секциями и значениями

Дополнительно вносил поправки в параметры GetIni, чтобы окошки не убегали за край экрана ...

Сервер терминал

Добавлено: 25 Май 2017, 13:33
Губин Игорь
Yufil писал(а): 24 Май 2017, 16:52А я делал свои реализации GetIni и PutIni, поскольку
В принципе, достаточно указать стандартным putini и getini свой файл. При этом надо учитывать, что данный файл не должен иметь расширение ini, во избежании всяческих блокировок службами безопасности виндов

Сервер терминал

Добавлено: 25 Май 2017, 13:56
kreator
Yufil писал(а): 24 Май 2017, 16:52- ini-файл может засоряться пустыми секциями и значениями
Наверно, вот это в основном. У SV в классе INIClass ошибка - не удаляет секции. Даже, если принудительно заставлять.

Сервер терминал

Добавлено: 25 Май 2017, 14:14
Yufil
В принципе, достаточно указать стандартным putini и getini свой файл.
А в приложении штук 40 DLL. И все пишут в win.ini :)
После подмены ini-файл реально находился внутри %APPDATA%, но унаследованный код программы вообще не менялся.
А конфигурация в текстовом файле вообще ненадёжна (и небезопасна), отсюда следующий шаг - хранить конфигурации в нетекстовом файле, например, в tps. Зашифрованном. Собственно, никаких проблем...
У SV в классе INIClass ошибка - не удаляет секции. Даже, если принудительно заставлять
Iniclass обращается к GetIni - Putini, там ничего нового. Скорее всего, дальше происходит обращение к WinAPI.

Сервер терминал

Добавлено: 25 Май 2017, 14:54
kreator
Yufil писал(а): 25 Май 2017, 14:14 Iniclass обращается к GetIni - Putini, там ничего нового. Скорее всего, дальше происходит обращение к WinAPI.
Скорее всего никому в мире в голову не приходило проверять работу класса (видимо, поэтому до сих пор SV ошибку не исправило). Я столкнулся с проблемой, поэтому в курсе. Объясняю.
Чтобы удалить в ini-файле строчку в секции, нужно послать команду:

Код: Выделить всё

PUTINI(Sector, Name, , Filename)
Надеемся, что putini удалит и секцию, где не останется ничего. А в INIClass есть метод Remove, который вызывает putini для удаления строчки. И есть метод Update, в котором стоит проверка на пустое значение параметра Value, но при этом нет вызова метода Remove. Получается, чтобы всё работало как надо, нужно сначала делать проверку на пустое значение, а потом вызывать либо Update либо Remove. Совершенно не уверен, что программисты SV так делают. Иначе я бы не нарвался на ошибку. В общем я добавил в метод Update вызов Remove.

Сервер терминал

Добавлено: 01 Июль 2017, 19:23
gopstop2007
Поднял тему, стал вести по файлам базы данных кларионовского приложения логи в tps. В обычном(не терминальном режиме) логи пишутся без проблем. Но вот в терминальном режиме проблемы. :(
Вхожу под админом на server 2012, запускаю программу вношу изменения в запись, есть лог.
При входе под пользователем на server 2012 через RDP(терминальный режим работы) в программу вношу изменения в запись, лога нет.
На сервере папки и файлы в которой находится программа и данные имеют полный доступ и все права для данной группы пользователей.
Но судя по всему чего то не хватает :)
Кто сталкивался, прошу помощи, спасибо заранее.
C10 ABC TPS

Сервер терминал

Добавлено: 01 Июль 2017, 20:09
finsoftrz
Под логами можно понимать что угодно... У меня лог - это tps-файл, который лежит отдельно от основной базы данных, там, где прописано в настройке. Могу предположить, что, если лог лежит отдельно от базы, то что-то с правами доступа к этому месту. Или некорректно определяется каталог лога. Вначале хорошо бы проконтролировать имя файла лога в процессе работы. И код ошибки после его открытия.

Сервер терминал

Добавлено: 01 Июль 2017, 20:14
RaFaeL
А он у тебя не в VirtualStore ли?

Сервер терминал

Добавлено: 01 Июль 2017, 22:09
gopstop2007
finsoftrz писал(а): 01 Июль 2017, 20:09 Под логами можно понимать что угодно... У меня лог - это tps-файл, который лежит отдельно от основной базы данных, там
Тоже самое только лежит вместе с данными, в одной папке.
RaFaeL писал(а): 01 Июль 2017, 20:14 А он у тебя не в VirtualStore ли?
Не совсем понятен вопрос, при подключении по RDP у меня запускается приложение, без рабочего стола сервера. На стороне сервера настроен запуск приложения так

Сервер терминал

Добавлено: 02 Июль 2017, 2:34
Admin
Т.е. данные - TPS файлы в папке программы. Лог TPS файл в той же папке.
При запуске программы вы ее нормально открываете, видите и редактируете данные а в лог ничего не пишется?
Смахивает на ерунду. Если в лог не добавляются записи почему нет ошибок?
Или вы пишете в лог без проверок ошибки добавления записи?

Сервер терминал

Добавлено: 02 Июль 2017, 9:08
gopstop2007
Разобрался, проблема была с переменными которые включали логирование. Заремил их - работает, чудеса.

Сервер терминал

Добавлено: 02 Июль 2017, 9:15
gopstop2007
Admin писал(а): 02 Июль 2017, 2:34 Или вы пишете в лог без проверок ошибки добавления записи?
Процесс в терминальном режиме даже не доходил до записи лога, поэтому ошибки и не было.

Сервер терминал

Добавлено: 14 Март 2019, 10:12
VWV
Добрый день!

После переноса приложения на терминальный сервер, задача стала тормозить при совместной работе.
Exe, ini и tps файлы расположены в одном каталоге. Режим работы share. Крыж Defer opening files until accessed снят.
Подскажите, можно ли что-то доработать в задаче, для снятия тормозов?
Сам, уже не знаю где и что читать :-(

Clarion 10 ABC TPS

Сервер терминал

Добавлено: 14 Март 2019, 10:25
Constantine
Можно попробовать следующее:
1. Перенести БД и приложения на SSD-диск с хорошими параметрами по Random Access.
2. Проверить, как работает сеть (нет ли "петель", "колец" и т.п.), померить пропускную способность и, если надо, оптимизировать.

Сервер терминал

Добавлено: 14 Март 2019, 10:31
VWV
Сложность в том, что клиент далеко. А задают вопросы по производительности потому, что когда один пользователь, то скорость работы их устраивает, тормоза возникают при совместной работе