TEMTECOMAI ORTHOSTATIC HYPOTENSION

元ダメプログラマで現ダメ中間管理職の駄文

November 2010

Windows XP を再インストールする機会があり、SQL Server 2008 も入れなおしたのだけれど、SQL Server のオプションで入れた Integration サービス (サービス名: MsDtsServer100) がサービスの起動時に警告を出しているようだ。
-- イベントのプロパティ ここから --
ソース: SQLISService100
分類: Service Control
種類: 警告
イベント ID: 274
ユーザー: N/A
説明
Microsoft SSIS Service:
Registry setting specifying configuration file does not exist.
Attempting to load default config file.
-- イベントのプロパティ ここまで --

http://msdn.microsoft.com/ja-jp/library/cc627360.aspx
MSDN ライブラリの情報によると Integration Services サービスの構成ファイルの場所が書かれているレジストリー エントリーが削除されたとか、エントリーの値が削除されたとか、エントリーにアクセスできないってことらしい。
で、対策としては正しい値を書き込むか、サービスの実行アカウントがレジストリーへの読み取り権限を持っているかを確認しろ、と。
エントリーのパスは "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFile" っていうキーの中。
生まれてこのかた、こんなエントリーを削除した覚えも編集した覚えもない私としてはアクセス権を疑ったわけですが、上記のキーを開いてみると "(既定)" っていう文字列のエントリーがあるけれどデータは空っぽなわけですよ。
既定のエントリー以外にきちんと名前が入ったエントリーが必要なのか、既定のエントリーに値を書き込めばいいのかわからんのですが、これは明らかにインストール時から何もされていないってことじゃないでしょうかね。
で、上記ページにはこのキーの中にどのように書けばいいのか書かれていないし、構成ファイルがどこにあるのかもわからない。
もうちょい調べたら別のページで発見しました。
MSDN ライブラリ "Integration Services サービスの構成"
http://msdn.microsoft.com/ja-jp/library/ms137789.aspx
構成ファイルは "%ProgramFiles%\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml" です。
自分の環境を見てみるとたしかに同じ場所に同じファイルがあります。 そんで既定の構成ファイルの例も載ってるんですが、比べてみても全く同じです。つーことで、私の構成ファイルは場所も中身も既定のままってことになります。
とりあえずレジストリーを何とかしてみようってことで "(既定)" のエントリーに構成ファイルのパスを書こうとするわけですが、なんて書いたらいいかも上記ページに書いてありました。「構成ファイルの場所の変更」 ってところに載っているとおり、"C:\Program Files\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml" と入れてみる。(ちなみに MSDN のページに掲載されているパスはファイル名の前に不要なスペース文字が入っているのでそのままコピペするとエラーになりますよ)
サービスの一覧から "SQL Server Integration Services 10.0" を再起動して、イベント ビューアに警告がでていないのを確認したら解決。

docomo と iPhone の電話帳同期っていうと、ほとんどが docomo の携帯電話から iPhone へ乗り換えるための作業になるかと思うが、今回はその逆。
iPhone の電話帳から docomo のガラケーに電話帳のデータを持っていきたい。
会社で今まで貸与されていた携帯電話が機種変更になったんだが、それまで貸与されていた機種はほとんど使った事がなく、自分の iPhone を仕事でも使っていた。
なので古いガラケーに入っている電話帳は何年も更新されず古いままなので、iPhone の電話帳から新しいガラケーにデータをコピーしたいってわけ。

古いガラケーは SO704i、新しいガラケーは SH06B、iPhone は 3GS を使用。
iPhone 3GS から SH06B へデータを移す。

とりあえず docomo の USB ケーブルで SH06B と Windows 7 64bit を接続してみると、新しいハードウェアを見つけたって表示が出た。
しかしドライバのインストールに失敗とのこと。充電もしたいのでとりあえずこのままつなぎっぱなしにしておいた。

んでその状態のまま docomo の DataLink っていう無料のユーティリティをダウンロード。
Windows 7 64bit に関しては動作確認対象外とのことだが構わずインストール。
インストール後に datalink が起動してユーザー アカウントの登録画面になったが、キャンセルして datalink を終了させる。

次に docomo のサイトから SH06B に対応した FOMA 用通信設定ファイル(ドライバ) ってやつをダウンロード。
こいつは 32bit 用ドライバと 64bit用ドライバが同梱されているらしい。
アプリ自体が 64bit での動作確認をしてないのに、通信用ファイルが 64bit 対応ってのはどんな話なんだっつーの。やるきあんのか、docomo は。
ダウンロードした exe を実行するとファイルが解凍される。解凍先のルートに SH_Setup.exe ってファイルがあり、DeviceMetadataPackage と SH06B_USB_Driver って名前のフォルダがある。
SH06B_USB_Driver フォルダの中には Win7_32 と Win7_64 ってフォルダ。
ルートにある SH_Setup.exe を実行してもダメらしい。何度やってもエラーだわ。

てことでデバイスマネージャを開いてみる。
どこにぶら下がっていたかわからんが 1個だけ、SH06B て名前のデバイスがあったので、そいつを右クリックして [ドライバー ソフトウェアの更新] を実行。
つぎの画面で [コンピュータを参照してドライバーソフトウェアを検索します] を選択。[参照] ボタンを押して、SH06B 用のドライバを解凍したルートのフォルダを選択。
こいつのドライバが更新されたとたん、デバイス マネージャーにあと 4つのデバイスが登場。
これもどこにぶら下がっていたか忘れたが、右クリックしても [ドライバー ソフトウェアの更新] て項目がなく、[再スキャン] みたいな感じのメニューだったのでそれを実行。
ほどなくして 4つのデバイスも右クリックすると [ドライバー ソフトウェアの更新] て項目が出てきたので最初のデバイスと同様にドライバーを更新した。

んでもって datalink を起動してユーザー情報を登録。[読み込み] ってメニューから進んで電話帳のデータを取り込んでみた。
総務が仕込んでおいてくれた共通の連絡先が datalink に取り込まれた。

最終的にやりたいのは iPhone の電話帳データを SH06B に持っていくこと。
そこで datalink をいろいろと物色してみると [ファイル]-[インポート] ってのがあるじゃないですか。インポートできる形式は CSV、Microsoft Office Outlook、Windows メールの 3種類。
希望が持てるのは CSV ですかね。
計画はこうだ。
[ファイル]-[エクスポート] で SH06B のアドレス帳を CSV で出力して Excel で開き、列項目を確認しておく。
次に iPhone アドレス帳の同期先である GMail の連絡先を Outlook CSV って形式で出力し、そのデータを datalink からエクスポートした CSV に加工する。
んでもって datalink でインポートして、SH06B に書き込んでやる。

と考えたところで相手は電話番号なので、Excel でやるんだったら拡張子を csv から txt に変更してやらないと頭のゼロが消えちゃうんだろうなーとか考えだした。
txt にしておいて、Excel で [Ctrl]+[O] でテキスト ファイルを選べばインポート ウィザードが起動して、列ごとのデータ型を選べる。
んで電話番号の列を文字列型にしてあげるとか。
あとは Access にインポートするって方法もあるな。
とりあえず今日はここまで。

↑このページのトップヘ