こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CGIアプリ(一般的なこと)

お世話になります。
頭が混乱してしまったので確認させてください。

ブラウザ上のボタンを押して、CGIアプリを実行する場合
例えばCGIアプリをabc.exeとすると
abc.exeのmail処理からreturnまで処理される、
(returnの直前でブラウザに結果を出力)
と、いうことで合ってますか?
abc.exeの処理時間が長くても最後のreturnまで処理されますよね?
cgiのタイムアウトまではいかないこととしてください。

その長い処理の間にブラウザを閉じてしまってもabc.exeは処理をし、
結果出力でエラーですよね。ブラウザは閉じられているので。

エラーについては置いときまして(^^;)
mainの後とreturnの前にLOG出力させているのですが、数が合わないのです。
実際はmailの後にDB.openしているので「open」、
returnの前にDB.closeしているので「close」のようにLOGを書いています。
open-closeはペアだと思うのですが、openが多くてcloseが少ない。
これは単純にLOGに書けなかっただけでしょうか?
どういう時にそのようなことが起きるのでしょうか?
これは「画面が固まったのでブラウザを閉じて操作をやり直した」との申告でLOG解析をした結果です。
LOGでは固まったということは解析できなかったのですが、
確かに open、open と続いてたりしてました。
ちなみに一人だけで操作しているときです。

しばらくぶりにWebCGIの解析で、一般的な動きが...???混乱してます。
どなたか、アドバイスをお願いいたします。

投稿日時 - 2017-11-16 16:07:13

QNo.9398069

すぐに回答ほしいです

質問者が選んだベストアンサー

jg1wjzさんの過去の質問履歴を見ましたが、Windows10とかWindows7とかをサーバーとして使っているようですが、abc.exeの実行中にWindows Updateによる自動再起動が起きたとかいう可能性は無いですか?

投稿日時 - 2017-11-17 11:35:09

お礼

kawais070 さま、ありがとうございます。
WindowsServer2012R2で動いているのですが、
そのあたりはわかりません。(担当者がすでに現地から引き上げ)

それで、今日はIISログを見てみましたところ、
変な動きをしていた時は
sc-status、400、sc-win32-status 64
になっていました。
(アプリで入れ子発生ログとIISログでTimeStampが同じでした)

なぜかFileds名が無くて、内容で判断したのであってるかどうか。
ただ、他はすべて 200 0 でしたので。

コードを一応調べましたが、
これって、ネットワークの環境 と片づけていいものでしょうか。
なんか、投稿質問とずれてきてしまいましたがお許しください。

とりあえずのご報告です。

投稿日時 - 2017-11-17 14:17:25

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

> sc-win32-status 64

abc.exe から DB へのアクセス時にネットワークエラー?かな?
DBオープン時、SQL実行時でエラーが発生したのかな?エラー処理はちゃんと書かれていますか?

投稿日時 - 2017-11-17 14:36:59

お礼

kawais070 さま、ありがとうございます。

CGIアプリのログで特に異常は書かれていないです。
今までのdebug環境上のIISログも見てみました。
まったくゼロではなく、14日間で3件発生していました。
このうち2件は私が試験していたと思われますが、体感的に異常と思える事象はありませんでした。
システム的に表示内容(DB内容の表示など)も見た目、問題ありません。

で、今いろいろパターンを試してみましたところ、処理時間が長いと発生するようです。time-takenが14437とか14799で発生しています。
14081程度では発生していません。???(毎回じゃないんでしょうか...)
他のtime-takenは500以下です。

いままでここまで調べたことがなかったのですが
MAXの処理だと時間はかかっていました。
ただ無駄なログも取りすぎてる感があります。影響あるでしょうか。

投稿日時 - 2017-11-17 17:17:16

ANo.2

Webサーバの設定次第では、ブラウザとのセッションが切れたらCGIプロセスを殺す事もあります。

投稿日時 - 2017-11-16 17:03:10

お礼

t_ohta さま
...ということは、WebServerの設定なんですね。
今、試したところ(別環境)、ブラウザを閉じてもabc.exeはプロセスとして存在してました。プロセスがなくなってからログを見たら、ちゃんとcloseログがありました。

たぶん、WebServerのその辺りはdefault設定のままだと思います。
セッションが切れた時の設定あたりを調べてみます。
ありがとうございました。

投稿日時 - 2017-11-17 10:25:07

ANo.1

abc.exeが実行途中でハングアップした、というところでしょう。
abc.exeにバグがないか、しっかりチェックするしかないかと…

投稿日時 - 2017-11-16 16:51:49

お礼

kawais070 さま
ありがとうございます。

最初はそれを疑ったのですが、そのあと同じことをしても再現せず。。。

やはりログに残らないのはおかしい...ということなんですね。
もう一度、変なところでログは切れていないか解析してみます。

投稿日時 - 2017-11-17 10:27:56

あなたにオススメの質問