Impede o Server 2012R2 de encerrar automaticamente o aplicativo ERP legado que não responde

1

Background: aplicativo ERP herdado do FoxPro em 2012R2

Temos um aplicativo de ERP legado que precisamos manter por mais 6 meses. O aplicativo ERP foi escrito em FoxPro, um produto Microsoft descontinuado. O ambiente FoxPro é single-threaded por design e não pode ser estendido para ser multi-threaded. Por extensão, qualquer programa escrito no idioma do FoxPro também será inerentemente single-threaded; o aplicativo de ERP "falsifica" a segmentação, fazendo o processamento de uma única janela por vez, usando qualquer janela que tenha o foco. Embora possamos modificar o software (ele vem com o código-fonte) não existe agora nem nunca haverá um método para multithreading com segurança de um programa FoxPro,

Correndo em 2008R2 não é uma opção

O aplicativo está sendo executado em uma instalação do Server 2012r2 usando Citrix para serviços de terminal; enquanto o fornecedor do aplicativo ERP recomenda a execução do Server 2008 / 2008r2, não é possível executar 2008 como

  1. não foi possível atualizar por motivos (longos e complicados) pelos quais não posso entrar e
  2. A Microsoft não vende mais ativamente 2008, nem há um varejista respeitável onde possamos obter o produto. Então, somos forçados a usar esse ambiente.

O aplicativo não é publicado, apenas a área de trabalho.

Comportamento de erro

Com esse pano de fundo fora do caminho, o problema é simples: o aplicativo está "desconectando" aleatoriamente, desaparecendo da sessão do usuário. Não há diálogo de erro fatal, não há mensagem de falha, não há nada. Ele simplesmente desaparece. Eu consegui rastrear isso para o aplicativo não responder por longos períodos de tempo, que para o FoxPro é realmente normal; Quando você executa uma consulta grande no idioma, o interpretador pode parar de responder por dezenas de segundos. Aparentemente 2012R2 acredita que o FoxPro caiu como resultado e fecha automaticamente o programa. Este não é um comportamento desejado, queremos que o aplicativo complete suas consultas de longa duração e retome a operação normal.

Essa suposição é suportada por entradas de log de eventos (sanitizadas) como esta:

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: 

A questão

Como podemos obter o Servidor 2012r2 para NÃO fechar automaticamente um aplicativo legado em um curto período de tempo porque ele parece estar "congelado" quando está ocupado?

Algumas opções de registro não são completamente adequadas

Encontrei as seguintes entradas do registro, mas nenhuma delas parece se aplicar à situação (a menos que, é claro, uma delas realmente funcione, mas a MS mais uma vez falhou em documentá-la completamente, não como se isso não tivesse acontecido antes ):

FYI, só para que todos entendam os atrasos envolvidos, a consulta mais longa que tive que executar no FoxPro foi de aproximadamente 8 minutos. Portanto, seja qual for a resposta, deve acomodar a possibilidade de nenhuma resposta por até 8 minutos.

    
por Avery Payne 06.06.2016 / 21:43

0 respostas