2014-06-12 4 views
13

हमें ईवेंट क्यूई टेबल के साथ कई बार तेजी से बढ़ रहा है, एक सेकंड में 3k रिकॉर्ड तक, और कभी भी रिकॉर्ड साफ़ नहीं कर रहा है (अभी तक 30 मिलियन)। हमारे पर्यावरण निम्नलिखित की स्थापना की है:साइटकोर इवेंट क्यूई टेबल नियंत्रण से बाहर बढ़ रहा है

Sitecore 7,2

  • 4 सीडी सर्वर और 1 मुख्यमंत्री सर्वर
  • सभी चार सीडी सर्वर लोड संतुलित हैं।
  • CD1 और CD2 DB1 सर्वर CD3 और सीडी 4 की ओर इशारा कर रहे हैं डीबी 2 की ओर इशारा कर रहे हैं
  • सर्वर 2 प्रकाशन लक्ष्य (प्रत्येक DB के लिए एक) मर्ज
  • प्रतिकृति (सभी सर्वर पर कोर डाटाबेस के लिए सेटअप है मुख्यमंत्री रहे हैं, सीडी)
  • EventQueue सक्षम किया गया है

मैं कुछ प्रश्न पूछना चाहते हैं तो मैं उन्हें एक पृथक लाइन आइटम में टूट जाएगा।

  1. जब एक प्रकाशित सभी सीडी सर्वर के लिए जारी किया जाता है सीधे मुख्यमंत्री डाटाबेस से सीडी डाटाबेस के (सही टेबल के सभी) या इसे सीडी DB में EventQueue मेज पर भेज दिया जाता है और करने के लिए भेजा अद्यतन सामग्री है सीडी सर्वर में एक नौकरी/कार्य होता है जो आवश्यकतानुसार तालिका और अपडेट को देखता है।

  2. पहले सवाल का जवाब पर निर्भर करता है, यदि एक ही डीबी की ओर इशारा करते 2 सीडी सर्वर हैं कि वे किस तरह पता चले कि क्या वे EventQueue तालिका संसाधित करना चाहिए (अभ्यस्त वे एक मेज पर कार्रवाई और डुप्लिकेट करने के प्रयासों हो)

  3. इवेंटटेबल तालिका क्यों साफ़ नहीं की गई है? कैसे साफ़ किया जाता है, इसे कब साफ़ किया जाता है?

उत्तर

15
  1. मुख्यमंत्री प्रकाशित पर, प्रकाशित अनुरोध सीडी डाटाबेस जहां यह उदाहरण के प्रकाशन कार्यक्रम के अनुसार संसाधित किया जाता है पर EventQueue मेज पर भेजा जाता है।
  2. EventQueue तालिका में InstanceName कॉलम प्रत्येक साइटकोर उदाहरण का अद्वितीय नाम संग्रहीत करता है (डिफ़ॉल्ट रूप से यह मशीन का नाम + आईआईएस इंस्टेंस नाम है, लेकिन web.config में सेट किया जा सकता है)। यह एक लोड संतुलित वातावरण में एक व्यक्तिगत सीडी उदाहरण द्वारा घटनाओं को उठाया जा सकता है।
  3. EventQueue तालिका को web.config में <scheduling> तत्व में परिभाषित साइटकोर कार्य द्वारा साफ़ किया गया है, हालांकि मैंने अतीत में यह गलत व्यवहार देखा है।(जिनमें से कुछ Sitecore समर्थन से सुझाव दिया गया

    <agent type="Sitecore.Tasks.CleanupEventQueue, Sitecore.Kernel" method="Run" interval="04:00:00"> <DaysToKeep>1</DaysToKeep> </agent>

मैं पहले है EventQueue और PublishQueue टेबल पर उच्च भार में चलाने के लिए और निम्नलिखित की कोशिश कर की सिफारिश करेंगे: डिफ़ॉल्ट रूप से, यह इस प्रकार सेट किया गया है):

  • ऊपर CleanupEventQueue एजेंट (के अंतराल को कम)
  • पर CleanupEventQueue (भीDaysToKeep सेटिंग कम करेंचोट नहीं होगा)
  • एक अनुसूचित एसक्यूएल कार्य बनाएं स्वच्छ ऊपर स्क्रिप्ट सीएमएस ट्यूनिंग गाइड में उल्लिखित (पृष्ठ 10 को चलाने के लिए:

    : Sitecore समर्थन से

अंत में http://sdn.sitecore.net/upload/sitecore7/70/cms_tuning_guide_sc70-usletter.pdf), साइटकोर ने सिफारिश की है कि इतिहास में प्रकाशित पंक्तियों (प्रविष्टियों) की संख्या, PublishQueue, और EventQueue तालिका 1000 से कम होगी।

+1

यह बहुत कुछ बताता है, धन्यवाद। एक बात जो मुझे अभी भी समझ में नहीं आ रही है वह यह है कि यदि एक डीबी को इंगित करने वाले 2 सीडी सर्वर हैं और एक प्रकाशित होता है, तो क्या प्रत्येक सीडी सर्वर के लिए इवेंटक्यूयू तालिका में केवल इंस्टेंसनाम फ़ील्ड द्वारा भिन्न होगा और प्रविष्टि होगी? यदि ऐसा है, तो वे दोनों एक ही डेटा को संसाधित नहीं करेंगे (जो डुप्लिकेट होगा) क्योंकि दोनों के पास तालिका में एक एक्शन आइटम है? – mluker

+0

क्षमा करें - मैंने अपना जवाब संपादित कर लिया है। प्रकाशन के लिए अनुरोध सीडी पर EventQueue तालिका में भेजा गया है, आइटम को प्रकाशित करने और प्रकाशित करने के लिए आइटम के विवरण के साथ, आइटम सामग्री स्वयं नहीं। लेकिन हां, प्रत्येक उदाहरण तालिका आईआईआरसी में अपनी पंक्ति प्राप्त करता है। – computerjules

+3

इस उत्तर के लिए धन्यवाद। EventQueue तालिका के साथ मेरे पास गड़बड़ यह है कि यदि आपके पास स्क्रिप्ट्स हैं जो सामग्री बनाने/अपडेट करने के लिए शेड्यूल पर चलती हैं तो यह * LOT * भर सकती है। क्लीनअप एजेंट के पास एक दिन के रूप में ग्रैन्युलरिटी के बेहतरीन स्तर के साथ "डेस्टोकिप" सेटिंग है। एक दिन में ~ 100k रिकॉर्ड जोड़े जा सकते हैं। आपको मिनटों में 'टाइम टॉकीप' सेटिंग निर्दिष्ट करने में सक्षम होना चाहिए। – theyetiman

संबंधित मुद्दे