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