coldfusion कोल्ड फ्यूजन मेल कतार प्रसंस्करण रोकता है




administration (6)

हमारे सीएफ़ सर्वर प्रायः मेल प्रोसेसिंग रोक देता है यह समस्याग्रस्त है, क्योंकि हमारे कई ग्राहक इस पर निर्भर हैं।

हमें ऑनलाइन सुझाव मिले हैं जो बिना बाएं फाइल्स में शून्य-बाइट फ़ाइलों का उल्लेख करते हैं, इसलिए मैंने एक ऐसा कार्य बनाया जो उन्हें हर तीन मिनट से निकाल देता है। हालांकि, रुके फिर से हुआ है।

मैं इस मुद्दे के निदान और फिक्सिंग के लिए सुझावों की तलाश कर रहा हूं।

  • सीएफ़ 8 मानक
  • Win2k3

जोड़ा गया:

  • कतार विफल होने पर मेल लॉग में कोई त्रुटि नहीं है
  • हमने कतार का उपयोग किए बिना इसे चलाने की कोशिश नहीं की है, इसलिए हम जिस मेल की बड़ी मात्रा भेजते हैं

जोड़ा गया 2:

  • यह स्पूल फ़ोल्डर में किसी भी फाइल के साथ एक समस्या नहीं है। जब हम मेल कतार को पुनरारंभ करते हैं, तो वे सभी सही तरीके से प्रक्रिया करने लगते हैं।

3 जोड़ा गया:

  • हम संलग्नक का उपयोग नहीं कर रहे हैं

हमने कतार का उपयोग किए बिना इसे चलाने की कोशिश नहीं की है, इसलिए हम जिस मेल की बड़ी मात्रा भेजते हैं

चाहे, क्या आपने स्पोलिंग को बंद करने की कोशिश की है ? मैंने देखा है कि मेल को आधा सेकंड में 500-600 संदेशों की दर से भेजा जाता है, और यह एक भद्दा सर्वर पर होता है 60 सेकंड में मानक पृष्ठ समय-सीमा के साथ, यह पृष्ठ ~ 72,000 ईमेल होगा जो आप पृष्ठ के बाहर आने से पहले भेज सकते हैं क्या आप एक बार में 72,000 से अधिक भेज रहे हैं?

सीएफ़एमईएल से पहले इस्तेमाल किया गया एक वैकल्पिक यह था कि कस्टम स्पूलर का निर्माण करना तेजी से था मक्खी पर ईमेल भेजने के बजाय, उन्हें एक डेटाबेस तालिका में सहेजें फिर एक अनुसूचित नौकरी सेट करने के लिए कुछ सौ संदेश भेजने के लिए और खुद को कुछ मिनट के बाद के लिए फिर से, जब तक टेबल रिक्त नहीं है

हमने एक दिन में एक बार चलाने की नौकरी तय की; और यदि तालिका रिक्त नहीं है, तो इसे फिर से दो-दो मिनटों में फिर से चलाने के लिए फिर से शेड्यूल कर सकता है इसके साथ कभी समस्या नहीं हुई।


बेन डूम के कोड में एक बग है। आप किसी भी तरह से धन्यवाद, कोड महान है, और हम इसे सीएफ 8 के साथ हमारे सर्वरों में से एक पर स्थापित करते हैं, लेकिन: यदि डायरेक्टरी (\ स्पूल) खाली है, तो कोड विफल हो जाता है (त्रुटि: दिनांक फ़ंक्शन दिनांकित तिथि को दिया गया DateDiff अनिर्दिष्ट है या अमान्य है।) इसका कारण यह है कि यदि क्वेरी ऑब्जेक्ट स्पूल खाली है (स्पूल.रेकॉर्डकाउंट ईक्यू 0), तो दिनांकित फ़ंक्शन एक त्रुटि उत्पन्न करता है

हम अब इसका इस्तेमाल करते हैं:

<!--- check if request for this page is local to prevent "webusers" to request this page over and over, only localhost (server) can get it e.g. by cf scheduled tasks--->
<cfsetting requesttimeout="30000">
<cfset who = CGI.SERVER_NAME>
<cfif find("localhost",who) LT 1>
    security restriction, access denied.
    <cfabort>
</cfif> 

<!--- get spool directory info --->
<cfdirectory action="list" directory="C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\Mail\Spool\" name="spool" sort="datelastmodified">
<cfset restart = 0>
<cfif spool.recordcount GT 0><!--- content there? --->
    <cfif datediff('n', spool.datelastmodified, now()) gt 120>
        <cfset restart = 1>
    </cfif>
</cfif>
<cfif restart><!--- restart --->
    <cfsavecontent variable="liste">
        <cfdump var="#list#">
    </cfsavecontent>    
    <!--- info --->
    <cfmail to="[email protected]" subject="cfmailqueue restarted by daemon" server="xxx" port="25"  from="xxxx" username="xxxx" password="xxx" replyto="xxxx">
    1/2 action: ...try to restart. Send another mail if succeeded!
    #now()#

    Mails:
    #liste#
    </cfmail>

    <cfset sFactory = CreateObject("java","coldfusion.server.ServiceFactory")>
    <cfset MailSpoolService = sFactory.mailSpoolService>
    <cfset MailSpoolService.stop()>
    <cfset MailSpoolService.start()>

    <!--- info --->
    <cfmail to="[email protected]" subject="cfmailqueue restarted by daemon" server="xxx" port="25"  from="xxxx" username="xxxx" password="xxx" replyto="xxxx">
    2/2 action: ...succeeded!
    #now()#
    </cfmail>

</cfif>

मेल स्पूलर और सीएफ़एमएक्स 8 में अनुलग्नकों के साथ संदेश हैं जो हॉटफिक्सेस में से एक के साथ तय किया गया था। संस्करण 8.0.1, कम से कम, निश्चित होना चाहिए था


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

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

मुझे आशा है कि मदद करता है


क्या आपने पूरी तरह से कतार को छोड़कर प्रयास किया है? (सीएफ व्यवस्थापक में, मेल स्पूल सेटिंग्स के तहत, "डिलीवरी के लिए स्पूल मेल संदेश" को अनचेक करें।)


हमारे पास वास्तव में एक समान सेटअप है, 32 बिट सीएफ 8 ऑन विन 2 के 3

हमने एक साल पहले के बारे में बेन के समाधान को नियोजित किया था, और निश्चित रूप से ऑटो पुनः कतार ईमेल जो अटक जाते हैं में मदद मिली है।

हालांकि हाल ही में किसी भी विशेष कारण के लिए हमारे 7 वेब सर्वरों में से एक ने इस ईमेल में हर ईमेल प्रयास के साथ आने का फैसला किया।

मेल सर्वर पैरामीटर सेट अप करते समय एक अपवाद उत्पन्न हुआ यह अपवाद निम्न कारण था: coldfusion.mail.MailSessionException: मेल सर्वर पैरामीटर सेट अप करते समय एक अपवाद उत्पन्न हुआ ..

हमारे प्रत्येक वेब सर्वर एक-दूसरे के समान क्लोन हैं, तो ऐसा क्यों हो रहा था कि यह एक विचित्र घटना है

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

हमने पाया है कि समस्या मैसाफी वायरस स्कैनर से संबंधित है, इसे c: \ ColdFusion8 निर्देशिका को बाहर करने के लिए अद्यतन करने के बाद समस्या दूर चली गई।

उम्मीद है की वो मदद करदे।