概要
Citrix XenApp環境において、公開アプリケーションを起動しようとすると、プログレスバーは進むものの、アプリケーション画面が表示される直前にセッションが切断され、起動に失敗する事象について解説します。
この問題は、サーバーへのログオン処理が長引いた際に、Citrixの仕様である「ログオフチェッカー」が誤検知してセッションを強制終了させることで発生します。本記事ではレジストリによるタイムアウト時間の調整手順を共有します。
発生した事象
- 現象: Citrix Receiver(またはWorkspace app)から公開アプリをクリックすると、接続処理は開始されるが、アプリが立ち上がる前にウィンドウが消え、何も表示されない。
- イベントログ: XenAppサーバー側に以下のIDが記録される場合がある。
- ID: 6001, 6004
デスクトップウィンドウマネージャはコード(0x40010004)で終了しました
原因:ログオフチェッカーの誤検知
XenAppには、ユーザーがアプリケーションを終了した後に、不要なセッションがサーバーに残留しないよう監視する機能「ログオフチェッカー」が存在します。
通常はセッションのクリーンアップに役立つ機能ですが、「ログオン処理(プロファイルの読み込み等)に時間がかかっている」場合、ログオフチェッカーが「アプリが起動していないゾンビセッション」と誤認し、まだ起動途中であるにも関わらずユーザーを強制ログオフさせてしまいます。
- 既定のタイムアウト: 60秒(環境によるが、一般的に1分以内にログオンが完了しないと切断されるリスクがある)
解決策(レジストリ設定)
ユーザープロファイルの軽量化などでログオン時間を短縮するのが根本対策ですが、即効性のある対処として、「ログオフチェッカーが起動するまでの待機時間」を延ばすレジストリ設定を行います。
手順
XenAppサーバー上で以下のレジストリキーを設定します。
- キーの場所:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Wfshell\TWI - 設定値1: ログオフチェッカーの開始遅延
- 値の名前:
LogoffCheckerStartupDelayInSeconds - 種類:
REG_DWORD - データ:
60~600(秒) - 推奨設定:
60(秒) - 解説: ログオン開始からこの機能が動き出すまでの待機時間です。60秒に設定すると、実質的に許容されるログオン時間が+60秒延長されます。
- 値の名前:
- 設定値2: アプリ起動待機タイムアウト
- 値の名前:
ApplicationLaunchWaitTimeoutMS - 種類:
REG_DWORD - データ:
300000(ミリ秒) ※例: 5分 - 解説: アプリケーションがウィンドウを表示するまでの待機時間上限です。デフォルトは60000(60秒)ですが、重いアプリや低速回線環境では
300000(5分) 程度に拡張することでタイムアウトを防げます。 - 注意: こちらはミリ秒指定です。最小値は10000です。
- 値の名前:
補足
- 設定の反映: レジストリ変更後、設定を反映させるために「Citrix IMA Service」の再起動、またはOSの再起動を推奨します。
- 副作用: この設定時間を長くしすぎると、本当にアプリがクラッシュして終了した場合などに、セッションが自動解放されるまでの時間が長くなります(サーバーリソースの解放が遅れる)。環境に合わせて「ユーザーがイライラしない程度」かつ「誤検知しない」値(60~180秒程度)に調整してください。
参考情報
- Published Application Fails to Appear
https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX128009 - Published Explorer.exe and other applications close instantly after launch
https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX138069 - Published Applications or Desktops Do not Launch or Disappear during Launch
https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX200393


コメント