- ベストアンサー
【助けて下さい!】Tomcat + PostgreSQL について
こんにちは。今本当に困っています。 Tomcat + PostgreSQL で JSP ページを作成しているのですが、同時に複数のパソコンから接続すると、画面が乱れてしまいます。挙動はそのつど違うので何とも説明しがたいのですが、複数の接続の内容が一つのソケットに統合されてぐちゃぐちゃになって出てくる(?)様な感じです。 そもそも、Tomcat は1接続に対して1スレッドを作成し、この様な事は起こらない様になっているのではないのでしょうか…? 当方の開発の仕方に何か問題があるのでしょうか。かなり困っています。なにとぞ、お力をおかし下さい。よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >開発環境は MacOS X Server + Tomcat 4.1 + PostgreSQL 7.4.2 です。 Macですか・・・当方での環境再現は難しそうですね。 まずは問題の整理をしましょう。 >「xxx.jsp?page=sub 」が表示されるべきパソコンには「xxx.jsp?page=main」の途中まで+「xxx.jsp?page=sub」の中途半端なページが表示される様な感じです。 「xxx.jsp」にQueryStringで値を渡して表示する内容を分岐しているわけですね。しかし、本来表示されるべきでない部分まで表示されてしまう、ということですね? まずは、表示データがどの時点で改竄されているのかを把握する必要があります。JSPにはデバッグライトをして、通信データのモニタも行う必要があると思います。 Macで使えるツールは知らないので、申し訳ありませんが、自力で探してください。
その他の回答 (1)
- tsuna555
- ベストアンサー率53% (22/41)
焦っているのはわかりますが、まずは落ち着いて下さい。 まず「画面が乱れる」というのは、表示される内容が想定したものでないものが表示されるということですか?第三者にわかるように状況を客観的に説明していただかないと回答のしようがありません。 次に、問題の切り分けを行って下さい。「JSPのコーディングミスなのかTomcatの設定の問題なのかなど、複数複合問題なのか」というように、問題が再現する条件を把握してください。それをしないと本当の原因がわかりません。 また、開発およびテスト環境も示していただきたいと思います。
補足
はい、焦ってしまってすみません…m(v_v)m 例えば、xxx.jsp?page=main というリクエストと、xxx.jsp?page=sub というリクエストを、別々のパソコンで行ったとします、そうすると「xxx.jsp?page=main」が表示されるべきパソコンにはそのページが出力され、「xxx.jsp?page=sub 」が表示されるべきパソコンには「xxx.jsp?page=main」の途中まで+「xxx.jsp?page=sub」の中途半端なページが表示される様な感じです。 なので、Tomcat の内部でソケットがごっちゃになっているのではないかと思ったのですが…。そんな事ってあり得ないと思うので、とても困って+焦っています。 普通に同時に接続をしないで1台のパソコンのみで接続すると、普通に見えます。なので、単純なコーディングミスという事ではないと思われます。 開発環境は MacOS X Server + Tomcat 4.1 + PostgreSQL 7.4.2 です。
お礼
何度も申し訳ありません。ご回答ありがとうございます m(v_v)m 先ほどから色々調べつつ、実験していましたら、何とも情けない事に isThreadSafe というオプションがあるのを知らないで書いていました。 どうやら、インスタンス変数が変に参照されていた事が問題だった様です。 isThreadSafe="false" で解決できました。ただ、速度が落ちてしまったのでいずれはスレッドセーフな JSP に改良していこうと思います。 ありがとうございました。