CoffeeBreak(19)
作成日:1998/08/08

24時間耐えられますか?
ここでの話は,Microsoftの動作保証範囲外です!(たぶん)

パソコンもサーバともなれば,24時間動作しっぱなしにすることが,ユーザ側 の常識と思います。
現にNetWareのサーバなんて,各連休前の年3回しかシャットダウンしない,とか が通常の運用だと思います(バックアップは頻繁に取りますが)。
さて,NTで24時間365日というのは夢の話ですが,それでもサーバアプリは サーバが動作している間は動作しているように作りたいものです。

ところでアプリケーションサーバ用のプログラムをVB(Visual Basic)で書く ことができるようになってきました。
しかし,実際にコードを書いてみると,如何に自分の書くプログラムに耐久性が ないか(要するに,1つのプログラムを連続で動作させると, 一定時間で落ちる),ということが思い知らされ哀しくなります。
C言語(VC等)などでプログラムするとメモリーリークに気をつかいますが, VBだとプログラミングミスからメモリーリークが起こることは,あまりないはずです。
まぁ,VBに他のコントロールを貼り付けていて,そのコントロールがメモリー リークを起している場合もあるでしょうから,別にVBだけが悪い訳ではない のでしょう。

え゛っそんなに重要なら,VBなんかで書くなって...ごもっとも。
でも,簡単に効果を得ようとすると,他になかなか選択肢がないのも事実なんですよね。


VB4の時代には,VAL関数は悪の象徴と 呼ばれていました。
非常に便利な関数なのですが,マイクロソフトはなるべく使わないように 呼びかけていたような気がします(定かではありません)。
VAL関数に代わって,それぞれの型に応じた変換関数を使うことを推奨 していたと記憶しています。
VAL関数を多用したプログラムを書いて,連続8時間程度動作させていると, 見事に異常終了してしまう,なんていうことが結構ありました(後, Variant型の変数とか)。

これらは,扱っているデータの型を超えた処理ができる(ハズ)ので,いろんな データが通る共通処理ルーチンなんかで使ってしまい,後から後悔するという ことが多かった (T^T)

個人的には,VB5になってから試してないのでどのくらい変ったのかが不明 なんですが,あまり期待してないので危なそうな関数・ステートメントは避けて 通ることにしています。
(ただ,Variant型については,先日,某VB専門誌上の米国発の記事で,利用を 推奨?していたこともあり,もしかしたら既に直っているのかもしれませんね, 英語版では。)

さて,もうすぐVB6が発売されますが,こういった耐久性の面での進化を 見てみたいもんだ,と思っているのは,私だけではないでしょう。
(でも,こういった不具合(仕様?)って,何を探せば分かるんだろう...)
どなたか知っている方がいらっしゃれば,こっそりでいいから教えて下さい。

戻る