Labo

[EC-CUBE 2.12.0] システムエラーが発生しました、と表示された場合

2012年06月17日 / 投稿者名:fukap


EC-CUBEのカスタマイズをやっていると、何度となく見るのが「システムエラーが発生しました」の文言。
やみくもにファイルをいじくるより、エラーログを見たほうが短時間で問題を解決できますので、
カスタマイズをやる方は、エラーログの見方は知っておくべきだと思います。
エラーログを表示する方法は以下のようなものがあります。

 

・管理画面>システム設定>パラメータ設定で、debug_mode を true にする。
・data/logs/error.log を開いて、問題が発生した日時のログを参照する。

 

2.11 までは、data/logs/site.log にエラーが出力されていましたが、
2.12 からは、data/logs/error.log に出力されるようになったようです。

 

システムエラーはいろいろな原因が考えられますが、例えば以下のようなログだと、
dtb_bloc に新規レコードを挿入しようとした際に、ユニークなキーがダブったっぽいということがわかります。

2012/06/17 20:35:21 [/admin/ownersstore/index.php] Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [INSERT INTO dtb_bloc(device_type_id,bloc_id,bloc_name,tpl_path,filename,create_date,update_date,php_path,deletable_flg) SELECT $1,$2,$3,$4,$5,Now(),Now(),$6,$7]
PlaceHolder: [array (
  0 => 10,
  1 => 11,
  2 => 'new_products',
  3 => 'new_products.tpl',
  4 => 'new_products',
  5 => 'frontparts/bloc/new_products.php',
  6 => 0,
)]
MDB2 Error: constraint violation
_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE mdb2_statement_pgsql_7d5af8b6f2ff2cba581454b923c4106797e5bc98d (10, 11, 'new_products', 'new_products.tpl', 'new_products', 'frontparts/bloc/new_products.php', 0)]
[Native message: ERROR:  duplicate key value violates unique constraint "dtb_bloc_device_type_id_filename_key"
DETAIL:  Key (device_type_id, filename)=(10, new_products) already exists.]
 on [/var/www/html/sample.com/public_html/data/class/SC_Query.php(1005)] from 203.141.139.15
login_id = aiueo(0)[umto6b9rer5v98a1j8hpme7el2]
/var/www/html/sample.com/public_html/html/admin/ownersstore/index.php(34): LC_Page_Admin_OwnersStore_Ex->process
/var/www/html/sample.com/public_html/data/class_extends/page_extends/admin/ownersstore/LC_Page_Admin_OwnersStore_Ex.php(56): LC_Page_Admin_OwnersStore->process
/var/www/html/sample.com/public_html/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php(59): LC_Page_Admin_OwnersStore->action
/var/www/html/sample.com/public_html/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php(87): LC_Page_Admin_OwnersStore->installPlugin
/var/www/html/sample.com/public_html/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php(404): LC_Page_Admin_OwnersStore->execPlugin
/var/www/html/sample.com/public_html/data/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore.php(827): call_user_func
(): NwNewProducts::install
/var/www/html/sample.com/public_html/data/downloads/plugin/NwNewProducts/NwNewProducts.php(68): SC_Query->insert
/var/www/html/sample.com/public_html/data/class/SC_Query.php(527): SC_Query->query
/var/www/html/sample.com/public_html/data/class/SC_Query.php(811): SC_Query->execute
/var/www/html/sample.com/public_html/data/class/SC_Query.php(968): SC_Query->error
/var/www/html/sample.com/public_html/data/class/SC_Query.php(1005): trigger_error

ぜひエラーログを読んで、問題点を推測する訓練をつけてみてください。
何のこっちゃさっぱりわからないという人は、詳しい人にエラーログを見せれば、問題点の特定はしてくれるかもしれません。
さて、プラグイン開発せねば・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。