アプリ版:「スタンプのみでお礼する」機能のリリースについて

Tomcatの設定で困っています。
現在、MySQLとTomcatでJDBCを用いてブラウザゲームを作成しております。

あるプログラムを何度か実行すると、Tomcatがどんどん重くなります。

TomcatのManagerでサーバーの状態を見ると、
"http-bio-8080"の何個かのスレッドのTimeがもの凄い時間になっていました。

Tomcatを再起動すると、直り、動作も軽くなります。

これは、いったいどういった状態なのでしょうか??完全に初心者なので教えてくださると助かります。

"http-bio-8080"
StageTimeB SentB RecvClientVHostRequest
R??????
P??????
S5797966 ms0 KB0 KB○.○.○.○○○.ne.jpPOST ○○○ HTTP/1.1
R??????
P??????
R??????

こんな感じです。Timeが長く、上手く処理されないスレッド?がないときは動作は軽いです。
こちら、対処法などございましたら、ご教示ください。

A 回答 (1件)

Tomcatの設定なのかなぁ?と、思ってます。


もちろん隣で全ソースを眺めてないので何ともですが…

まずは問題を切り分けましょう!
怪しそうなところから。

まずDBアクセスです。
ResultSetやStatement、Connectionはしっかり閉じてますか?
close()を呼んでますか?
遅延やフリーズは大体、この辺りをミスってることが多いです。

今一つピンときていなければ、どこで遅延が発生しているか
System.outしてみましょう。
フレームワークを使ってるのか分かりませんが、
1・サーブレットクラスのdoHogeHogeが呼ばれた直後
2・DBアクセス前
3・DBアクセス後
4・サーブレットクラスのdoHogeHoge終了直前
の4箇所で
System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(new Date()));
って書いて、どんどん実行します。
遅延が酷くなる箇所があれば、その間のソースが怪しいです。

最後にTomcatです。
Tomcatの設定はイジりましたか?
イジったのであれば、その箇所を提示してください。
(例えばコネクションプーリングの設定を行った等)
高度な変更を行っていなければ、tomcatはまずないと思っています。

上記3つを確認して、分からなければまた聞いてください。
    • good
    • 0
この回答へのお礼

やはり、プログラミングの問題だったようです。
Tomcatの設定では、そこまで遅延はならないのですね。
大変助かりました。ありがとうございます。

お礼日時:2012/11/27 22:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!