- PR -

JSPで読み込んだまま固まる・・・・・

投稿者投稿内容
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-11-26 18:11
いつもお世話になります。

現在、JSPでツリー表示を引き継ぎ、作成しています。
部品は、JSP(画面)、ツリー動作用のJS(クッキー使用)、
カスタムタグ(Javaファイル)です。
また、フレームワークにstruts1.1を使用しているので、タグに対してtldなどが
付属します。

System.outやAlert等を出して、どこで止まっているのか見ていたのですが、
Action処理(サーバ側)が終わり、画面表示でカスタムタグが働きツリーの構成を終了し、JSを呼び込んで開いた閉じた判定の処理を行っています。
で、画面上では「(XX個)画像を読み込んでいます・・・・」
と出たまま固まってしまい、他の画面に遷移も出来ません。
また、その固まるタイミングがマシンによってまちまちで、自分のマシンはかなり
早いタイミングで固まり、あるノートではいつまでたっても固まらないものもあります。

現在判っている固まる条件は、5,6個以上のノードがあるといずれ固まり、10以上あれば、読み込んだ瞬間に固まります。

使っているクラスに
com.fgm.web.menu.MenuComponentと言うものがあり、これに関しての
情報を、引き継げず回ってきたため、現在は情報収集中です。

何方か、同様の不具合にあった方、もしくは対処法を市っていらっしゃる方はいらっしゃらないでしょうか?

以上、不明瞭な書き方かもしれませんがソースの貼り付けを行うにも精査して貼り付けてやらないとかなりごちゃごちゃしてしまうので・・・・申し訳ありません。

以上、皆様のお力をお貸しください。よろしくお願いいたします。

自身の開発環境
OS:WinXP Pro SP1
サーバ:Tomcat4.1.24
フレームワーク:struts1.1
DB:Oracle9i


[ メッセージ編集済み 編集者: C'zka 編集日時 2003-11-26 18:13 ]
乳牛
常連さん
会議室デビュー日: 2003/04/15
投稿数: 22
投稿日時: 2003-11-26 18:26
固まるってのはどんな状態ですか?

1.ブラウザが反応しない
2.HTTPレスポンスが返ってこない

1ならJavaScriptの問題か、ブラウザのバグか・・・
2ならサーバがわのCPU使用率を見たりしてみてください。
無限ループなら使用率が高いはずです。
出現率がまちまちということでガーベジコレクタが動いていて止まっているように思えるのかもしれません。
ログを吐き出させて止まっているところをはっきりさせましょう。Eclipseなどのツールを使ってステップ実行してみるのも手です。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-11-26 18:47
こういったケーす、JVMプロセスが落ちていないのであればスレッドダンプの解析が非常に有効です。
DOS窓を最前面にして ctrl+break と入力すると出力されます。それぞれのスレッドがなにを処理しているのかわかりますので、数回取ればどこで固まっているかわかりますよ。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-11-26 18:49
早速のレス、ありがとうございます。

先ほども一応書いたつもりではいたのですが、Action処理、taglib処理、JavaScript処理は全て終了し、画像表示を行おうとして読み込み中のままになります。
なので、サーバ側のログは終了していて、taglibのログも出力し終わり、JavaScriptに入れたAlertも全て出ていました。
一度固まると、画面上の一切が機能しなくなり(ボタン等は押せるが、それだけ)、たまにツリーの遷移だけは動くことがあるのですが、JavaScriptにも遷移はしていません。

また、サーバはローカルです。

上記の通り、処理は全て終了している様子なので、CPU負荷も10%程度になっていました。

先ほど検索したら、現在使用している部品が見つかりましたので、リンクします
http://husted.com/struts/resources/struts-menu.zip

[ メッセージ編集済み 編集者: C'zka 編集日時 2003-11-26 18:53 ]
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-11-26 18:52
引用:

インギさんの書き込み (2003-11-26 18:47) より:
こういったケーす、JVMプロセスが落ちていないのであればスレッドダンプの解析が非常に有効です。
DOS窓を最前面にして ctrl+break と入力すると出力されます。それぞれのスレッドがなにを処理しているのかわかりますので、数回取ればどこで固まっているかわかりますよ。



レスありがとうございます。
このDOS窓は、TomcatのWindowの事でしょうか?それとも、別途立ち上げたものでしょうか?
乳牛
常連さん
会議室デビュー日: 2003/04/15
投稿数: 22
投稿日時: 2003-11-26 18:57
レスポンスは完全に返ってきている状態でだとすると問題はブラウザ側と考えてもよさそうですね。しかし、JavaScriptでRequestを投げるような処理があるとすると問題は遷移先のURLに割り当てられたServlet(ActionでしたっけStrutsの場合)に問題があるかもしれません。どっちなのか切り分ける方法を考えましょう。

ところで、JSPによって生成されるHTMLを静的HTMLとして作成して実行したら同じ現象は起きませんか?(JavaScriptの問題としてにらんでいる)

C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-11-26 19:07
引用:

木下牛さんの書き込み (2003-11-26 18:57) より:
レスポンスは完全に返ってきている状態でだとすると問題はブラウザ側と考えてもよさそうですね。しかし、JavaScriptでRequestを投げるような処理があるとすると問題は遷移先のURLに割り当てられたServlet(ActionでしたっけStrutsの場合)に問題があるかもしれません。どっちなのか切り分ける方法を考えましょう。

ところで、JSPによって生成されるHTMLを静的HTMLとして作成して実行したら同じ現象は起きませんか?(JavaScriptの問題としてにらんでいる)





ソースを見る限り、JavaScriptにはrequestを投げる処理はないかと思われます。
代わりに、cookieへのアクセスはあります。
この場合の静的と言うのは、今吐き出されているJSPのソースをhtmlで動かしてみるということでしょうか?とりあえず、試してみます。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-11-26 19:12
tiles等を書き換え、Tomcatを再起動してjsp→htmlに指定しなおしました。
結果から言うと、同一の問題が起こりました。

これは、やはりJavaScriptに問題があると見ていいのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)