ฉันกำลังดูแลร้านวีโอไอพีที่มีผู้เข้าชม 400-500 คนและสั่งซื้อ 40-50 ต่อวัน เมื่อเร็ว ๆ นี้ระบบได้รับการอัปเกรดจาก Magento EE 1.14.2.4 เป็น Magento EE 1.14.3.2 และฉันสังเกตเห็นข้อยกเว้นแปลก ๆ ในบันทึก:
exception 'Mage_Core_Model_Session_Exception' in
/var/www/.../app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:418
ฉันกำลังไล่ล่าข้อยกเว้นนั้นและฉันรู้ว่ามันถูกไล่ออกเพราะรหัสตรวจสอบเซสชั่นต่อไปนี้ล้มเหลวในการตรวจสอบเซสชั่น:
class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
{
// ...
protected function _validate()
{
// ...
if ($this->useValidateSessionExpire()
&& isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
&& $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
if-block นี้ถูกเพิ่มลงในไฟล์พร้อมกับรีลีสล่าสุดจาก Magento และนี่คือการเปลี่ยนแปลงการเบรกอย่างเห็นได้ชัดดูรายละเอียดเพิ่มเติมด้านล่าง
ข้อยกเว้นเกิดขึ้นบ่อยเช่นวันละสิบครั้ง แต่ฉันไม่สามารถสร้างเงื่อนไขที่นำไปสู่ข้อยกเว้นได้อีกเว้นแต่ว่าฉันจะเป็นจริงในเงื่อนไขข้างต้น ข้อยกเว้นส่วนใหญ่เกิดขึ้นในหน้ารายละเอียดผลิตภัณฑ์และในขั้นตอนสุดท้ายของการชำระเงินหนึ่งหน้า ร้านค้าเป็นร้านค้า b2b ผู้ใช้จะต้องเข้าสู่ระบบเพื่อดูหน้าผลิตภัณฑ์หรือสามารถที่จะชำระเงินหมายความว่าผู้ใช้จะถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบเมื่อเซสชั่นไม่ถูกต้อง / หมดอายุ ในขณะนี้มันสำคัญสำหรับฉันที่จะแก้ไขปัญหานี้ระหว่างเช็คเอาต์
เกิดอะไรขึ้นกับมุมมองของผู้ใช้: ผู้ใช้กรอกข้อมูลในรถเข็นดำเนินการชำระเงินและไปถึงขั้นตอนสุดท้ายจากนั้นเขา / เธอจะกดปุ่ม "ส่งคำสั่งซื้อ" และไม่มีอะไรเกิดขึ้น เบื้องหลัง JS ของ Magento ทำการร้องขอ AJAX และ JS คาดว่าจะได้รับ JSON กลับมา แต่ถ้าเกิดข้อผิดพลาดนี้ HTML ของหน้าเข้าสู่ระบบจะถูกส่งกลับซึ่ง JavaScript ไม่สามารถแยกวิเคราะห์ได้และไม่ทำอะไรเลย นั่นคือความสับสนอย่างมากสำหรับผู้ใช้
นั่นไม่ใช่สถานการณ์ที่สมบูรณ์ของผู้ใช้เราได้ติดต่อกับผู้ใช้และพวกเขาบอกเราว่าพวกเขารอสองสามวันระหว่างการกรอกรถเข็นและการส่งคำสั่งซื้อสิ่งที่หมายความว่ายากที่จะเข้าใจเพราะผู้คนจำไม่ได้
ระยะเวลาการใช้งาน PHP - 350000 (~ 4 วันในไม่กี่วินาที) อายุการใช้งานคุกกี้ - 345600 (4 วัน)
นี่คือคำถามจริง: ฉันจะทราบได้อย่างไรว่าพฤติกรรมของผู้ใช้ประเภทใดที่นำไปสู่ข้อยกเว้น
การปรับปรุง จนถึงตอนนี้ฉันรู้ว่ามีข้อยกเว้นเกิดขึ้นในชั้นเรียนต่อไปนี้ตามคำขอที่ทำกับฉันซึ่งหมายความว่าไม่มีอะไรน่าเสียดาย
/catalogsearch/result/?q=… Mage_Core_Model_Session
/checkout/cart/ Mage_Core_Model_Session
/checkout/onepage/saveOrder/… Mage_Rss_Model_Session
/customer/account/loginPost/ Mage_Core_Model_Session
/customer/account/loginPost/ Mage_Reports_Model_Session
/customer/account/logout/ Mage_Reports_Model_Session
/catalog/product/view/… Mage_Reports_Model_Session
/catalog/product/view/… Mage_Tag_Model_Session
ปรับปรุง 2 : เซสชันถูกเก็บไว้ในไฟล์และล้างข้อมูลโดยตัวเก็บขยะเซสชัน PHP ไม่ว่าจะเป็นตัวเลือกที่ดีหรือไม่อยู่นอกขอบเขตของคำถามนี้