バグ報告 > 管理機能 > order_idが飛ぶことがある(連続しない) |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
homan |
投稿日時: 2009/6/19 17:01
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
order_idが飛ぶことがある(連続しない) とある案件で、不可解な?現象が起こっております。
<現象> 通常はorder_idは連番で振られるはずなのですが、 dtb_orderのテーブル、及びdtb_order_tempのテーブルで 例えば「30、31、33、35、36…」とorder_idが連続されないことがあります(そこそこの割合で発生しています)。 決済モジュールを導入している案件なのですが、 dtb_orderにもdtb_order_tempにも上記から抜けた 「32」や「34」などの情報がなく、 理由もはっきりしないのでなんだか気持悪いのです。 (決済モジュールを行き来したりすると、なったりするもんでしょうか) これに関連するかどうかわかりませんが、 欠番した番号(仮に34とします)とその次の番号(この場合35番)の両方で決済会社側の管理画面では課金になっているにもかかわらず、EC-CUBE側では35番しか上がってきていないこともありました。(34番はDB内に存在しませんでした) 今のところ情報が少なすぎてなぜこうなるのか、というのをお客様に説明できないでいます。何かご存じの方がいらっしゃれば、小さなことでも構いませんので、お教えいただけますと幸いです。 <環境> EC-CUBE 2.2.0-beta PHP 5.2.8 PostgreSQL 8.3.5
|
ramrun |
投稿日時: 2009/6/19 17:47
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: order_idが飛ぶことがある(連続しない) トランザクションでのnextvalってrollbackで戻らなかったと思いますけど...
mysqlでもauto incrementはbeginで確保されて、rollbackで戻らないので次の数字になっちゃいます。 どうしてrollbackしちゃったのかは調査しないといけないかと。 勘違いでしたらごめんなさい。 |
homan |
投稿日時: 2009/6/19 17:59
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: order_idが飛ぶことがある(連続しない) 引用:
ご返信ありがとうございます! なるほど、そういうことであれば一応正常な動き・・・ということでしょうか。 とりあえず番号が被りさえしなければいい、ということで考えれば問題ないのかなぁと思いました。 あと決済の件ですが、「/data/site.log」をみると ---------------------- [/shopping/load_payment_module.php] access error. from IPアドレス ---------------------- というログがのこっていて、どうやら以下のスレッドと同じような現象が起こっているのかもと思っています。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=3821&forum=10 弊社の環境では上記のPHPにアクセスしても特にエラーはなく、 全てのお客様において不具合が起こっている様子がないことから、 ある条件下では[/shopping/load_payment_module.php]にアクセスした際に、真っ白になるなどの現象が発生している可能性も考えて、調査進めたいと思います。
|
ramrun |
投稿日時: 2009/6/19 19:04
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: order_idが飛ぶことがある(連続しない) 一応ソース貼っときます。
↓のページの一番下と、 PostgreSQL 8.3.5文書 第 9章関数と演算子 シーケンス操作関数 http://www.sraoss.co.jp/PostgreSQL/Manual/document/pg835doc/html/functions-sequence.html キャッシュの設定にもよるみたいです。 PostgreSQL 8.3.5文書 リファレンス CREATE SEQUENCE http://www.sraoss.co.jp/PostgreSQL/Manual/document/pg835doc/html/sql-createsequence.html |
seasoft |
投稿日時: 2009/6/19 23:26
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: order_idが飛ぶことがある(連続しない) かなり斜め読みでレスしています。全く外しているかもですが・・・
注文過程で dtb_order_temp のレコードまでは生成したけれども、最終的に注文完了まで至らなかった(dtb_order は生成されなかった)というケースでは? そういったケースで、dtb_order_temp に挿入されたレコードが、削除されるのか検証をとったことはありませんが、何かそういったルートがありそうな予感がします。 もっとも、 > とりあえず番号が被りさえしなければいい、ということで考えれば問題ないのかなぁと思いました。 がごもっともだと思います。ただ、原因が不明だと気持ち悪いですよね。
|
popo |
投稿日時: 2009/6/22 21:52
対応状況: −−−
|
長老 登録日: 2008/10/1 居住地: 投稿: 189 |
Re: order_idが飛ぶことがある(連続しない) 注文番号が飛んでしまう症状は、私も何度も経験した事があります。
私の経験上では、お客さんが連続して注文ボタンを教えてしまった場合、注文番号が飛んでしまう事があります。 私の場合は、sendmailがビジーな状態の時に、お客さんが注文ボタンを押した時に、なかなか注文完了画面が表示されずに、何度もお客さんがボタンを押してしまった場合に、注文番号が飛んでしまう症状が発生しました。 時には、5〜6数字が飛んでしまっている事もありました(^-^; 恐らくhomanさんの案件も、連続して注文ボタンを押したから、注文番号が飛んでしまう現象が発生しているのだと思います。 参考になれば幸いです。 |
homan |
投稿日時: 2009/6/22 22:18
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: order_idが飛ぶことがある(連続しない) みなさん、ありがとうございます!!!
popoさんがおっしゃる通り、数回クリックした可能性はありますね。 クレジットカード決済で多重購入になってしまっても、 最終的に消し込みしなければ何とかなると思っていましたが、 なんとデビットカードもクレジットカード支払いから 入力して利用できるらしく、それは防ぎようがありませんでした ログ等をもう少し追っかけてみようと思います〜!
|
tao_s |
投稿日時: 2009/6/22 23:46
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: order_idが飛ぶことがある(連続しない) どこの決済サービスだったか忘れましたが、一度オーソリに失敗すると、その時送ったorder_idは二度と使えなくなってしまい、再度order_idを発行していた様な気がします。
|
seasoft |
投稿日時: 2009/6/23 7:24
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: order_idが飛ぶことがある(連続しない) 当方の試験環境でも発生していますね。多重クリックを行なうことは無いはずので、他にも原因があるかも。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |