Windows2008R2 DNSサーバーで逆引きができない(イベントID:5504)

しつこくWindows2008R2ネタですが、覚書ということで、
Windows2008R2に付属のDNSサーバーで、IPアドレスの一部が逆引きができずにイベントビューアーにID:5504が記録されました。また一部で逆引きが通ったりするので厄介でした。 

いろいろ探しましたが、結局以下のページ
Forum FAQ: How to troubleshoot DNS Event 5504 error
の4番目の解決策の
 
dnscmd /Config /EnableEDnsProbes 0
 
でOKでした。
ネットを探すと他にも、
DNS event 5504 – server encountered an invalid domain name in a packet
というのがあったのですが、このページにあるShilpesh Desai MSFTさんの『Accordig to KB 198410, it should have non-zero value. - KB198410によるとこのレジストリの値を0以外にする。』に対して、Jharris1993さんが
『Huh? Did you read the KB article? (head in hands, shaking head in wonder) - はぁ、ちゃんとKB読んだ?』
『The correct statement is: According to KB-198410, it should have a zero value if the key exists. - 正しくは:KB198410によるとキーが存在するときはこのレジストリの値を0にする。』
とShilpesh Desai MSFTさんをバカにしていますが、私もKBを読みましたが、Shilpesh Desai MSFTさんの説明は、間違いではないでしょう。なぜなら通常はこのレジストリキーは存在せず、その場合、値zeroと解釈されるので、トラブルシュートを行うならzero以外の値にすべきでしょう。もっともそれでトラブルが解決するとも思えなかったのでこの方法は試しませんでしたが・・・

IIS7.5でクラシックASPの拡張子をASP以外にする

さらにWindowsネタが続きますが、まぁ覚書ということで。
IIS6(Windows2003)では、マッピングを追加すれば、クラッシクASP(VBScriptで記述するASP)のファイル拡張子をasp以外(例えばcgiとか)にすることができましたが、Windows2008R2に付属のIIS7.5でかつアプリケーションプールを32ビットで動作させた場合、単純なハンドラの追加以外にちょっとしたひと手間が必要になります。

(1)ハンドラの追加
ハンドラーマッピング『管理ツールから、役割→Webサーバー(IIS)→インターネットインフォメーションサービス(IIS)マネージャ 』から、『サーバー名→サイト→WEBサイト名』で、右ペイン『(機能ビュー→)ハンドラーマッピング』でASPClassicと同様にハンドラを追加します。
ここまでは普通の手順になります。
 

 
(2)preCondition設定
続いて、同機能ビューから『構成エディタ』を起動します。構成エディタ画面の『セクション→system.webServer/hander』で『コレクション』の行にあるボタンをクリックします。
上のペインで、追加したハンドラを選択し、下のペインにあるpreCondition設定の値を空欄にします(bitness64を削除します)。
 

 

Windows2008R2ではNTBACKUPでバックアップできないらしい

ここしばらく、Windowsネタが続きますが、サーバー移行の覚書ということで。
Windows2008(R2) では、NTBACKUPからWindows Server Backupというソフトに置き代わり、バックアップの使い方もかなり変わったのですが、昔のNTBACKUPを使いたいとう欲求に駆られるでしょう。私もその一人だったのですが、残念ながらNTBACKUPを使うことができませんでした。
ちなみに、リストアのみでしたらリストア用のNTBACKUPがダウンロードできるので使えます。ただ、R2の方はインストールにはまるかと思います。以下のサイトをご参考に、
NTBackupバックアップファイルをWS2008 & R2で復元
 
