OpenEdge 10.2A - Экран ошибок без другой информации, как ее решить? - PullRequest
0 голосов
/ 27 июня 2019

Мы используем Progress OpenEdge 10.2A в течение многих лет, и в течение последних 4 месяцев мы начинаем получать неизвестные сообщения об ошибках от наших клиентов.

Мы называем наши .w файлы, используя строки следующим образом:

RUN VALUE(myPath + "myProgram.r") PERSISTENT SET myPrograms[i].

Обычно одна и та же программа вызывает работу без каких-либо проблем, но в редких случаях окно программы кажется не отвечающим, но на самом деле, когда мы смотрим на панель задач Windows, на панели задач появляется другая запись, которая является prowin32.exe. окно с заголовком «Ошибка». Но при выборе, кажется, нет видимого окна, прикрепленного к нему.

Когда мы закрываем его с панели задач с помощью параметра «Закрыть окно», он снова появляется на панели задач 6-7 раз, а затем перезапускается весь сеанс prowin32.

Мы не смогли идентифицировать ошибку, поскольку она не показывает ни сообщения, ни номера ошибки.

Если вы столкнулись с такой проблемой, я хотел бы знать, как вы ее решили.

Если нет, то было бы полезно, если бы вы указали мне путь решения проблемы.

Taskbar

Task Manager

Редактировать 1: После добавления -errorstack -debugalert -clientlog myLogFile.log к моим параметрам запуска генерируется myLogFile.log. Приведенная ниже часть написана, когда произошла ошибка.

**Unable to realise TEXT myText. (4025)
** ABL Debug-Alert Stack Trace **
--> enable_UI c:\myFolder\myFile1.r (c:\myFolder\myFile1.r) at line 21014
    c:\myFolder\myFile1.r (c:\myFolder\myFile1.r) at line 14858
    USER-INTERFACE-TRIGGER c:\myFolder\myFile2.r (c:\myFolder\myFile2.r) at line 2905

1 Ответ

1 голос
/ 27 июня 2019

0) OpenEdge 10.2a является древним, устаревшим и не поддерживается. Вы должны были перейти на современный выпуск 10 лет назад. Как минимум вы должны быть на 10.2b08. Вы также отказываетесь обновлять Windows? OpenEdge 12 является текущей версией. Возможно, возможно, даже вероятно, что непредвиденные изменения в Windows или других аспектах среды вызывают вашу проблему. Прогресс никогда не собирается обновлять 10.2a, чтобы приспособиться к такого рода вещам. Вы просто продлеваете агонию, оставаясь на устаревшей версии.

1) Что изменилось в вашем коде или вашей среде 4 месяца назад?

2) Вы можете получить трассировку стека для дополнительного сеанса prowin32, запустив proGetStack. Это должно помочь объяснить, что было запущено, что это за ошибка и почему еще 6-7 запускаются после ее уничтожения. Откройте окно «proenv» как «Администратор» и запустите proGetStack (вы можете получить идентификатор процесса из taskmgr).

proenv>  proGetStack 123456

Трассировка стека появится в рабочем каталоге целевого процесса. Обычно это тот же каталог, в котором находится proenv, но вполне возможно, что приложение его изменит, так что вам, возможно, придется искать его. (Окна proenv администратора иногда не запускаются в% wrkdir%, вам также может понадобиться cd / d% wrkdir%)

3) Если их еще нет, вы должны добавить -debugalert и -errorstack к параметрам запуска вашего клиента. -clientlog logfileName.log также может быть полезным.

4) Проверьте вашу кодовую базу на наличие битов, которые вызывают подпроцессы prowin32. Есть много способов сделать это, таких как OS-COMMAND, INPUT THROUGH или через вызовы Windows DLL. Прямой вызов prowin32 может быть найден путем поиска этой строки, но это также могут быть косвенные вызовы через BAT-файл или другой метод.

5) если у вас есть повторяемый способ создания ошибки, вы также можете добавить тип записи журнала 4GLTrace либо при запуске, либо в коде, когда доберетесь до нужной точки: https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dpspr/log-entry-types-(-logentrytypes).html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...