Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Проблема с отчетами. Процесс не может получить доступ к файлу "...(xxx).recview"  (Прочитано 1836 раз)

karpeka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Добрый день.
Столкнулся с проблемой при открытии отчета в клиенте.
Отчет создается и открывается скриптом вида:
Код: (delphi)
procedure RLCustomReport(reportTemplate: string);
var
  aReport: TM_Report;
  aPeriod: Integer;

begin
  (* Ограничиваем период *)
  aPeriod := _ReportDTPeriod.Value;
  if (aPeriod < 900) and (aPeriod <> -1) then  //Исключение (-1) - это выборка за месяц
    begin
      aPeriod := 900; // Минимум 15 мин в сек
      _ReportDTPeriod.Value := aPeriod;
    end;

  (* Строим отчет *)
  aReport := ReportBuild(reportTemplate);
  AddMessage(Now, mkMessage, "Создание произвольного отчета." +
            " Начало: " + DateTimeToStr(_ReportDTStart.AsDateTime) +
            " Конец: " + DateTimeToStr(_ReportDTEnd.AsDateTime) +
            " Период: " + IntToStr(_ReportDTPeriod.Value) +
            " Шаблон: " + reportTemplate, False, False);

  (* Открываем отчет для просмотра на клиенте *)
  aReport.View(GetClientName);
end;

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

Цитировать
15.11.2024 11:09:46.185 | Error while read file "D:\Simple-Scada 2\Received\15.11.2024 11.09.46 (178).recview". Процесс не может получить доступ к файлу "D:\Simple-Scada 2\Received\15.11.2024 11.09.46 (178).recview", так как этот файл используется другим процессом.
15.11.2024 11:09:54.318 | Error while read file "D:\Simple-Scada 2\Received\15.11.2024 11.09.54 (308).recview". Процесс не может получить доступ к файлу "D:\Simple-Scada 2\Received\15.11.2024 11.09.54 (308).recview", так как этот файл используется другим процессом.
15.11.2024 11:10:13.550 | Error while read file "D:\Simple-Scada 2\Received\15.11.2024 11.10.13 (538).recview". Процесс не может получить доступ к файлу "D:\Simple-Scada 2\Received\15.11.2024 11.10.13 (538).recview", так как этот файл используется другим процессом.
15.11.2024 11:10:15.453 | Error while read file "D:\Simple-Scada 2\Received\15.11.2024 11.10.15 (447).recview". Процесс не может получить доступ к файлу "D:\Simple-Scada 2\Received\15.11.2024 11.10.15 (447).recview", так как этот файл используется другим процессом.

После продолжительного времени ожидания (около минуты). 
Повторно создаем отчет, отчет открывается в клиенте. Тут все ОК.

Версия Simple-Scada v2.6.14.0.
У пользователя Windows тип учетной записи "ограниченный пользователь" (не админская учетка).
Редактор отчетов во время создания отчетов закрыт. Хотя до этого был открыт.
Просмотрщик отчетов закрыт.

Как я понимаю, процесс просмотрщика отчетов не успевает закрыться/выгрузиться из памяти windows перед повторным открытием отчетов?
Хочу понять, так должно быть или нет?
Я понимаю, что отчеты в здравом уме никто не будет создавать каждые 10 сек.
« Изменён: 16 Ноября 2024, 17:17:14 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.

В Simple-Scada нет ограничений на частоту построения и просмотра отчетов. Только что перепроверили на нескольких ПК с построением каждую секунду, работает корректно.
1. У Вас на ПК запущен один экземпляр клиента (Client.exe)? Убедитесь, что клиент не запущен под другими пользователями ОС;
2. Сервер установлен под другой учетной записью, или под той же, что и клиент? Установлен как служба, или как обычное приложение?
3. В папке "D:\Simple-Scada 2\Received\" сейчас нет файлов с расширением ".recview"?

karpeka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Цитировать
1. У Вас на ПК запущен один экземпляр клиента (Client.exe)? Убедитесь, что клиент не запущен под другими пользователями ОС;
Запущен один клиент в режиме эмуляции с подключением к реальному оборудованию и среда разработки. Завтра попробую в обычном режиме из клиента по создавать.
Все запущено под одним пользователем. Забыл скриншоты на объекте. Позже постараюсь прикрепить.

Цитировать
2. Сервер установлен под другой учетной записью, или под той же, что и клиент? Установлен как служба, или как обычное приложение?
Сервер установлен, как обычное приложение. Хотя изначально устанавливал, как службу. Потом переустановил на обычное приложение, из-за OPC сервера, который не может работать как служба.

Цитировать
3. В папке "D:\Simple-Scada 2\Received\" сейчас нет файлов с расширением ".recview"?
Таких файлов нету.
Но в папке "D:\Simple-Scada 2\Received\BTEC" появляются файлы вида "doneRepXXX.mdc", когда формируется расширенный (на 31 параметр) суточный отчет. Интервал 1 час.
Еще заметил, что когда формируется сокращенный (на 11 параметров) суточный отчет, то такого файла нету. И с ним исходная проблема проявляется гораздо реже.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Внесли изменения в обновление 2.6.15.0. После обновления удаётся повторить проблему?