oracleXEの起動/終了

OracleXEで遊ぶのはそれなりに楽しいのだけれど、起動中はメモリ消費量が激しいので、
普段はサービスを停止するようにしてある。
OracleXEを起動したままで、FireFoxとか、VMwarePlayerとか起動するともう、
目も当てられないような事態になる。こう着状態というのか、
こういうときに限りある資源を取り尽す、FireFoxを恨めしく思ったり。
それは、さておき、必要なときに、リスナと本体が起動/終了できるようなバッチが欲しいな、と、思って書いた。


/**
* ora.jsとして保存して、ダブルクリックで制御する。
* oracleXEの本体とリスナの起動/終了をスイッチする
*/

var ora = new Object();
ora.listener = "OracleXETNSListener";
ora.oracle = "OracleServiceXE";

var locator = new ActiveXObject("WbemScripting.SWbemLocator.1");
var service = locator.ConnectServer();

Kick(ora.listener);
WScript.Sleep(1 * 1000);
Kick(ora.oracle);

function Kick(servicename){
var win32_service = service.Get('Win32_Service.Name="' + servicename + '"');

if(win32_service.State == "Stopped"){
win32_service.StartService();
Print(servicename + " is started");
return true;
}else{
win32_service.StopService();
Print(servicename + " is stopped");
return false;
}
}

function Print(str){
WScript.Echo(str);
}

リスナと、本体、それぞれのサービスが起動していれば終了し、
終了していれば起動する。
あからさまな弱点として、
・起動が遅い(これは、まぁ、仕方ないか)
・本体起動中、リスナ停止中に、これを実行すると、本体停止、リスナ起動というヘンな状態に入る。
まぁ、即興で作ったのだし、な。

日曜日なのにお客さんのところに休日出勤。
サーバラックで作業してて左手人差し指を鉄の板に挟んでしまう。
超痛かった。つめが、うっすら赤くなっている(涙)
一瞬、表情が変わったが、ここで痛いとわめき散らしたからと言って、
仕事が終わるわけでなし、痛いのを我慢してラックへの据付を終わらせる。
しかし、今日の仕事はそれだけではない。
据付が終わって、ようやく、作業ができる環境になっただけだ。
つまり、まだ、やることがある。
痛いのを我慢してキーボードを叩く。
ぅぉ。gとかtとか、bとか5とか6とか、押すたびに涙がにじむ。
しかし、これが右手の人差し指だと「ん」の入力のたびに痛かったはずだし、
まぁ、多少はラッキーか、
と、思いつつ、仕事を終わらせる。
しかし、重いサーバーだったな。まだ、若干痛みが残っている。

EffectiveC++第三版
第二版も持っているのだが、訳がコバケン先生という理由で購入。
さらさらっとめくった感じでは、、あれ?思ったより読みやすい、かな?
C++ Coding Standardsと内容が似ている。当たり前かもしれないけれど。
しかし、後者はその薄さの割に内容の濃さ、難易度の高さ(ModernC++Designほどではないにしろ、まだ易しいとはいえないだろう)などの理由により、予想以上に読み進めるのに時間がかかる。少なくとも、今の自分には。
EffectiveC++はこの本より読みやすいだろうか?
感想は後日。