バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > CSVを使った商品データの一括登録について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soop
投稿日時: 2010/5/5 20:15
対応状況: −−−
新米
登録日: 2010/5/5
居住地: 名古屋
投稿: 3
CSVを使った商品データの一括登録について
当方の環境は、EC-CUBEバージョン 2.4.3、PHPバージョン 5.2.13、DBバージョン MySQL 4.1.22です。

CSVで商品登録を行う場合、トランザクション処理の為、全レコード行が正常に処理された場合のみ、DBに登録される仕様と認識しております。
1行でも異常レコードが存在しエラーが発生した場合は、全ての行の登録がされない筈なのですが・・・

実際には100件のレコードをアップロードした際、10行目でエラーが発生し、先頭行は項目名の為、2行目から8件分のレコードが登録され、問題行の以前のレコードが格納されてしまいます。

この為、エラーが発生した場合に、格納されてしまったレコードを削除して再アップロードを行う事を強いられています。

仕様通りに稼働させる為の確認事項やチェック事項などありましたら、どんなことでも構いません。詳細にご教示頂ければ幸いです。
seasoft
投稿日時: 2010/5/5 20:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: CSVを使った商品データの一括登録について
最近、お客様からの依頼で、その辺りを検証したことがあるのですが、EC-CUBEコミュニティ(eccube-comu) と PostgreSQL の組み合わせでは、問題なくロールバックされました。

あくまで推測ですが、正式版固有の不具合か、MySQL との組み合わせによる不具合といった懸念がありそうです。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

gemini
投稿日時: 2010/5/5 22:02
対応状況: −−−
新米
登録日: 2009/3/17
居住地:
投稿: 7
Re: CSVを使った商品データの一括登録について
私は知りませんでしたがEC-CUBEはトランザクションが条件であるならばMySQLはストレージエンジンをInnoDBにする必要があります。
通常ではMyISAMタイプです。
seasoft
投稿日時: 2010/5/5 22:24
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: CSVを使った商品データの一括登録について
EC-CUBE では、商品回りは InnoDB だったかと。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

soop
投稿日時: 2010/5/6 9:08
対応状況: −−−
新米
登録日: 2010/5/5
居住地: 名古屋
投稿: 3
Re: CSVを使った商品データの一括登録について
早速のご返信ありがとうございます。

商品DBがInnoDBであることまでは確認したのですが・・・
ロジックもエラーがあればrollbackをコールしてて
そこはちゃんと通過しているようなので・・・
どうもrollback関数そのものが稼働していないような
症状なんです。

データベースの権限とかそのあたりが関係する場合も
あるのかと思い調査していますが、現在解決策を求めています。

引き続き、よろしくお願いします。

運用中のサイトのDBをmySQLからpostgreに変更する事が難しくなければ、そちらも視野に入れて検討する事とします。
seasoft
投稿日時: 2010/5/6 9:22
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: CSVを使った商品データの一括登録について
あくまで経験則による、可能性の一つという範囲ですが、MySQL ではシーケンス番号回りのロジックによって、トランザクションがコミットされるケースがあります。

そういった部分をチェックすると何か分かるかもしれません。


> 運用中のサイトのDBをmySQLからpostgreに変更する事が難しくなければ、そちらも視野に入れて検討する事とします。

基本的には慣れれば、さほど難しくは無いのですが、最初はテスト環境での練習などは、必要かと思います。また、DB のカスタマイズがあると、少々面倒な場合があります。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

soop
投稿日時: 2010/5/6 16:48
対応状況: 解決済
新米
登録日: 2010/5/5
居住地: 名古屋
投稿: 3
Re: CSVを使った商品データの一括登録について
いろいろ試してみましたが結局、data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.phpを以下のように修正し、明示的にautocommitの設定値を0にしてみたら、ロールバックが掛かるように成りました。

修正?
追加⇒ $objQuery->exec("SET AUTOCOMMIT=0");
   $objQuery->begin();

修正?
$objQuery->commit();
追加⇒ $objQuery->exec("SET AUTOCOMMIT=1");

修正?
$objQuery->rollback();
追加⇒ $objQuery->exec("SET AUTOCOMMIT=1");


察するに、「AUTOCOMMIT=1」の状態で該当PGMが稼働しているようです。bigin()内の解析は時間の関係上、回避します。

取り敢えず解決しましたので、ご報告いたします。
ご返信頂きました方々、誠にありがとうございました。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.