2012-04-02 6 views
14

मैं सिस्टम का उपयोग कर Tridion कोर सेवा से कनेक्ट कर रहा हूं। ServiceModel.WsHttp बाइंडिंग। सेवा केवल प्रमाणीकृत उपयोगकर्ताओं द्वारा उपयोग की जाएगी, और शायद केवल उस कोड द्वारा जिसे मैं नियंत्रित करता हूं। मैं मैं ट्रिडियन कोर सेवा बाध्यकारी के लिए कोटा कैसे तय करूँ?

  • MaxReceivedMessageSize (डिफ़ॉल्ट 65,536 बाइट्स) निम्नलिखित

    • (डिफ़ॉल्ट 524,288 बाइट्स) के लिए मूल्यों का चयन करने के
    • ReaderQuotas है। MaxArrayLength (डिफ़ॉल्ट 16384 बाइट्स)
    • ReaderQuotas। MaxBytesPerRead (डिफ़ॉल्ट 4096 बाइट्स)
    • ReaderQuotas। MaxNameTableCharCount (डिफ़ॉल्ट 16384 बाइट्स)
    • ReaderQuotas। MaxStringContentLength (डिफ़ॉल्ट 8192 बाइट्स)

    कोड उदाहरण मैं सदा ही उदाहरण 4Mb के लिए, चूक से बड़ा मान के लिए इनमें से कम से कम कुछ सेट कोर सेवा का उपयोग करने के लिए देखा है। क्या यह ज्ञात समस्याओं के कारण है जब अन्य मान, जैसे डिफ़ॉल्ट, का उपयोग किया जाता है?

    मैक्सबफरपूलसाइज आपको अत्यधिक कचरा संग्रह को रोकने की अनुमति देने के लिए है। क्या यह बस जीसी की निगरानी और ट्यूनिंग की निगरानी करने का मामला है?

    मैक्सरेसेवेड मैसेज साइज, मैक्सएरेरेलेथेंथ और मैक्सबाइट्सररड डोस हमलों के खिलाफ बचाव के लिए हैं, इसलिए मेरे परिदृश्य में, शायद मैं इन्हें बढ़ाकर थ्रूपुट में सुधार कर सकता हूं। क्या वास्तव में बड़ी संख्या में मदद मिलेगी?

    MaxNameTableCharCount ऐसी चीज के अनियंत्रित विकास को रोकने के लिए प्रतीत होता है जो आप अनियंत्रित रूप से विकसित नहीं करना चाहते हैं, तो शायद डिफ़ॉल्ट छोड़ना एक अच्छी बात होगी।

    मैक्सस्ट्रिंगकंटेंट लम्बाई पर प्रलेखन निर्दिष्ट नहीं करता है कि यदि आप कोटा से अधिक होते हैं तो क्या होता है। संभवतः ReadContentAsString किसी भी तरह से विफल हो जाएगा, तो शायद यह मान बड़ा होना चाहिए।

    तो - क्या मुझे इन मानों को उनके डिफ़ॉल्ट पर छोड़ देना चाहिए? क्या इससे मुझे समस्याएं आती हैं? क्या मुझे उन्हें बड़े मूल्यों में बढ़ाना चाहिए? क्या वह थ्रूपुट इत्यादि के साथ मदद करेगा, या क्या यह अन्य समस्याओं का कारण बन सकता है?

  • +0

    कुछ उत्तरों के माध्यम से पढ़ना, अब मुझे यह महसूस हो रहा है कि इन सेटिंग्स को ट्यून करना इतना आवश्यक है (कम से कम उत्पादन कार्य के लिए) कि शायद शून्य-कॉन्फ़िगरेशन कार्यान्वयन (यानी केवल कोड) एक विरोधी पैटर्न हो सकता है। विचार? –

    उत्तर

    7

    सामान्य नियम यह मान जितना संभव हो उतना छोटा होना है, केवल कोड के लिए आपके लिए पर्याप्त है। यदि आप CoreService.dll के साथ भेजे गए डिफ़ॉल्ट कॉन्फ़िगरेशन पर एक नज़र डालेंगे, तो इसमें कुछ मान बढ़ गए हैं।

    उदाहरण के लिए, यदि आप बड़ी एक्सएमएल सूचियां (या खोज परिणाम) प्राप्त करने की अपेक्षा करते हैं - तो आपको MaxReceivedMessageSize बढ़ाना चाहिए।ध्यान रखें कि आपके पास सूची के आकार पर नियंत्रण है जिसे आप फ़िल्टर की BaseColumns संपत्ति का उपयोग कर प्राप्त करेंगे।

    आप अपने एक्सएमएल समकक्षों से अधिक GetList, GetSystemWideList और GetSearchResults तरीकों का उपयोग करना पसंद करते हैं, तो आप शायद MaxReceivedMessageSize के साथ एक साथ ReaderQuotas.MaxArrayLength को बढ़ाने के लिए करना होगा। लेकिन कृपया ध्यान दें, कि बड़े सरणी स्मृति में संग्रहीत की जाएगी।

    मुझे यकीन नहीं है कि आप इनमें से किसी भी मूल्य को तब तक बढ़ाना चाहते हैं जब तक कि आप सीमा को नहीं दबाएंगे। डब्ल्यूसीएफ आपको उस पैरामीटर को इंगित करने के साथ काफी अच्छा है जिसे आप समायोजित करना चाहते हैं।

    +0

    जबकि मैं चीजों को जितना संभव हो उतना छोटा रखने के लिए सहमत हूं और यह कि एक त्रुटि संदेश से पढ़ने में काफी आसान है, जिसे आप आकार में बढ़ाना चाहते हैं, यह ज्यादातर ग्राहकों के लिए अस्वीकार्य है कि एक एक्सटेंशन अचानक काम करने के लिए बंद हो जाता है। जो मुझे अधिकतम सेटिंग्स के लिए चुनता है क्योंकि वर्तमान में मुझे कोई जानकारी नहीं है कि कुछ प्रतिक्रियाओं का अपेक्षित आकार क्या हो सकता है। –

    +0

    सीएमएस सिस्टम के साथ समस्या यह है कि यह अनुमान लगाने में काफी मुश्किल है कि लेखक कितनी बड़ी सामग्री लिखेंगे। यदि आपको एक समृद्ध टेक्स्ट फ़ील्ड के साथ एक घटक को संशोधित और सहेजने की आवश्यकता है, उदाहरण के लिए, यह नहीं बता रहा है कि यह कितना बड़ा होगा। तो मैं स्पेक्ट्रम के उच्च छोर पर मूल्यों का चयन करता हूं .. – Quirijn

    +0

    तो क्या आप कह रहे हैं कि कोई "सही" उत्तर नहीं है? यदि हां, तो आप अपने परिदृश्य के लिए एक अच्छा जवाब निर्धारित करने की प्रक्रिया के बारे में कैसे जाएंगे। इन मूल्यों में से आप अपने शुरुआती बिंदु के रूप में गैर-डिफ़ॉल्ट मान का उपयोग करेंगे, और यह क्या होगा? –

    6

    मुझे डर है कि यह वास्तव में आपके प्रश्नों का उत्तर नहीं है ... लेकिन, मेरे अनुभव से, मैंने मानों को सुझाए गए डिफ़ॉल्ट से अधिक बढ़ा दिया। जैसा कि आपने पहले ही सुझाव दिया है, मैंने 4 एमबी का इस्तेमाल किया था। यह इसलिए था क्योंकि कोर सेवा के साथ संवाद करते समय मुझे त्रुटि का सामना करना पड़ रहा था। वे आवंटित आकार से अधिक अनुरोध/प्रतिक्रिया आकार से संबंधित थे।

    इसके अलावा, कोर सेवा लेनदेन के मामले में, मैंने इन अपवादों में से अधिक देखा। ऐसा लगता है कि लेनदेन का उपयोग करते समय अनुरोध/प्रतिक्रिया के आकार काफी बढ़ते हैं। मेरे मामले में, मैं एक बड़े लेनदेन में घटक का एक बैच बना रहा था। यदि एक घटक बनाने में असफल रहा, तो मैं पूरे लेन-देन को वापस ले जाऊंगा।

    उम्मीद है कि इससे मदद मिलती है।

    +0

    धन्यवाद मिहाई। यह जानना सहायक होगा कि अपवाद क्या थे, क्योंकि इससे संकेत मिलता है कि कौन सी कोटा/सेटिंग पार हो रही थी। –

    +0

    सहमत हुए। मैं उन्हें पुन: उत्पन्न करने के लिए देखता हूँ। मुझे दिल से याद नहीं है। –

    +0

    एक बात मैंने देखी है कि एक एक्सटेंशन को स्थापित करने के बाद एक निश्चित प्रतिक्रिया का आकार अलग-अलग हो सकता है, अधिकतर ऐपडाटा के उपयोग से संबंधित (उदाहरण के लिए सामुदायिक बिल्डर आपको काफी बड़ी प्रतिक्रिया देगा)। इसलिए जब तक मैं इसे जितना संभव हो सके छोटे से स्थापित करने के सामान्य नियम से सहमत हूं, दुर्भाग्यवश हमारे पास वास्तविक वस्तुओं पर स्पष्टता नहीं है कि कुछ वस्तुओं के लिए प्रतिक्रिया क्या हो सकती है। इस प्रकार भविष्य में त्रुटियों को रोकने के लिए आप शायद उन्हें जितना संभव हो उतना बड़ा सेट करना चाहते हैं। –

    4

    मैं हाल ही में प्रमुख सेवा के साथ प्रयोग किया गया है और देखा है एक XmlReader अपवाद होते हैं, जब निम्नलिखित कोड का उपयोग कर एक बड़ी TBB (सी # टुकड़ा) खोलने की कोशिश कर:

    using(var client = new CoreService.CoreService2010Client()) 
    { 
        var item = client.Read(tcmId,new ReadOptions()); 
    
        //More code 
    } 
    

    System.Xml। XmlException: एक्सएमएल डेटा पढ़ने के दौरान अधिकतम स्ट्रिंग सामग्री लंबाई कोटा (8192) पार हो गया है। यह कोटा हो सकता है कि XML पाठक बनाते समय XmlDictionaryReaderQuotas ऑब्जेक्ट पर MaxStringContentLength गुण को बदलकर बढ़ाया जाए। लाइन 1, स्थिति यह संदेश में कहते हैं 9201.

    रूप में, मैं ऊपर ReaderQuotas.MaxStringContentLength इसे ठीक करने के लिए था। तो यदि आप किसी बिल्डिंग ब्लॉक के साथ काम कर रहे हैं जिसमें 8KB से बड़ी सामग्री है, तो यह त्रुटि अपेक्षित है।

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