
PHPでフレームワークのCAKEを使ってWebシステムを作っているのですが、どうしてもわからない点があるので、ご教授頂きたく質問させていただきました。
現在Webサーバ2台とDBサーバ1台であるサービスを運営しています。
Webサーバはロードバランサで負荷分散をしています。
画面上でどうしても重たい処理をする必要があり、実行しているのですが、リクエストが10回飛びデータが10個登録されるという不思議な現象が起こっており対応に困っています。
開発用にWebとDBが一緒の開発用サーバもあります。やったことは
1.開発用のサーバで同じデータ、同じ処理を実行
リクエストは1回でデータも1個登録
apacheのアクセルログにも1回アクセスされている
2.運営用のサーバで同じ処理だが、データ量を減らして実行
リクエストは1回でデータも1個登録
apacheのアクセルログにも1回アクセスされている
3.運営用のサーバで同じデータ、同じ処理をIPアドレスを指定して実行
リクエストは1回でデータも1個登録
apacheのアクセルログにも1回アクセスされている
4.運営用のサーバで同じデータ、同じ処理を実行
リクエストは10回でデータも10個登録
apacheのアクセルログにも10回アクセスされている
以上の結果からロードバランサで何かしらのことがされているのかと思い、サーバ会社に問い合わせてみたのですが、「そんなことはない」との回答でした。
他に何をどう調べたらいいのかもわからず、かなり手詰まりなかんじです。
手がかり、確認内容などなんでもいいので、ご教授頂けないでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
とりあえず、クライアント側の通信内容を見てみてはどうでしょう。
リクエストは以下の順で流れます。
ブラウザなどクライアント → ロードバランサ → Apache → PHP
クライアントが 1回リクエストを送って、Apacheに 10回くるなら、
ロードバランサが悪さをしてる可能性が高いです。
クライアントが PCのブラウザなら、
FireFox の LiveHttpHeaders という AddOn で簡単な通信内容がみれます。
他にはWireSharkなどのパケット監視ツールも使えます。
もしブラウザが 10回リクエストを送っているなら、
ロードバランサはたぶん関係ありません。
その場合はブラウザのレスポンスも見ます。
リクエスト1 → レスポンス1 → リクエスト2 → レスポンス2→...
のようにレスポンス取得完了後に、次のリクエストを送っているなら、
サーバー側が再通信させるレスポンスを返しているのではないでしょうか。
リクエスト1 → リクエスト2 → レスポンス1 → レスポンス2→...
のようにレスポンスが完了する前に次のリクエストを送っていれば、
サーバー側は関係なく、クライアント側が連続リクエストしていることになるので、
JavaScriptやブラウザの問題だと思います。
参考になるか分かりませんが、私が以前経験した似たようなケースで、
登録データが多すぎる → 通信に時間がかかりすぎてタイムアウト → クライアントの機能で通信自動リトライ
結果、何度もリクエストしてデータが重複登録される、ということがありました。
ご回答ありがとうございます。
レスポンス情報をみてましたら、リクエスト1 → リクエスト2 → レスポンス1 → レスポンス2のような感じでリクエストが送られているようです。
ブラウザはfirefoxに関係なくIEやChromeでも同様の検証なので、ブラウザは関係ないと思います。
javaScriptでは特に怪しそうな動作はしていないので、何か他に原因があるかと思いますので、もう少し探ってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダを移動した犯人は誰?
-
固定ではないはずなのにIPアド...
-
外付けHDDへのアクセスログを取...
-
Winでいうイベントビューアって...
-
フォルダを作成した人 or IP...
-
ユーザアカウント等の管理にお...
-
Webで重い処理をするとリクエス...
-
IISのログに出力される「GET」...
-
サーバーは、普通のPCとして...
-
アドレスの前にwwwの他にw...
-
メールソフトの互換性について(...
-
ドメイン環境でのサーバとクラ...
-
心理職の方に質問します
-
gsコマンドでエラー
-
ログに記録される時刻がずれて...
-
クロックの同期が取れずにネッ...
-
CPU、メモリ、ディスク容量など...
-
フリーまたは安価でこのような...
-
IIS FTPサーバーログ中の時刻が...
-
NTPで同期が始まらない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダを移動した犯人は誰?
-
IISのログに出力される「GET」...
-
外付けHDDへのアクセスログを取...
-
TeraTermのログが正しく取得出...
-
ログとダンプの違いって・・・
-
VLOG
-
Cosminexusのログエージェント...
-
USBを刺した記録を消す方法
-
DISMのログを見る方法を教えて...
-
Webで重い処理をするとリクエス...
-
ログ公開
-
ユーザアカウント等の管理にお...
-
ログ監視ツール
-
Winでいうイベントビューアって...
-
IT?監査について
-
WinXPでログをとるには、どうし...
-
Apacheのログの見かた!
-
ルーターのログ機能
-
Winでアクセスログをとるこ...
-
Windows2000サーバーのログ
おすすめ情報