SBS2003R2続き

サーバー自身から自分のcompanywebアドレスに繋がらない件をやっと修正することが出来た。
そもそもこの症状は、2003R2の状態から、WindowsUpdateを適用すると起こるようだ。

  • InternetExplorer6累積セキュリティパッチ

を適用した時点で発現した。

これを回避する方法を探し回ったあげく、先日のKB961143とか適用という部分に行き着いたのだが、
そのパッチを当てることすら出来なかった。

今回、やっと回避することが出来たので、その方法をここにもきちんと書いておこうと思う。

方法

レジストリエディタを使用する。

HKLMSYSTEMCurrentControlSetLsa
の部分に、新規のDWORDキーを作成する。
キー名:DisableLoopbackCheck
値:1
でキーを作成および設定ののち、再起動する。

これで自身のIEからcompanywebに接続できるようになった。

参考にしたMSの文献は、これである。
http://support.microsoft.com/kb/896861/ja


SBS2008

ちょっと浮気して、SmallBusinessServer2008のほうをチャレンジしてみた。

してみようとした。

結果は散々で、インストールを完了させられず状態です。

理由は、

  • 仮想マシンが止まる(止まっているっぽい)VMwarePlayer 3.0
  • 仮想マシンで起動できない.インストーラー立ち上がる前にこのCPUではサポートしていない旨のメッセージがでる
    • VirtualBox 3.0にて

という状況で。

じゃ実際のハードウェアにインストールしてみてはどうだろうということで試してみたものの、
メモリ要求水準を満たしていないとのことで、正常にインストールを完了できず。

この結果から、仮想マシンでもおそらくメモリ不足によるインストール未完了だったんじゃないかと。

最低で、3GBのメモリを要求するらしい。
また、Exchangeを使用している状況では、6GBまで使用されていることがあるんだとか。
つまり、なんとかして3G割り当てられたとしても、スラッシングが起こってレスポンス低下という。
本番でつかうなら、6GBは物理メモリが必要なのかもしれないなぁ。

Exchangeを触ってみたいのは相変わらずなので、SBS2003で調査を再開することにします。


今更SBS2003R2

Windows Small Business Server 2003R2

今更なんですが、SBS2003R2インストールして試してみてます。
ちょっとExchangeServerを触ってみたくなったのと、
SharepointServiceもどのようなものであるかを触ってみたかったからです。

インストールするまでは難しくないんだけど、
インストールして設定となると途端に難しい。
デフォルトで入っていたSharepointService2.0は動いていたけど、
あくまで動いていただけ。
とりあえず、3.0に更新しようとしても色々とはまる。

結果、3.0にあげられたけど、
なぜかサーバー自身から companywebにアクセスできない。
ユーザー名とか入れても、正常にログインできない状態に。

ちなみに他のPCからだとログインできるし、謎です。
KB961143を適用するとこの問題が解決できるとなっているのだけど、
現在そのKBが見あたらず・・・。

もうしばらくはSBS2003R2に悩まされそうです。


adiaryにこんな機能ほしいなぁ

adiary

マルチユーザーモードの日記帳で、
全ユーザーの日記を横断するような検索って実装されないですかねぇ?

あるいは、日記が更新されるたびに、
どこか適当な場所に htmlが吐かれるとか…。
そうしたらnamazuつかってそれを検索かけることもできるし。

と、ちょっと考え中。機能追加されたらいいな♪

Redmine運用サーバーが重い

仮想サーバーとしてたてて、そこでredmineいれてるのですが、
やけに重い・・・。

SVNのコミットフック使って活動内容の更新を変更するようにして、
リポジトリの自動取得をOFFにしているのに、まだ。。。

色々と情報をあさった結果、
Apacheの設定を見直してみるとよいとのこと。

そこで KeepAline設定を見ると Offになっていた!
これをOnにして症状を見ると軽くなったように思う。

しばらくはこれで運用予定~


今日のトラブル

原因不明。IDIRECT3DDEVICE9のSetVertexShaderConstantF関数で設定した値が、シェーダーに送られてない。
一方で、D3DXのID3DXCONSTANTTABLEで設定すると値はきちんと送られている。

なぜだー。

これのせいで数時間もアルゴリズムの方が間違っているのかと悩んでた。

現在ダウンサンプリングを勉強中


RedmineでSVNリポジトリとの同期

先日、cronを利用してRedmineの活動カテゴリで
ソースコードのコミット履歴もある程度のタイミングで反映されるようにしてましたが、
Subversionなら別の方法も採れるのでは?と試してみました。Subversionのサーバー側でのフックスクリプトを使用します。
post-commitスクリプトで、

/usr/bin/ruby /redmine/script/runner “Repository.fetch_changesets” -e
production

これでコミット直後でRedmine側が更新されるので、
なかなかいいんじゃないでしょうか。


VMware Workstation7出た!

新機能の列挙を見ただけで、”すげぇ!”と思ってしまうものが満載です。

  • DirectX 9.0c SM3.0対応
  • OpenGL 2.1対応
  • Windows7, VMwareESXiサポート

これだけでかなりいけてるとおもいます。特にDX9対応は凄すぎる・・・。

早速試用版を試して見ました。

Windows7インストール

新機能で簡単インストール機能があったのでそちらを利用しました。
最初に少し聞かれるものの、あとはVMwareToolsのインストールまでが全て自動化。
かなり楽にインストールは完了です。

あと、ファイルのコピーもD&Dで出来るようになっていたりと、便利でした。

