Citrix: избегайте приложения "Не отвечает" - PullRequest
0 голосов
/ 31 августа 2018

Мы сталкиваемся с проблемой с нашим приложением, если оно выполняется в среде Citrix. Приложение представляет собой клиент-серверное приложение, разработанное в Delphi и .NET. База данных в бэкэнде - Oracle. Многие клиенты имеют приложение, работающее в среде Citrix / Terminal Server. В общем то работает. Теперь проблема:

Некоторые из них получают большое количество окон "Не отвечает" в сочетании с замерзающим белым экраном. Насколько я понимаю, это делается автоматически окнами в случае, если приложение больше не реагирует на цикл сообщений (в данное время). Обычно это происходит в том случае, если выполняется длительная операция с базой данных или если какая-то операция пользовательского интерфейса занимает больше времени. Значение по умолчанию здесь 5s (hungapptimeout).

Чтобы избежать «не отвечающих» и зависаний, мы уже называем PeekMessage (Msg, 0, 0, 0, PM_NOREMOVE) в Windows API. При локальном запуске это работает довольно хорошо, чтобы избежать поведения «Не отвечает» для длительных операций.

На терминальном сервере (или, по крайней мере, в некоторых конфигурациях) это выглядит так, что это вообще не рассматривается.

Мы также безуспешно пытались увеличить / изменить время зависания приложения на серверах терминалов (см .: https://blogs.msdn.microsoft.com/meason/2010/02/04/hungapptimeout).

  • Есть что-нибудь, что мы должны принять во внимание? -> Конечно, это может быть проблема в том, что на этом сервере просто много пользователей, и ресурсы уже могут быть ограничены, но у нас нет никаких признаков, указывающих на что-то подобное.
  • Существуют ли специальные настройки в Citrix для настройки этого поведения.

Надеюсь, что кто-то может помочь или, по крайней мере, может дать подсказку.

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