質問 > 管理機能 > 大量の規格登録でエラーが出るが、規格を削除したら |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nanasess |
投稿日時: 2020/6/30 18:07
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら 無事解決できてよかったです。
カテゴリは多重アクセスなどで不整合を起しやすいので、プラグインとの兼ね合いで不整合になってしまったのかもしれませんね。 |
horai |
投稿日時: 2020/6/29 21:22
対応状況: 解決済
|
半人前 登録日: 2013/3/20 居住地: 投稿: 15 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら >nanasess さん
いろいろアドバイスをいただきありがとうございました。 こちら解決しました。 解決した過程ですが ・Parent_category_idがおかしいカテゴリーのParent_category_idを修正する(今回の場合Catgory_idが141が対象) ↓ ・商品登録はできるようになったが規格の修正はタイムアウトから「MDB2 Error: constraint violation」のエラーに変わる ↓ トライアンドエラーで調べたら、唯一入れている会員価格プラグインをオフにすると動くことが判明 ↓ プラグインのバージョンアップを行う ↓ 規格更新が回復 という感じでした。 クライアントのヒアリングにより、141のカテゴリーの項目名を変更したらシステムエラーが出るようになったそうなのですが、何が引き金になったのかがいまいちわかりませんが・・・ 長々と質問を続けてしまい、ご迷惑をおかけいたしました。 最初のプラグインのコンフリクトというアドバイスに立ち返り、 何とか危機を脱出できました。 |
horai |
投稿日時: 2020/6/27 1:33
対応状況: −−−
|
半人前 登録日: 2013/3/20 居住地: 投稿: 15 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら >nanasessさん
何度もご回答いただきありがとうございます。 少しだけ進展がありましたのでご連絡いたします。 DBとファイルをコピーしてテスト用の同環境を作り 内容を空にするなどしてトライ&エラーを繰り返していたところ、 dtb_categoryを空にしたところ 今までタイムアウトで動かなかった商品登録の処理が完了まで動きました。 dtb_categoryを確認したところ、最後の方に 141 セール 141 2 21 4 2020-06-15 16:22:41.000000 2020-06-16 13:33:14.000000 142 セール 34 2 21 4 2020-06-16 13:41:35.000000 2020-06-16 13:47:35.000000 と141のParent_category_idに141という数字が入っており違和感があったので 管理画面を見てみたところ、141のカテゴリはどこにも存在していません。 phpMyAdminから141のParent_category_idを142とおなじ34にしたところ、 (わかりやすくセール2と名前を変えてみました) 商品登録の処理は動くようになりました。 管理画面にも34のカテゴリの下に141のセール2が表示されるようになりました。 上記の内容を反映させたうえで規格の方でテストしたところ、 タイムアウトではなく以下のような内容のエラーが出るようになりました。 ※商品ID889でテストしています ただ、141のカテゴリーは当初表示されてなかったのがきになったので 今一度修正前のDBに戻して確認してみたところ、 ・DBのdtb_category上にはParent_category_idに141がはいっている ・管理画面「カテゴリ登録」には141のカテゴリは存在していない ・商品マスターや商品登録時のカテゴリーのドロップダウンメニューには141のカテゴリーが入っている ・この141に対し、何かアクション(Parent_category_idを書き換える、商品登録の際141を選択する)と 商品登録の処理が完了するようになるが、規格のエラーがタイムアウトから以下のエラーになる ということがわかりました。 おそらくはこの141のカテゴリーが何らかの原因の引き金になってると思うのですが、 この141が起こす現象を止めることはできないでしょうか。 分かりづらい内容で問題ありません。 -+-+-+-+-+-+-+-+- Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [PREPARE mdb2_statement_mysql_16882c6b80a489ab4ac56d4fe73de8b0ef585f9c85c FROM 'INSERT INTO dtb_products_class(classcategory_id1,classcategory_id2,product_code,stock,price01,plg_memberprice_price03,product_type_id,down_filename,down_realfilename,product_id,sale_limit,deliv_fee,point_rate,stock_unlimited,price02,creator_id,update_date,del_flg,create_date,product_class_id) SELECT ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,?,CURRENT_TIMESTAMP,?'] PlaceHolder: [array ( 0 => NULL, 1 => NULL, 2 => NULL, 3 => NULL, 4 => NULL, 5 => NULL, 6 => 0, 7 => NULL, 8 => '', 9 => '889', 10 => NULL, 11 => NULL, 12 => '0', 13 => 0, 14 => 0, 15 => '2', 16 => 1, 17 => 8691925, )] MDB2 Error: constraint violation _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_mysql_16882c6b80a489ab4ac56d4fe73de8b0ef585f9c85c USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17] [Native code: 1062] [Native message: Duplicate entry '889-0-0' for key 'product_id'] on [/home/users/2/●/web/▼/■/shop/data/class/SC_Query.php(1008)] from ***.***.***.*** login_id = huconnect(0)[2hukg6ei62tc2oi6lt1nisj3o0] /home/users/2/●/web/▼/■/shop/admin/products/product_class.php(34): LC_Page_Admin_Products_ProductClass_Ex->process /home/users/2/●/web/▼/■/shop/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductClass_Ex.php(56): LC_Page_Admin_Products_ProductClass->process /home/users/2/●/web/▼/■/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(64): LC_Page_Admin->sendResponse /home/users/2/●/web/▼/■/shop/data/class/pages/admin/LC_Page_Admin.php(101): SC_Helper_Plugin->doAction /home/users/2/●/web/▼/■/shop/data/class/helper/SC_Helper_Plugin.php(115): call_user_func_array (): MemberPrice->admin_products_productclass_after /home/users/2/●/web/▼/■/shop/data/downloads/plugin/MemberPrice/MemberPrice.php(355): MemberPrice->registerProductClassMemberPrice /home/users/2/●/web/▼/■/shop/data/downloads/plugin/MemberPrice/MemberPrice.php(633): SC_Query->insert /home/users/2/●/web/▼/■/shop/data/class/SC_Query.php(530): SC_Query->query /home/users/2/●/web/▼/■/shop/data/class/SC_Query.php(814): SC_Query->execute /home/users/2/●/web/▼/■/shop/data/class/SC_Query.php(971): SC_Query->error /home/users/2/●/web/▼/■/shop/data/class/SC_Query.php(1008): trigger_error |
nanasess |
投稿日時: 2020/6/26 15:24
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら 17日と18日の違いが気になりますね
|
horai |
投稿日時: 2020/6/26 11:10
対応状況: −−−
|
半人前 登録日: 2013/3/20 居住地: 投稿: 15 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら >nanasessさん
ご回答ありがとうございます。 一度クローン取ってテストしてみます。 クライアントにこの現象の確認をしたところ、 ・6/17までは平常通り動いていた ・6/18の10時ごろに通常の在庫調整をやっていたらエッジでエラーが出たので、クロームに切り替えたら動いたのでクロームで処理した 11時過ぎからクロームでもエラーが出た。在庫だけじゃなく商品データーも編集できなくなった という流れのようです。 特に18日にプラグインを入れたとか何か独自カスタムを入れたとかはなさそうです。 なお、現時点で入れているプラグインで有効になってるのは 会員価格設定 のみでした(有効化してないプラグインはいくつかありますが) |
nanasess |
投稿日時: 2020/6/25 18:38
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら データベースの肥大化より、何らかの処理が競合しているのだと思います。。。
あまり見ないケースですので、プラグインや独自カスタマイズが原因の可能性もあります。 |
horai |
投稿日時: 2020/6/25 18:28
対応状況: −−−
|
半人前 登録日: 2013/3/20 居住地: 投稿: 15 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら >nanasess 様
ご回答ありがとうございます。 頂いた回答から、今一度テストしてみました。 かなり処理の時間をかけたのち、サーバーから Gateway Timeout The gateway did not receive a timely response from the upstream server or application. が返ってきました。 二つ前のエラー内容の時間帯のアクセス状況を確認したところ ページへのアクセスはありましたが、購入動作のログは残っていませんでした。(受注記録もなし) やはり肥大化したデーターベースが原因でしょうか。 |
nanasess |
投稿日時: 2020/6/25 17:33
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら Lock wait timeout exceeded と出ていますので、MySQLがデッドロック状態になっているようです。
在庫更新と同時に、フロント側で商品購入されているといった状況になっていませんでしょうか? |
horai |
投稿日時: 2020/6/25 17:16
対応状況: −−−
|
半人前 登録日: 2013/3/20 居住地: 投稿: 15 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら >nanasessさん
ご回答ありがとうございます。 頂いた回答を踏まえたうえで、規格1から不要な企画を削除し(107個→55個)まで減らし、念のために不要な商品も削除し(212→160)して、ご教授頂いただいた data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php の修正を当ててみました。 当ててからの動作はシステムエラーなどなく動いています。 何となくかもしれませんが、動作が早くなった気もします。 ただ、やはり規格メニューからの在庫入力保存処理(テストなので変更せずにそのまま保存)を行ったところ、確認画面から「保存を行う」からの処理で長くかかり、タイムアウトを起こしてシステムエラーが出ました。 念のためにPCの再起動もかけて再度確認しましたが、状況変わらず。 保存ボタンを押す前に在庫数を変更してみたのですが、 エラー後確認したところその変更は反映していませんでした。 なお現時点のさくらのphp.iniは max_input_vars = 5000000 memory_limit = 128M post_max_size = 120M max_execution_time = 1000 としています。 ※アドバイス頂いたPHPのモジュールモード変更ですが ほかのサイトも入っているのですぐには対応が難しい内容のため、 今回は行っておりません。 以下、ECcubeのエラーログに出た内容を転載します。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ※規格1×規格2の組み合わせ1個を保存した時のエラー /shop/admin/products/product_class.php Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [PREPARE mdb2_statement_mysql_151009eee17ba12a4079085612d790c097bdaf4bdf FROM 'DELETE FROM dtb_products_class WHERE product_class_id = ?'] PlaceHolder: [array ( 0 => '8600199', )] MDB2 Error: unknown error _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_mysql_151009eee17ba12a4079085612d790c097bdaf4bdf USING @0] [Native code: 1205] [Native message: Lock wait timeout exceeded; try restarting transaction] on [/home/●/www/▲/shop/data/class/SC_Query.php(1008)] from ***.***.*** login_id = ●(0)[77fcc0a54452bafc63a717724b34f535] /home/●/www/▲/shop/admin/products/product_class.php(34): LC_Page_Admin_Products_ProductClass_Ex->process /home/●/www/▲/shop/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductClass_Ex.php(56): LC_Page_Admin_Products_ProductClass->process /home/●/www/▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(63): LC_Page_Admin_Products_ProductClass->action /home/●/www/▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(148): LC_Page_Admin_Products_ProductClass->registerProductClass /home/●/www/▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(292): SC_Query->delete /home/●/www/▲/shop/data/class/SC_Query.php(746): SC_Query->query /home/●/www/▲/shop/data/class/SC_Query.php(814): SC_Query->execute /home/●/www/▲/shop/data/class/SC_Query.php(971): SC_Query->error /home/●/www/▲/shop/data/class/SC_Query.php(1008): trigger_error ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ※規格1×規格2の組み合わせ2個を保存しようとしたときのエラー /shop/admin/products/product_class.php Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [PREPARE mdb2_statement_mysql_15ab029d22af1522c88ccd52f073dd0e899cdeef09 FROM 'UPDATE dtb_products_class SET classcategory_id1= ?, classcategory_id2= ?, product_code= ?, stock= ?, price01= ?, product_type_id= ?, down_filename= ?, down_realfilename= ?, product_id= ?, sale_limit= ?, deliv_fee= ?, point_rate= ?, stock_unlimited= ?, price02= ?, creator_id= ?, update_date= CURRENT_TIMESTAMP, del_flg= ?, create_date= CURRENT_TIMESTAMP WHERE product_class_id = ?'] PlaceHolder: [array ( 0 => '3', 1 => '13', 2 => '10835', 3 => '99', 4 => '24000', 5 => '1', 6 => '', 7 => '', 8 => '718', 9 => NULL, 10 => NULL, 11 => '0', 12 => 0, 13 => '24000', 14 => '2', 15 => 0, 16 => '8386994', )] MDB2 Error: unknown error _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_mysql_15ab029d22af1522c88ccd52f073dd0e899cdeef09 USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16] [Native code: 1205] [Native message: Lock wait timeout exceeded; try restarting transaction] on [/home/●●●/www/▲▲▲/shop/data/class/SC_Query.php(1008)] from ***.***.*** login_id = ●●●(0)[77fcc0a54452bafc63a717724b34f535] /home/●●●/www/▲▲▲/shop/admin/products/product_class.php(34): LC_Page_Admin_Products_ProductClass_Ex->process /home/●●●/www/▲▲▲/shop/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductClass_Ex.php(56): LC_Page_Admin_Products_ProductClass->process /home/●●●/www/▲▲▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(63): LC_Page_Admin_Products_ProductClass->action /home/●●●/www/▲▲▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(148): LC_Page_Admin_Products_ProductClass->registerProductClass /home/●●●/www/▲▲▲/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(289): SC_Query->update /home/●●●/www/▲▲▲/shop/data/class/SC_Query.php(589): SC_Query->query /home/●●●/www/▲▲▲/shop/data/class/SC_Query.php(814): SC_Query->execute /home/●●●/www/▲▲▲/shop/data/class/SC_Query.php(971): SC_Query->error /home/●●●/www/▲▲▲/shop/data/class/SC_Query.php(1008): trigger_error |
nanasess |
投稿日時: 2020/6/25 12:17
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 大量の規格登録でエラーが出るが、規格を削除したら 2.12.2 にコピペで適用できるか、あまり自信ありませんが、基本的なロジックは同じはずです。
適用の際は、十分に動作確認をお願い致します。 データ量よりも、PHPの処理スピードが問題になっている気がしますので、規格1を減らすことは有効だと思います ちなみに、さくらのレンタルサーバーでは、モジュールモードのPHPとCGIモードのPHPがありますが、どちらをご利用でしょうか? CGIモードをご利用でしたら、モジュールモードにすることで改善する可能性はあります。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |