- PR -

サーブレットのタイムアウトってできますか?

投稿者投稿内容
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-12-03 09:12
みなさん、どうも有り難うございます。

なるほど、JDBCでタイムアウトさせるのはいい手かも知れませんね。
その方法で仕様を考えてみます。有り難うございました。

私も初心者です^^;
私の場合あまり内容の濃くない書き込みばかりしているので、「ベテラン」なんて表示されると困っちゃうな〜僕 > 忍者鳥取県さん
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-12-04 11:59
あれえええ???

JDBCのタイムアウトの設定ってどうやってやるんでしょう?
コネクションタイムアウトならわかるのですが、接続している時間のタイムアウトってあるんですか?

すみませんどうか教えてください^^;
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-12-04 12:14
JDBCではそういうインターフェースみつかりませんねぇ。

EJB も使っているとのことなので、JTA が使えるコンテナなんですよね?
UserTransaction#setTransactionTimeout() ではどうでしょう?
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/transaction/UserTransaction.html

恐らく明示的に設定しなくてもコンテナでデフォルトのタイムアウト値がありますが。
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2003-12-04 12:16
java.sql.StatementクラスにsetQueryTimeout()というのがあります。
ただし、これが実装されているかどうかわかりませんが。
プリンス
ベテラン
会議室デビュー日: 2003/07/05
投稿数: 78
お住まい・勤務地: 神奈川
投稿日時: 2003-12-04 12:51
引用:

たーぞうさんの書き込み (2003-12-04 11:59) より:
あれえええ???

JDBCのタイムアウトの設定ってどうやってやるんでしょう?
コネクションタイムアウトならわかるのですが、接続している時間のタイムアウトってあるんですか?

すみませんどうか教えてください^^;


Oracle9iだったらOEMの設定画面からセッションの最大実行時間とか、アクティブセッション数とか設定できたと思います。JDBCのAPIではなかったような...
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-12-04 13:16
みなさんどうも有り難うございます。

引用:

インギさんの書き込み (2003-12-04 12:14) より:
JDBCではそういうインターフェースみつかりませんねぇ。


そうですよねははは。まったくインギさんもAnthyhimeさんもお人が悪い(笑)。

引用:

EJB も使っているとのことなので、JTA が使えるコンテナなんですよね?
UserTransaction#setTransactionTimeout() ではどうでしょう?
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/transaction/UserTransaction.html

恐らく明示的に設定しなくてもコンテナでデフォルトのタイムアウト値がありますが。


ええ、WebSphere V5だからJTAは使えます。でもこれってJ2EEの仕様だから、やっぱりEJBに関するものなんじゃないのかな・・・?

#すみません。
#http://www.atmarkit.co.jp/fjava/keyword/jkey/jkey05.html
#を読むと、ServletからでもJTAを利用できるようですね。すみませんでした。

引用:

yuzyさんの書き込み (2003-12-04 12:16) より:
java.sql.StatementクラスにsetQueryTimeout()というのがあります。
ただし、これが実装されているかどうかわかりませんが。


なるほど。これだと1回のSQL発行に対するタイムアウトになりますが、でも有力な手段ですね。

引用:

プリンスさんの書き込み (2003-12-04 12:51) より:
Oracle9iだったらOEMの設定画面からセッションの最大実行時間とか、アクティブセッション数とか設定できたと思います。JDBCのAPIではなかったような...


ははーん。これならプログラムに特に手を加えなくてもタイムアウトを実現できそうですね。

どうも有り難うございました。さっそく検証してみます。

[ メッセージ編集済み 編集者: たーぞう 編集日時 2003-12-04 14:18 ]

[ メッセージ編集済み 編集者: たーぞう 編集日時 2003-12-04 14:19 ]
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-12-04 16:41
むむ。
http://www.atmarkit.co.jp/fjava/rensai2/webopt13/webopt13.html
の「タイムアウトも忘れるべからず」を読むと、リクエストの処理中にタイムアウト処理が呼ばれたと書いてあるぞ・・・

ということは忍者鳥取県さんの方法も検討する価値がありますね♪
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-12-04 16:59
>java.sql.StatementクラスにsetQueryTimeout()というのがあります。
おっと、そんなのがあったんですね。勉強になりました。

>の「タイムアウトも忘れるべからず」を読むと、リクエストの処理中にタイムアウト処理が呼ばれたと書いてあるぞ・・・

以前のバージョンではそんなこともあったようですが、私が検証した範囲内では、少なくとも最新の WLS ではリクエストの処理中にセッションがタイムアウトすることはありません。
リクエストの処理中にセッションがタイムタイムアウトする可能性があるのだとすればコーディング上非常に厄介なことになります。
→WAS ではどうなんでしょう!?

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