2009-08-25 44 views
6

मेरे पास एक टाइमर नौकरी है जो कई वेब फ्रंट सिरों वाले सर्वर पर तैनात की गई है।शेयरपॉइंट टाइमर नौकरियां नहीं आ रही हैं

  • यह टाइमर जॉब एक ​​पदानुक्रमित ऑब्जेक्ट स्टोर से इसकी कॉन्फ़िगरेशन को पढ़ता है।
  • यह टाइमर नौकरी सर्वर पर प्रतिदिन चलाने के लिए निर्धारित है।

लेकिन समस्या यह है कि इस टाइमर नौकरी को रोजाना नहीं बुलाया जा रहा है। मैंने टाइमर जॉब की निष्पादन() विधि में इवेंट लॉगिंग लागू की है, लेकिन मुझे कोई भी लॉग उत्पन्न नहीं हुआ है।

  • कोई विचार जो शेयररॉइंट टाइमर सेवा द्वारा निष्पादन के लिए टाइमर नौकरी को उठाया जा सकता है? मैं इस समस्या का निवारण कैसे कर सकता हूं?

  • क्या कई फ्रंट सिरों से सर्वर में टाइमर नौकरियां चलाने के लिए कोई "गॉचा" है? क्या टाइमर नौकरी सभी वेब फ्रंट सिरों में निष्पादित हो जाएगी, या उनमें से कोई भी मनमाने ढंग से? कैसे पता चलेगा कि कौन सी मशीन में मेरा इवेंट लॉग होगा?

  • यह एक बेवकूफ सवाल हो सकता है, लेकिन लोड संतुलन के लिए कई फ्रंट सिरे होने पर हाइरार्किकल ऑब्जेक्ट स्टोर्स का व्यवहार होता है?

संपादित करें:

"या नहीं, घड़ी काम पर चलता है:

टिप्पणीकर्ताओं में से एक, शॉन McDounough, (धन्यवाद शॉन !!) एक बहुत अच्छा मुद्दा यह है कि किए गए सभी डब्लूएफई कन्स्ट्रक्टर में निर्दिष्ट SPJobLockType enum मान का एक फ़ंक्शन होंगे। "कोई नहीं" के मान का उपयोग करना मतलब है कि नौकरी सभी डब्लूएफई पर चलती है। "

अब, मेरा टाइमर नौकरी उपयोगकर्ताओं की सूची में आवधिक मेल भेजने के लिए ज़िम्मेदार है। वर्तमान में यह SPJobLockType.Job "

  • अगर मैं SPJobLockType.None को यह बदलने के लिए, यह मतलब है कि मेरी घड़ी काम अलग से सभी WFEs में क्रियान्वित की जाएगी? (इसकी आवश्यकता नहीं पड़ती, यह स्पैम के रूप में चिह्नित किया गया है सब से अधिक ईमेल वाले उपयोगकर्ता)

  • या इसका मतलब यह है कि टाइमर काम WFEs में से किसी एक में निष्पादित करेंगे, arbitarily?

उत्तर

9

कमांड लाइन से SharePoint टाइमर सेवा को पुन: प्रारंभ उपयोग करने का प्रयास नेट स्टॉप SPTIMERV3 के बाद नेट स्टार्ट SPTIMERV 3। मेरा अनुमान है कि टाइमर सेवा आपके .NET असेंबली के पुराने संस्करण के साथ चल रही है। जब आप WSP समाधान को अपग्रेड करते हैं तो टाइमर सेवा स्वचालित रूप से असेंबली को पुनः लोड नहीं करती है।

+4

लार्स द्वारा उत्कृष्ट बिंदु, और जो आमतौर पर डेवलपर (नए और अनुभवी दोनों) को पकड़ता है जो टाइमर सेवा के साथ काम करते हैं। आपके लिए एक अतिरिक्त बिंदु नोट, ashwnacharya: सभी WFEs पर टाइमर नौकरी चलती है या नहीं, आप कन्स्ट्रक्टर में निर्दिष्ट SPJobLockType enum मान का एक फ़ंक्शन होगा। "कोई नहीं" के मान का उपयोग करना मतलब है कि नौकरी सभी डब्लूएफई पर चल जाएगी। "नौकरी" का एक मूल्य, हालांकि, इसका मतलब है कि यह केवल एक सर्वर पर चलेगा - जिस पर आपने नौकरी जमा की है (जब तक कि आपने अपने कन्स्ट्रक्टर में एक विशिष्ट SPServer इंगित नहीं किया हो)। –

+0

मुझे लगता है कि आपके पास टाइमर जोप आपके देव मशीन पर चल रहा था? यदि नहीं, तो http://stackoverflow.com/questions/985581/debugging-sharepoint-timer-jobs पर मेरा प्रश्न देखें, यह देखने के लिए कि क्या कुछ भी घबरा गया है ... – Colin

+1

आपने सचमुच अपना जीवन बचाया। – ragebiswas

2

ऐसा करने के लिए, निम्न चरणों का पालन करें:

  • टाइमर सेवा बंद करो।
  • प्रारंभ करें क्लिक करें, व्यवस्थापकीय उपकरण पर इंगित करें, और उसके बाद सेवाक्लिक करें।
  • Windows SharePoint Services टाइमर राइट-क्लिक करें, और उसके बाद रोकें, या सेवा को पुनरारंभ करें क्लिक करें।

यह URL ने मेरी मदद की।