2013年12月26日木曜日

Exchange 2007 の3ノードクラスタで、2番目のメールボックスサーバーへのメールボックス作成に失敗する

昨日、Exchange 2007 の既知不具合を踏んだ。
今頃 Exchange 2007 の情報かい、という感じで需要ないと思われるが記録を残しておく。
3ノードクラスタの動作確認で問題発生
Exchange 2007のメールボックスサーバーの高可用性構成には "ローカル連続レプリケーション (lcr)", "クラスタ連続レプリケーション (ccr)", "スタンバイ連続レプリケーション (scr)", "シングルコピークラスタ (scc)" の4種類がある。
高可用性: Exchange 2007 ヘルプ
今回担当したシステムでは、昔ながらの共有ディスク構成である scc を選択。ベストの選択かどうかはともかく、ディスクサイズ節約という観点では、scc 以外の選択肢は無いので。
サイジングの結果、Active-Active-Passive の3ノード構成になった。
3ノードって滅多に無いので、この時点でやや不安ではあった。

で、メールボックスを新規作成する試験を実施したところ、見慣れぬエラーが発生。
サーバー <servername> 上のプロキシの生成プログラム DLL が見つからないか、初期化に失敗しました。現在の受信者のプロキシ アドレスを計算できません。すべてのプロキシ アドレス生成プログラム DLL が対象となるサーバーにインストールされていることを確認してください。
2007 の既知の不具合だった
調査したところ、すぐに下記の情報に行き着いた。
シングル コピー クラスタのインストール: Exchange 2007 ヘルプ
複数のクラスタ化メールボックス サーバーが存在する SCC では、フェールオーバー クラスタにインストールされている 2 番目以降のクラスタ化メールボックス サーバーに新しいメールボックスを作成できないという、既知の問題があります。
なんで既に枯れてる 2007 にこんなしょぼいバグが残ってるんだ。
その対処方法は下記ページに書かれている。
Exchange 2007 シングル コピー クラスタ (SCC) の 2 台目以降のクラスタ化メールボックス サーバー (CMS) 上でメールボックス作成を有効にする方法
このページによると、どうやら、AD内に本来自動的に作られるべき "Microsoft MTA" オブジェクトが、クラスタの2番目以降のサーバでは作られないので、手作業で作ってくれということのようである。さっきのエラーメッセージの「プロキシの生成プログラムDLL」って、全然関係ないじゃん。Microsoft 製品のエラーメッセージは相変わらずアレだ。

というわけで、上記ページの手順に従って Microsoft MTA オブジェクトを作成して本件は解決した。
今後 Exchange 2007 で3ノード以上の scc を組む人の参考になれば幸いである。そんな人いないか。

2013年12月24日火曜日

2013年12月13日金曜日

[VBA] Excelで簡易Diff

SIerにお勤めの社畜の皆さんこんにちは。社畜Excel職人のdsp74118です。
ご挨拶はさておき、今日の本題へ。
ExcelでDiffしたい
我々SIerの仕事は、1にExcel、2にExcel。3、4がWordで5にPowerPointであるから、Excelで行う作業を如何に効率化するかが、サボる業績を上げるための至上命題である。
さて、我々SIerは「2つのデータのDiffをExcelで見たい」というシチュエーションによく遭遇する。 Excelのブック同士のDiffを取るのであれば、WinMergexdocdiff プラグインとかを使えばよいのだが、当記事は、同一シート内の2つの列でDiffを取り、それを見やすく整形することをテーマとしている。
例えば下図Figure.1のような状況。
Figure.1 A列とC列を比較したい
A列とC列に似たようなデータが入っているが、微妙に違う。これのDiffを取る(SI業界では"突合"と言う)にあたり、Excel使いとして飼い慣らされた社畜であるならば、同一データを同一行に揃えたくなるだろう。
Figure.2 こういう風に同じデータが同一行に揃うと嬉しいよね
このような整形処理を実現するVBAをこの度書いたので、ここに公開する次第である。
Posted in 

2013年12月1日日曜日