- PR -

strutsでActionが2重で処理されてしまう。

1
投稿者投稿内容
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2007-02-06 23:58
タイトルが紛らわしくてスミマセン。
現在、単純な検索(条件入力→検索→結果表示)を行うWebアプリをstrutsを用いて作成しています。

「検索」ボタンで検索処理が走るのですが、なせか1回の「検索」ボタンのクリックで
2回、検索処理が実行される現象があります。それが毎回2回実行されるわけではなく、
不定期に発生します。

ログでイメージを表現しますと以下になります。
・通常
24:52:30 アクション開始
24:52:31 処理実行
24:52:35 アクション終了

・異常時
24:52:30 アクション開始
24:52:30 アクション開始
24:52:31 処理実行
24:52:31 処理実行
24:52:35 アクション終了
24:52:36 アクション終了 (←微妙に時間は遅れていたりします。)

といった感じになります。
どういった観点で確認/調査をするべきか、ご教授いただけると幸いです。
漠然とした内容かとは思いますが、よろしくお願いいたします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-07 00:05
JavaScriptで2重送信とかしていませんか?
onsubmitのハンドラでsubmitしているとか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-07 00:11
アクセスログを確認して、当該時刻に当該クライアントから2件来ているかどうか確認してみてはいかがでしょう。
たぶん2件来ているのだと思いますが、だとすれば Struts の問題ではなく html 側の問題だと言えますね。
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2007-02-07 00:14
引用:

かつのりさんの書き込み (2007-02-07 00:05) より:
JavaScriptで2重送信とかしていませんか?
onsubmitのハンドラでsubmitしているとか。



To かつのり様
ご指摘ありがとうございます。
確かに、「検索」ボタンが押されると、onclickで別途Javascriptを呼んでおり、
そこでもsubmitしています。(もっと早く気が付くべきでした。。。)
処理の流れとともに確認してみます。

ただ、この場合、毎回2回submitされると思うのですが、今回の現象は不定期に
発生しています。ご指摘いただいたミスをしていると、不定期になるものなのでしょうか?

いずれにしましても、まずは確認したいと思います。
ありがとうございました。

Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2007-02-07 00:18
引用:

インギさんの書き込み (2007-02-07 00:11) より:
アクセスログを確認して、当該時刻に当該クライアントから2件来ているかどうか確認してみてはいかがでしょう。
たぶん2件来ているのだと思いますが、だとすれば Struts の問題ではなく html 側の問題だと言えますね。



インギ様

返信いただきありがとうございます。
今はローカルの環境で開発をしており、クライアントとしては必ず1台(自分自身)に
限定はされております。ただ、かつのり様からもご指摘いただいた内容を踏まえますと、
インギ様のおっしゃるとおり、Strutsではなく、単純にHTMLレベルの問題に思えます。
確認不足でした。。。
こういった客観的な観点を常に持っているようにしないとダメですね。。。

ご指摘ありがとうございました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-07 01:39
クライアントのスクリプトでの2重送信が不定期になる可能性は多々あります。
1度目の送信と2度目の送信の処理の間に画面が切り替われば、
2度目の送信は行われません。

検索+レスポンスの速度の差や、単純なプログラムミスなど、
色々要因はあるでしょう。こちらからでは分かりかねますが。
まずは、問題がそのスクリプトであるという、
問題点の切り分けが出来ればいいのではないでしょうか。

Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2007-02-08 22:35
やはりスクリプトが悪さをしていました。
原因の切り分けとしては基本をちゃんとおさえて進めたいと思います。
ありがとうございました。
1

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