Предотвратить автоматическое завершение неотвечающего устаревшего приложения ERP Server 2012R2

Справочная информация: устаревшее ERP-приложение FoxPro на 2012R2

У нас есть устаревшее ERP-приложение, которое нам нужно поддерживать еще 6 месяцев. Само приложение ERP было написано на FoxPro, прекращенном продукте Microsoft. Среда FoxPro является однопоточной по своей конструкции и не может быть расширена до многопоточной. Таким образом, любые программы, написанные на языке FoxPro, также будут однопоточными; ERP-приложение "подделывает" потоки, выполняя обработку для одного окна за раз, используя любое окно, имеющее фокус. Хотя мы можем модифицировать программное обеспечение (оно поставляется с исходным кодом), в настоящее время не существует и не будет способа безопасной многопоточности программы FoxPro, который является предлагаемым способом решения аналогичной проблемы в Stackoverflow. Это не проблема, которая может быть решена с помощью программирования.

Работать на 2008R2 не вариант

Приложение запускается при установке Server 2012r2 с использованием Citrix для служб терминалов; в то время как поставщик приложения ERP рекомендует запустить Server 2008/2008r2, запустить 2008 как

  1. мы не смогли обновиться по (долгим и запутанным) причинам, по которым я не могу
  2. Microsoft больше не продает активно 2008, и при этом нет уважаемого розничного продавца, где мы можем получить продукт. Поэтому мы вынуждены использовать эту среду.

Приложение не опубликовано, только рабочий стол.

Поведение ошибки

С этим фоном проблема проста: приложение случайно "вылетает", исчезая из сеанса пользователя. Диалога фатальной ошибки нет, нет сообщения о сбое, ничего нет. Это просто исчезает. Мне удалось проследить это до того, что приложение не отвечает в течение продолжительных периодов времени, что на самом деле нормально для FoxPro; когда вы выполняете большой запрос на языке, интерпретатор может перестать отвечать на десятки секунд. Видимо 2012R2 считает, что FoxPro потерпел крах в результате, и автоматически закрывает программу. Это нежелательное поведение, мы хотим, чтобы приложение выполняло свои долго выполняющиеся запросы и возобновляло нормальную работу.

Это предположение поддерживается (очищенными) записями журнала событий, такими как эта:

The program XXXX.exe version 0.0.0.0 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
 Process ID: 3810
 Start Time: 01d1c0d181b3e14e
 Termination Time: 4294967295
 Application Path: \\{server}\{ERP share}\{ERP install directory}\XXXX.exe
 Report Id: 1a2c27bb-2cd5-11e6-80f2-141877520cd8
 Faulting package full name: 
 Faulting package-relative application ID: 

Вопрос

Как заставить сервер 2012r2 автоматически НЕ закрывать устаревшее приложение за короткий промежуток времени, потому что оно выглядит "замороженным", когда оно просто занято?

Некоторые не совсем подходящие параметры реестра

Я нашел следующие записи в реестре, но ни одна из них, похоже, не относится к ситуации (если, конечно, одна из них на самом деле не делает, но MS снова не смогла полностью документировать это, не так, как раньше не было):

К вашему сведению, чтобы все понимали связанные с этим задержки, самый длинный запрос, который мне приходилось выполнять в FoxPro, составлял примерно 8 минут. Таким образом, какой бы ни был ответ, он должен учитывать возможность отсутствия ответа в течение 8 минут.

0 ответов

Другие вопросы по тегам