[System Environment] | ||||||||||
ターミナル・サービスでアプリケーションが正しく動かない
|
||||||||||
|
解説 |
リモートから遠隔地にあるコンピュータのWindowsデスクトップに接続して、あたかもローカル・デスクトップのように利用できるターミナル・サービスは便利な機能だ。サーバのリモート・メンテナンスはもちろん、自宅のWindowsコンピュータから、会社のデスクトップ・コンピュータに接続すれば、会社のWindows環境を自宅からそっくり使うことができる(もちろん、会社のデスクトップにターミナル・サービスで接続できればの話だが)。
|
Windows Server 2003は標準でこのターミナル・サービス機能を備えている。コントロール・パネルの[プログラムの追加と削除]にある「Windowsコンポーネント ウィザード」から、「ターミナル サーバー」を選択してインストールすればよい。Windows Server 2003のターミナル・サービスの詳細については関連記事を参照されたい。
しかし、ターミナルで接続したアプリケーションが使用するターミナル・サービス・セッション用のメモリが不足して、アプリケーションの動作が不正になる場合がある。不足するのは、メニューやフォント、ウィンドウなどといったグラフィカル・ユーザーインターフェイス要素(GUIオブジェクト)を保存するためのメモリ領域で、メモリが不足するとGUIオブジェクトが正しく割り当てられず、画面表示などが不正になる。Windows Server 2003へのリモート接続を利用していて、画面が崩れるなどの障害が発生したときには、この問題を疑ってみるべきだ。この場合には、レジストリの設定値を変更して、ターミナル・サービス・セッションに割り当てられるメモリ・サイズを増加することで問題を解消できる。
操作方法 |
ターミナル・サービス・セッションに割り当てられるデフォルトのメモリ領域を増やすには、レジストリの値を変更すればよい。
変更するのは、以下のサブ・キーにある、下表のエントリである。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management
レジストリ・エントリ | 内容 | デフォルト値 |
SessionViewSize | デスクトップ・ヒープのサイズをメガバイト 単位で指定する | 20Mbytes |
SessionPoolSize | セッションのページ・プールをメガバイド単位で指定する | 16Mbytes(32Mbytes) |
リモート・サービス・セッション用メモリを増加するためのレジストリ・エントリ |
このようにリモート・サービス用のセッション・メモリの設定用エントリには、SessionViewSizeとSessionPoolSizeの2つがある。このうちSessionViewSizeには、デスクトップ・ヒープのサイズをメガバイト単位で指定する。デフォルトでは20Mbytesが指定されている。前述したとおり、メニューやフォント、アイコンなどといったGUIオブジェクトが保存されるのがデスクトップ・ヒープである。
|
一方のSessionPoolSizeには、セッションに割り当てられるページ・プールをメガバイト単位で指定する。通常、デフォルト値は16Mbytesだが、コンピュータの搭載メモリが十分にある場合はWindows Server 2003によって32Mbytesが割り当てられる場合もある。ページ・プールは、サービスやアプリケーションが使用するメモリのうち、ディスクにページング可能なものが割り当てられる。このメモリは、主にグラフィックス・ドライバの割り当てなどに使われる。
デフォルトのセッション・メモリを増加するにはこれらのDWORD値を適当な値に増やせばよい。
[注意] |
レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまでご自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。 |
設定する値に絶対的な制限はない。ただしマイクロソフトのガイドラインによれば、SessionViewSizeとSessionPoolSizeの合計値が512Mbytes以下にすることが望ましいとしている。
ただしターミナル・サービス・セッションごとに指定したメモリが割り当てられるので、コンピュータの搭載メモリに照らしてあまりに大きな値にすると、Windows Server 2003システムやほかのアプリケーションが利用するメモリ領域を圧迫したり、ターミナル・サービスの同時接続可能セッション数を圧迫したりする可能性がある。用途にもよるが、段階的に値を増加させながら、エラーが発生しなくなる値を見極めるのがよいだろう。
この記事と関連性の高い別の記事
- 必要メモリ・サイズを見極める(TIPS)
- 最適なページ・ファイル・サイズを知るには(TIPS)
- 原因不明のメモリ不足エラーに対処する方法(デスクトップ・アプリケーション・ヒープ不足エラーに対処する方法)(TIPS)
- Windows Server 2008 Server Coreの画面解像度を変更する(TIPS)
- Windowsでリモートから「リモート デスクトップ」を許可する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|