Aero

売り文句の1つにAeroが動くってあったのでそれもテスト。
インストール直後では、テーマがベーシック故あれ?と思ったのですが、
きちんとAeroテーマを選んでやることにより、有効化されました。
3Dフリップも機能するし凄いです。

DirectX9.0cテスト

ちょうど手元にDirectXの自作プログラムがあったのでそれを使ってみました。
結果、普通に動いてました。若干起動時にゴミが見えたものの定常状態では正常に動作しているようでした。

このアプリケーションでは、
スキニングシェーダー&テクスチャ付き という代物です。
これが仮想マシンで動くって言うのだからすごいものですねぇ…。

一応、Aeroの推奨環境を満たしていない下記スペックで動かしました。

  • Athlon64X2 4400
  • Mem 2GB
  • GeForce8600GT

もう少し評価版を触ってみて、これは製品版購入になりそうな感じです。
Win7のXPモードよりはるかにすばらしい!!

VMPlayerも最新版が出たそうですね。今度はPlayerながらも仮想マシンを構築できるとか。
ただし、VMwareWorkstation 6.5相当という。
これでも一応9.0c SM2.0が動くということになっている状況なのだから
仮想化分野もかなり進化したなぁと思います。


WinSxS問題 その2

基本的事項

まずは知っておかなくてはいけないこと。

外部マニフェストの挙動

  • 外部マニフェストはexeのみに適用される。
    • そのexeが必要とするdllらには適用されない点に注意
  • WindowsXP環境では、外部マニフェストのほうが埋め込みマニフェストよりも優先される
    • 2003より優先順序が逆転した。

症状

再頒布ランタイムパッケージがインストールできない環境で発生した。
インストールできない環境とは、ユーザーがゲスト権限くらいしかない場合を指す。
あるいはどうしても事情により入れられないとか。

このときに、exeとdllと同フォルダにおいて、
そのプライベートアセンブリとして、VCランタイムを配置した。
このときに、最近のWindowsUpdateが適用されたバージョンを置いた。
(VC90.30729.4148バージョン)

そして、exeがこのバージョンのランタイムを使うように、外部マニフェストファイルを作成して
実行をさせようとした。

この結果が、昨日のエラーを引き起こしていた。
理由は、dllにはこのマニフェストの影響が及ばないからである。
故にdllは埋め込みマニフェストに従い、21022.8のランタイムを要求しているし、
exeは外部マニフェストによって強制された 320729.4148バージョンを要求する。

ここで同一のアセンブリ名であるためにdllがロードされてチェック機構が働いた段階で、
不整合がおこり、ローダーの段階で失敗してしまう。
その結果、exeが実行されることなく強制終了されてしまう。
試した環境ではエラーダイアログすら出ない。

解決策

簡単に解決する方法がある。
ひとつは、VisualStudio2008,およびSP1環境のデフォルト動作では、
RTM版のランタイムにバインドされる。
これは、9.0.21022.8 のバージョンである。
これに対応するランタイムを入手し、それをプライベートアセンブリとして使用する。

ただし、セキュリティ関係で問題になりそうな気もするが仕方ない.

もう一つは、最初から埋め込みマニフェストで最新バージョンを使うように
全部アプリケーションをリビルドする。
これには、まずプロジェクト設定の、プリプロセッサ定義で、
_BIND_TO_CURRENT_VCLIBS_VERSION を定義しておく。

これを行うとビルドした環境の最新のバージョンへバインドされる。
よって、最近のやつであれば 30729.4148にバインドされる。
リビルドにより dllからexeまでがこれに依存するようになるため、
VisualStudioのインストールディレクトリから再配布ランタイムをコピーして使用すればよい。

最後の方法は、exeでやったように、dllに対しても依存するアセンブリ情報を強制変更する方法である。
これには、hogehoge.dll.2.config というファイルを作成する。
ポイントは”2″という部分。

このファイルにより、目的のバージョンへバインドがリダイレクトするように設定すれば、
dllとexeのバージョン要求不一致を解決できる。
この方法は一応海外のMS CONNECTで記述があったためおそらく正式な方法だと思う。

しかし、日本語での情報が見つからなかったためここに書いてみた。


WinSxS問題

Windowsのサイドバイサイドって、
強力な仕組みなんだけど、その強力さ故色々と面倒なこと引き起こしてるなぁと思います。

昔DLL HELLとか散々な目にあったからこそ作られた仕組みであると理解しているけれど、
今食らっている状況はWinSxS HELLともいえるような気がします。

マニフェストファイルを作成して、実行体と同じ場所にDLLを
プライベートアセンブリとして配置する方法でトラブル。

dllが要求するものと、exeが要求するものと同一アセンブリ名、異なるバージョンアセンブリ
という状況が出たときに問題は起こる…。

通常サイドバイサイドのポリシー設定により、適切にリダイレクトがかかるために
上記の問題は起こらない。なぜならば同一の参照先を示すことになるから

現在回避策を調査中・・・。


PV4環境

PV4 on Windows7でやっていたものの、
うちのマシン Core2Duo E6300では荷が重いようで。
あるシーンになると、CPUの負荷で録画が停止してしまう。

そこで、環境をWindowsXPに戻してみたら、正常に録画可能だった。
やっぱりXPに比べると Win7は重くなっているのかなぁ。

特定のシーンとは、

  • 緑の多いシーン
  • きらきら輝くようなシーン
  • 両者混在の木々の木漏れ日

というのを現在把握中