Domanda

Il nostro server CF occasionalmente si interrompe l'elaborazione della posta.Questo è problematico, come molti dei nostri clienti dipendono da esso.

Abbiamo trovato suggerimenti online che parlare di file di zero byte nell'impossibilità di recapitare la cartella, così ho creato un compito che li rimuove ogni tre minuti.Tuttavia, il blocco si è verificato di nuovo.

Sto cercando suggerimenti per diagnosticare e correggere il problema.

  • CF 8 standard
  • Win2k3

Aggiunto il:

  • Non ci sono errori nel registro di posta elettronica al momento la coda non riesce
  • Non abbiamo provato a eseguire questo senza l'utilizzo di coda, a causa della grande quantità di e-mail che invia

Aggiunto 2:

  • Non sembra essere un problema con i file nella cartella di spool.Quando si riavvia la coda di posta elettronica, tutti sembrano elaborare in modo corretto.

Aggiunto 3:

  • Non siamo l'utilizzo di allegati.
È stato utile?

Soluzione

Quello che abbiamo finito per fare:

Ho scritto due operazioni pianificate.La prima controllato per vedere se c'erano messaggi nella cartella della coda di età superiore a n minues (attualmente impostato a 30).Il secondo reset coda ogni notte, nel corso di basso utilizzo.

Purtroppo, non abbiamo mai scoperto perché la coda sarebbe venuto fuori dai binari, ma sembra solo per accadere quando si utilizza Exchange -- altri server di posta che abbiamo provato non hanno questo problema.

Edit: Mi è stato chiesto di postare il mio codice, così qui è quello di riavviare quando la vecchia posta è il seguente:

<cfdirectory action="list" directory="c:\coldfusion8\mail\spool\" name="spool" sort="datelastmodified">
<cfset restart = 0>
<cfif datediff('n', spool.datelastmodified, now()) gt 30>
    <cfset restart = 1>
</cfif>
<cfif restart>
    <cfset sFactory = CreateObject("java","coldfusion.server.ServiceFactory")>
    <cfset MailSpoolService = sFactory.mailSpoolService>
    <cfset MailSpoolService.stop()>
    <cfset MailSpoolService.start()>
</cfif>

Altri suggerimenti

Non abbiamo provato a eseguire questo senza l'utilizzo di coda, a causa della grande quantità di e-mail che invia

Indipendentemente da ciò, hai provato spegnere lo spooling?Ho visto la mail inviata a un tasso di 500-600 messaggi in un secondo e mezzo, e che tipo di merda di server.Con la pagina standard di timeout di 60 secondi, che sarebbe ~72,000 e-mail è possibile inviare prima pagina non sarebbe il time out.Stai inviando più di 72.000 alla volta?

Un'alternativa che ho usato prima di CFMail era questo veloce è stato quello di costruire un custom spooler.Invece di inviare l'e-mail al volo, li salva in una tabella di database.Quindi l'installazione di un lavoro programmato per inviare un paio di centinaia di messaggi e riprogrammare stesso per un paio di minuti più tardi, fino a quando la tabella è vuota.

Abbiamo pianificato il lavoro per eseguire una volta al giorno;e può ri-programmare l'esecuzione di nuovo in un paio di minuti, se la tabella non è vuoto.Mai avuto un problema con esso.

Hai provato semplicemente ignorando la coda del tutto?(In CF Admin, sotto Spool di Posta impostazioni, togliere la spunta a "Spool di messaggi di posta per la consegna.")

Ho lo stesso problema, a volte, e non è a causa di un file di zero byte se il problema ha raccolto in passato.Sembra che una o due file (il più antico di quelli nella cartella) manterrà la coda di elaborazione.Quello che posso fare è spostare tutti i messaggi di una cartella di tenendo, riavviare la coda di posta elettronica e copiare i messaggi in un pezzo alla volta in ordine cronologico inverso, attendere per loro di andare fuori e spostare ancora un po ' oltre.I messaggi che tenevano la coda sono messi in una cartella separata per essere esaminato ultimo.

Probabilmente si può fare questo a livello di programmazione fermare la coda, e , muovendo il più antico file in un'altra cartella, poi avviare la coda di posta elettronica e vedere se l'invio inizia correttamente, controllare la cartella di file di conteggi e le date.Se la rimozione del file più vecchio non funziona, ripetere il processo fino a quando tutti i offendere mail i file vengono spostati e l'invio continua con successo.

Spero che la aiuta.

Ci sono in realtà una configurazione identica, 32bit CF8 su Win2K3.

Abbiamo impiegato Ben soluzione di circa un anno fa, e che certo ha contribuito auto ri-coda di messaggi di posta elettronica che si blocca.

Tuttavia, recentemente, per nessun motivo particolare, uno dei nostri 7 server web ha deciso di entrare in questo stato, con ogni e-mail tentativo.

Si è verificata un'eccezione durante l'impostazione di parametri del server di posta.Questa eccezione è stata causata da:coldfusion.mail.MailSessionException:Si è verificata un'eccezione durante l'impostazione del server di posta parametri..

Ogni nostro web server sono identici cloni di ogni altro, perché avveniva solo che uno è bizzarro.

Un altro elemento da notare è che abbiamo avuto un script che riavvia la macchina nel cuore della notte a causa di JRUN problemi di gestione della memoria.L'atto di riavvio sembrava di avviare il problema.Un successivo riavvio del CF del servizio sarebbe poi chiaro, e la macchina sarebbe bene fino a quando non riavvio di nuovo.

Abbiamo trovato che il problema è legato a McAfee antivirus, dopo l'aggiornamento per escludere i c:\ColdFusion8 directory, il problema è andato via.

Speranza che aiuta.

C'è o c'era un problema con lo spooler di posta elettronica e i messaggi con allegati in CFMX 8 che è stato risolto con uno degli aggiornamenti Rapidi.Versione 8.0.1, almeno, dovrebbe avere avuto quella fissa.

C'è un bug in Ben Doom codice.Ti ringrazio comunque ben, il codice è grande, ed è ora uno dei nostri server con CF8 installato, ma:se la directory (\spool) è vuota, il codice di errore (errore:Data valore passato alla data funzione DateDiff non è specificato o non valido.) Questo perché, se l'oggetto query di spool è vuoto (spool.recordcount EQ 0), la funzione datediff produce un errore.

abbiamo usato questo ora:

<!--- 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="x@y.com" 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="x@y.com" subject="cfmailqueue restarted by daemon" server="xxx" port="25"  from="xxxx" username="xxxx" password="xxx" replyto="xxxx">
    2/2 action: ...succeeded!
    #now()#
    </cfmail>

</cfif>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top