Top / TIPS / XenApp サーバーの運用

XenApp(旧 MetaFrame) サーバー運用でのネタです。

複数サーバー構成の場合のフォルダ同期

パラメータファイルや環境の更新があった場合、すべての XenApp サーバーをメンテナンスする必要があります。
いちいち手作業でやっていたのでは、漏れが出てくるので、フォルダ同期のツールを使ったほうがよいでしょう。

ツールはいろいろありますが、robocopy というツールを紹介します。

もともとは、リソースキットについていたのですが、Windows Vista/Windows 2008 Server 以降、OS に添付されるようになったようです。

リソースキットは以下からダウンロードできます。

http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

バッチ起動の例

\\MASTER\Execute と D:\Execute を同期します。

   @ECHO OFF
   SETLOCAL
   SET PATH=C:\Program Files\Windows Resource Kits\Tools\;%PATH%
   SET SRC=\\MASTER\Execute
   SET DST=D:\Execute
   SET LOGFILE=sync-%date:~-10,4%%date:~-5,2%%date:~-2,2%.log
   robocopy.exe %SRC% %DST% /E /COPY:DAT /NP /XO /A-:R /R:3 /W:5 /LOG:%LOGFILE%
   robocopy.exe %DST% %SRC% /E /COPY:DAT /NP /XO /A-:R /R:3 /W:5 /LOG+:%LOGFILE%
   ENDLOCAL

パラメータの意味は以下になります。

   /E 空のサブフォルダも対象
   /COPY:DAT
       D--データ
       A--属性
       T--タイムスタンプ
   /NP コピー経過進行状況をログに記録しません
   /XO 古いファイルは対象外
   /A-:R ReadOnly 属性を外します
   /R:3 コピー失敗時のリトライ回数を 3 回
   /W:5 リトライする間隔を 5 秒
   /LOG:<ファイル名>  ログを記録します
   /LOG+:<ファイル名> ログを追記します

ミラーリング機能(/MIR)もありますが、コピー元にないファイルやフォルダが、コピー先に存在すると、削除されてしまうので、あえて2回実行しています。

クライアント情報の取得

普通にクライアント情報を取得したのでは、XenApp サーバーの情報が取得されます。

XenApp サーバーに接続したクライアントの情報を取得するためには、以下の手順を踏む必要があります。

(1) 現在実行されているのが XenApp サーバー上なのかを調べる(GetSystemMetrics)

   Private Const SM_REMOTESESSION As Long = &H1000&
   Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

   '----------------------------------------------------------------------------
   ' XenApp のセッションかどうかを判定
   '----------------------------------------------------------------------------
   Public Function IsXenAppSession() As Boolean
       IsXenAppSession = CBool(GetSystemMetrics(SM_REMOTESESSION))
   End Function

ProcessIdToSessionId API で判定する方法もあったようです(これは知らなかった)が、Vista 以降では使えなくなったそうです。

(2) XenApp サーバーであれば、WTSQuerySessionInformation でクライアント情報を取得する。

WTSQuerySessionInformation については、いろいろなサイトで解説されていますので省略します。

2G以上のメモリを使用する

VBで作成したプログラムは、64ビットOS上でも、2G までしかメモリを使用できません。
しかし、exe を EditBin で /LARGEADDRESSWARE オプションをつけて書き換えることで、4G までの領域を扱うことができるようになります。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2010-12-16 (木) 17:19:11 (2436d)