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を見た人はこんなQ&Aも見ています
-
最近、いつ泣きましたか?
泣いてストレス発散! なんて言いますよね。 あなたは最近いつ、どんなシチュエーションで泣きましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【お題】絵本のタイトル
【お題】 「ないた あかおに」「ねないこ だれだ」「はらぺこあおむし」みたいだけど、一体これどういう内容?と思った絵本のタイトルを教えて下さい
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
submitするとなぜか2度実行する
JavaScript
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーバーにSSDじゃなくてメモリ...
-
sims4についてです。 別のパソ...
-
Googleに企業サイトを作っても...
-
共有サーバーの特定のフォルダ...
-
バックアップ用に25万円のPCを...
-
エックスサーバーでhttpd.conf...
-
discordで2人だけのサーバー作...
-
【QnapNAS】不良HDDと診断され...
-
これ押したらヤバイやつですよね?
-
自社のシステムのサーバーの変...
-
FTP送信元のIPアドレスを調べる...
-
ホームページのサーバーとメー...
-
サーバのIPを調べるには?
-
QNAPの設定について
-
フォルダのアクセス権管理について
-
centOS6の「/etc/hosts.allow」...
-
ブレイドサーバーと仮想サーバ...
-
サーバ空きスペースの活用方法
-
検索サーバーのHDDなど通常どれ...
-
【Amazon・PPA契約】アマゾンと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IISのログに出力される「GET」...
-
フォルダを移動した犯人は誰?
-
TeraTermのログが正しく取得出...
-
ログとダンプの違いって・・・
-
外付けHDDへのアクセスログを取...
-
Webで重い処理をするとリクエス...
-
Cosminexusのログエージェント...
-
sendmailで遅延が発生したとき...
-
USBを刺した記録を消す方法
-
Apache アクセスログ 不審な足跡
-
DISMのログを見る方法を教えて...
-
ユーザアカウント等の管理にお...
-
イベントIDが529と680の失敗...
-
Windowsのシステムログをsyslog...
-
投稿者のIPを保存しない掲示板...
-
固定ではないはずなのにIPアド...
-
Winでいうイベントビューアって...
-
Apacheのログ出力方法とローテ...
-
フォルダを作成した人 or IP...
-
iPhoneのGPSログを確認する方法
おすすめ情報