手元の仮想マシンでXenApp 6 for Windows Server 2008 R2を実行していると、デリバリーサービスコンソールで「検出プロセスで(サーバー名)を使用するときにエラーが発生しました」というメッセージが表示されて管理不能になることが何度かありました。イベントビューアーをのぞくと、ID 3615、3636、3989などIMAServiceをソースとするエラーが記録されています。データベースに接続できなくなっているようです。

このXenAppサーバー(データストアはローカルのSQL Express)は参照用であり、実際に運用しているものではありません。なのでいつもはそこで原因探求を行わずに、クリーンなスナップショットに戻ってXenAppを再インストール!で解決です。でも今回はナリッジベースを検索してみました。どうやら原因はこれのようです。

http://forums.citrix.com/thread.jspa?threadID=275358&tstart=0

XenAppのインストール後、パスワードを変更するとこの問題が発生します。思い当たるフシが私にもあります。パスワードは定期的に変更すべきものですから。

最近のXenAppのIMAサービスでは、実行アカウントとしてNT AUTHORITY\Network Serviceが使用されています([管理ツール]>[サービス]>[プロパティ]>[ログオン])。これはセキュリティ強化の結果でしょうか。上記のスレッドでは、パスワードを戻したり、IMAサービスの実行アカウントを管理者のものにしたり、専用のアカウントを作成したりして解決を図っています。これらの解決策が適切かどうか疑問ですが、環境のセキュリティポリシーに合わせて、適切な解決策を講じましょう。

解決策:その後、この動作は仕様であるという回答をもらいました。IMAサービスが使用する、レジストリに格納された資格情報が更新されていないと、この問題が発生します。dsmain configコマンドを実行して、データストア用のパスワードを更新してください。(2011/3/23)

以下、dsmaint configコマンドについての説明です(eDocsより)。

データストアに接続するときに使用するパラメーターを変更します。 DSNファイルのフルパスを二重引用符で囲んで指定します。 たとえば、次のように入力します。

dsmaint config /user:ABCnetwork\administrator /pwd:Passw0rd101 /dsn:”C:\Program Files (x86)\Citrix\Independent Management Architecture\mf20.dsn”

configオプションで/pwdを使用する場合は、先にCitrix Independent Management Architectureサービスを停止しておく必要があります。

注意: dsmaint configを使用するときは、必ず/dsnを指定してください。/dsnを指定しないと、SQL ServerやOracleのデータベースにアクセスするときのセキュリティコンテキストが変わります。