मैं 400-500 आगंतुकों और प्रति दिन 40-50 आदेशों के साथ एक Magento दुकान की देखभाल कर रहा हूं। हाल ही में सिस्टम को 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() ) {
यह अगर-ब्लॉक फ़ाइल में Magento की नवीनतम रिलीज़ के साथ जोड़ा गया था। और यह स्पष्ट रूप से एक ब्रेकिंग परिवर्तन है, नीचे अधिक विवरण देखें।
अपवाद काफी बार हो रहा है, प्रति दिन एक दर्जन बार की तरह। लेकिन मैं उन स्थितियों को फिर से बनाने में सक्षम नहीं हूं, जो अपवाद को जन्म देती हैं, जब तक कि मैं सचमुच ऊपर की स्थिति में सही नहीं हूं। अपवाद अक्सर उत्पाद विवरण पृष्ठों और एक पृष्ठ चेकआउट के अंतिम चरण पर होते हैं। दुकान एक b2b दुकान है, उपयोगकर्ता को उत्पाद पृष्ठ देखने या चेकआउट करने में सक्षम होना चाहिए, इसका मतलब है कि सत्र अमान्य / समाप्त होने पर उपयोगकर्ता लॉगिन पृष्ठों पर पुनर्निर्देशित हो सकता है। फिलहाल मेरे लिए चेकआउट के दौरान इस समस्या को ठीक करना अधिक महत्वपूर्ण है।
उपयोगकर्ता के दृष्टिकोण से क्या होता है: उपयोगकर्ता कार्ट को भरता है, चेकआउट करने के लिए आगे बढ़ता है और अंतिम चरण तक पहुंचता है, फिर वह "ऑर्डर सबमिट करें" बटन को हिट करता है और कुछ भी नहीं होता है। पर्दे के पीछे मैगेंटो के जेएस एक AJAX अनुरोध करते हैं और जेएस को JSON को वापस लेने की उम्मीद है, लेकिन अगर यह त्रुटि होती है तो लॉगिन पृष्ठ का HTML वापस आ जाता है, जिसे जावास्क्रिप्ट द्वारा पार्स नहीं किया जा सकता है और यह कुछ भी नहीं करता है। यह उपयोगकर्ताओं के लिए सुपर भ्रामक है।
खैर, यह पूरी तरह से उपयोगकर्ता का परिदृश्य नहीं है, हमने उपयोगकर्ताओं से संपर्क किया और उन्होंने हमें बताया कि उन्होंने गाड़ी को भरने और ऑर्डर जमा करने के बीच कुछ दिनों तक इंतजार किया, इसका क्या मतलब है यह पता लगाना मुश्किल है, क्योंकि लोगों को बस यह याद नहीं है।
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 सत्र कचरा संग्रहकर्ता द्वारा साफ किए जाते हैं, यह एक अच्छा विकल्प है या नहीं, इस प्रश्न के दायरे से बाहर है।