バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (12 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 25
もっと...

サイト内検索

バグ報告 > 管理機能 > 仕様バグ?

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
abeabe01
投稿日時: 2009/2/20 18:06
対応状況: −−−
新米
登録日: 2009/2/20
居住地:
投稿: 3
Re: 仕様バグ?
お世話様です。

PHPからのトランザクションの動作を少し検証してみました。

トランザクション自体が、CSVでアップロードされたデータを
処理するループの外にかかっているため、

LC_Page_Admin_Products_UploadCSV_Ex.phpの

// 実行時間を制限しない
set_time_limit(0);

の設定によるのか、トランザクションブロックの内側で
タイムアウトや強制終了する様な状況になると
データがコミットされてしますのではないでしょうか?

CSVでの登録は、

「IDを指定しない新規登録」
「IDを指定した更新」

のいずれかで処理している様に思われますので、

トランザクションの中で落ちた場合に、
データが中途半端に登録されるので、
落ちるタイミングによっては変なデータが残ってしまうの
かと思われます。
パフォーマンスは落ちますが、
現状では、CSVデータの1件毎に
トランザクションをかける方が良いのではないでしょうか?

また、

LC_Page_Admin_Products_UploadCSV_Ex.phpの

// 行カウント
if($line <= 1) {
continue;
}

は、$line < 1 としないと、
CSVで1件のデータは登録できないように思われますが...

思いつく登録時の流れ(対応)としては、

1、商品1件のスキーマ毎にトランザクションをかける
2、登録できたデータと登録できなかったデータを振り分けて
  ログを吐き出す。
3、タイムアウトが起きない様に一定件数でクライアント
  (ブラウザ)を介す様にする。
4、IDの指定が無い場合は、ID自動発行で新規登録する。
  IDの指定がある場合は、該当データのある場合は更新
  IDの指定がある場合で、該当データの無い場合は新規登録

このくらいのパターンがあれば、登録時の問題はいくらか
解消されるのではないかと思います。

後は、データベースの最適化でしょうか?
これまでの経験ですと、スクリプトなどのコーディングで
データベースエンジンをラッピングしようとすると大変な
ので、ストアドを介す様にして、ストアドの名前をなるべ
くそろえて、可能な限りデータベース側でラッピングした
方がスムーズの様です。
データベースの方言や拡張関数等もある程度ストアドで
吸収することも可能です。

時間が取れれば、開発に参加してみたいとも思います。

ご検討ください。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   仕様バグ? abeabe01 2009/2/20 6:46
     Re: 仕様バグ? nanasess 2009/2/20 9:57
     » Re: 仕様バグ? abeabe01 2009/2/20 18:06
         Re: 仕様バグ? nanasess 2009/2/20 18:26
           Re: 仕様バグ? seasoft 2009/2/20 20:09
             Re: 仕様バグ? abeabe01 2009/2/20 21:04
         Re: 仕様バグ? seasoft 2009/2/27 18:24
     Re: 仕様バグ? seasoft 2009/2/20 10:43

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,377名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.