上記サイトのリンク先Running NT Backup under Windows 7にありましたが、Windows2003からNTBACKUP.EXEを持ってきてNTBACKUPをバックアップとして使う方法を試してみましたが、Windows 2008 R2ではNTBACKUPでバックアップはできないようです。以下試したことを列挙します。

  • Windows 7 64ビット版では動作した(Windows 2003SP2 32ビット版のNTBACKUP使用)。
  • Windows 2008 R2では、「シャドーコピーを使ってバックアップを準備中」で止まる。イベントビューアにVSSのエラーが出力される。
  • Windows 2003SP2 32ビット版のNTBACKUPの場合、イベントID:20(ボリューム シャドウ コピー サービス エラー: ボリューム シャドウ コピー インフラストラクチャをセーフ モードで使用することはできません。)、8193(ボリューム シャドウ コピー サービス エラー: ルーチン CoCreateInstance の呼び出し中に予期しないエラーが発生しました。hr = 0x80040154)が出力される。
  • Windows 2003SP2 64ビット版のNTBACKUPの場合、イベントID:8205(ボリューム シャドウ コピー サービス エラー: IVssCoordinator から IVssShim に QueryInterface を呼び出している最中にエラーが発生しました。hr = 0x80004002。)が出力される。Running NT Backup under Windows 7でも同様のエラーが出た人がいるようで、質問している人がいましたが返答はありませんでした。
  • ダメ元で、http://support.microsoft.com/kb/940032/jaを試してみたが、やはりダメだった。
  • Windows 7 x64でNTBACKUPが動作していたので、Windos 7にインストールしていたアプリ(Visual Stduio 2010、SQL Server 2005、を入れてみたがダメ

 
日本では嵌ったという方がいらっしゃらないようなので報告まで。 
私の場合は、結局NTBACKUPを使うのをあきらめてWindows Server Backupを使うようにしました。

Windows 7 SP1 がOEMへプレリリースされたらしい

Windows7続きの記事です。
Windows7がらみのトラブル(kernel-power41病)を調べようとWindows 7 Forumsをみましたら、Windows 7 Service Pack 1 (SP1) Download Availableとありましたので、リンクを読みましたところ、OEM向けに最終バージョンがリリースされたとのことです。Windows Server 2008 R2のSP1も含まれているそうです。
 
上のURLからはSP1がダウンロードできるようですが、記事によるとリリースが差し迫っているそうなので、マイクロソフト社から正式にリリースが出てからインストールした方がよいでしょう。

旧安田庭園

英検のテスト(結果は残念・・・・)が両国にあり、試験後ぶらぶらしていましたら、旧安田庭園というのがあり、
せっかくなので見てまいりました。
 

 
ちょうど、建設中のスカイツリーが見えます。

 
反対側をみると両国国技館が見えます。

Windows7への移行

この年末、年始で、我が社のデスクトップPCが、ほぼWindows7へ移行した。
あわせて、以前の記事で言っていました私のセカンドノートもWin7のネットブックへ移行しました(その記事は後ほどまた書きます)。
後はサーバーをWin2008R2へすれば、我が社のパソコンがWin7系に移行するのですが、ここまでのOSのマイグレーションは我が社始まって以来かもしれない。
 
とまぁ大がかりな移行を行っているのですが、ご多分にもれず我が社もVista飛ばしを行ってWin7へ移行したのですが、そのせいかもう歳なのか何なのかわからないのだが、Win7のデスクトップに慣れるまで時間がかかっていた。私がWin7を使いだしてから1年が経つので移行計画も1年越しということになる。
ただ、同い年の我が社の社長があっさりと使いこなしているところを見て年明け早々、自分の適用力が落ちたことにショックを受けたりしてます。

[ADP開発日誌]Ver0.60アルファ版のリリース(フィボナッチ数例を求めるプログラムの実行速度の改善)

バージョンが0.5Xから0.6に変わりましたが、機能的には特に変わりません。
前回のリリースから継続的に実行性能の強化をしてまして、だいぶ速くなったので一旦リリースします。
 
どこまで速くなったかですが、ADP 0.60と各ブラウザとのフィボナッチ数列を求めるプログラムの実行時間の比較を行います。
ちなみに、JavaScriptのコードですが、こちらにあるコードを使わせていただきました。
ADP側のコードは、以下のとおりです(高速化のためには元のソースも変更する必要がありましたので前とは若干変わっています)。

+fib(0,0),!;
+fib(1,1),!;
+fib($x,$y),fib($x - 1, $f1),fib($x - 2, $f2), $y == $f1 + $f2, !;
,fib(28).printn;

 
◆マシン
・CPU  Core i7-980X
・メモリ 24GB(DDR3-1066 4GB × 6)
・OS   Windows 7 Ulitimate (x64)
 
◆結果

28のフィボナッチ数列を求める時間
IE8(64ビット版) 368ミリ秒
FireFox 3.6.13 167ミリ秒
Google Chrome 8.0.552.224 9ミリ秒
ADP 0.60 226ミリ秒

 
ADP 0.60の結果ですが、IE8以上、FireFox3.6未満という結果になりました。個人的にはまだまだ不満足ですが、競争が激しくなったブラウザのJavaScriptとそう遜色がない結果になっているのでひとまず納得しておきます。
またGoogle Chromeの結果が突出していますが、これはJITコンパイラが利いているかと思います。この手のベンチマークの結果を誤解してほしくないので書いておきますとどんなプログラムも常にGoogle Chromeが突出して速いと言っているわけではござませんので結果を丸々鵜呑みにしないように注意してください
(実際の体感速度は皆様が使ってみて判断してください・・・)。

で、ここまでくると
『いったいどこまで速くなるのか?』
と疑問に思われるでしょう。というわけで、アセンブラ(正確にはインラインアセンブラ)のコードと実行結果を載せます。

#include <iostream>
using namespace std;

#if 0
int __fastcall fib(int f)
{
	if ( f == 0 ) return f;
	if ( f == 1 ) return f;
	return fib(f-1) + fib(f-2);
}
#else
extern "C" {
int __declspec(naked) __fastcall fib(int f)
{
	__asm push	esi
	__asm mov	eax, ecx
	__asm cmp	ecx, 0
	__asm je	_return
	__asm cmp	ecx, 1
	__asm je	_return
	__asm dec	ecx
	__asm call  fib
	__asm mov   esi, eax
	__asm dec	ecx
	__asm call	fib
	__asm add	eax, esi
	__asm add	ecx, 2
_return:
	__asm pop	esi
	__asm ret
}
}
#endif

int main(int argc, _TCHAR* argv[])
{
	clock_t c = clock();
	cout << "fib = " << fib(28) << endl;
	cout << "Execute time is = " << (clock()-c)*1000.0/CLOCKS_PER_SEC << endl;
	return 0;
}

 
プリプロセッサでアセンブラコードが動くようにしていますが、コードはC言語との比較もできるようにCのコードも掲載しています。Visual Studio 2008でコンパイル実行できます。実行時間は4m秒でした。ちなみに、フィボナッチ数例自体を高速に求める方法は他にあります。以前の例のようにADPキャッシュを使えば数ミリ秒になります。ここでは再起関数の呼び出し回数を変えないようにして各プログラミング言語自体が持つ基本的な速度について比較できるようにしています。

レトロな看板2011

あけましておめでとうございます。
 
今年はウサギ年で飛躍の年ということで不況から脱出するとよいですね(と同時に私の株も上がって欲しい・・・)。
去年の年末から失速感のあるブログですが、心新たにぼちぼち更新します。
 
いろいろネタには尽きないはずなのですが、一発目はどうしてもこれを書きたいので、書きます。
 
一つ目の看板は、これです。

電話がまだ普及していなかった頃のものでしょうが、子供の頃にみたことがあるくらいでお世話になったことはありません。
 
二つ目は、これです。

こちらは、子供のころにも見たことがありません。専売公社の頃の看板でしょうが塩って私が子供の頃(30年程前)から普通にスーパーで売っていた記憶があります。字も旧字体なのでもっと前のものでしょう。
 
ちなみに、この2つの看板は我が家の近くの同じ建物(店)にあったのですが、ここに引っ越してきて5年半になりますが、まったく気がつきませんでした・・・。もっともそのお店と思われるところが開いているところもみたことがないので、だいぶ前から閉まったままだと思います。まぁよく今まで残っていたものだと思います。