문제

우리의 CF 서버는 가끔 처리를 중단 메일입니다.이로 인해 문제가 발생합니다 많은 우리의 클라이언트에 따라 달라집니다.

우리가 발견한 제안을 온라인으로 포함 바이트에서 파일을 폴더에 배달할 수 없는,그래서 내가 만들어하는 작업을 제거하시오.그러나,정지가 발생했 다.

내가 찾는 것에 대한 제안을 진단하고 이 문제입니다.

  • CF8 표준
  • Win2k3

추가:

  • 에 오류가 있 mail 로그에 시간을 큐에 실패할
  • 우리가 시도하지 않을 실행하지 않고 이를 사용하는 큐,으로 인해 대량의 메일 우리가 보내기

추가 2:

  • 그것은 보이지 않는 문제가 되는 어떤 파일에서 스풀 폴더에 있습니다.때 우리는 다시 시작 메일 큐,그들은 모든 것 프로세스습니다.

추가 3:

  • 우리가 사용하고 있지 않은 첨부 파일이 있습니다.
도움이 되었습니까?

해결책

우리가 무슨 일을 했:

내가 쓴 두 개의 예약된 작업입니다.첫 번째 있는지를 확인했었다는 메시지 큐에서 폴더 이상 나 n minues(현재 설정이 30).두 번째는 리셋 큐 동안 매일 밤 저렴한 사용합니다.

불행하게도,우리가 결코 발견되었는 이유 큐 오 레일이지만,그만 일어나는 것을 보면 우리가 사용하는 환--기타 메일 서버는 우리가 시도하지 않는 이 문제를 해결합니다.

편집: 하의 게시물 내 코드,그래서 여기 하나를 다시 시작할 때 오래된 메일을 발견:

<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>

다른 팁

우리가 시도하지 않을 실행하지 않고 이를 사용하는 큐,으로 인해 대량의 메일 우리가 보내기

에 관계 없이,당신 끄 감?본 메일 전송 속도 500-600 메시지에서 두 번째로,그것의 종류에 대한시 서버입니다.표준 페이지의 제한 시간은 60 초에는 것~72,000 이메일로 보낼 수 있습니다 전에 이 페이지는 시간을 갖는다.당신은 더 많이 보내보다 72,000 니다.

대체 사용하기 전에 CFMail 이 빠르게 되었을 구축하는 사용자 정의 스풀러.대신 이메일을 발송하는 비행에 저장하고,데이터베이스 테이블.다음 설정을 예약된 작업을 보내에 몇백의 메시지와 자체 일정을 변경한 후에,까지 테이블이 비어 있습니다.

우리는 예약된 작업을 하루에 한 번 실행;고 다시 자체 일정을 다시 실행에서는 몇 분이면 테이블이 비어있지 않음.는 문제가 없었습니다.

당신이 노력했지만 우회 큐예?(CF 관리자,아래의 메일 스풀을 설정"체크 해제 스풀 메일 메시지를 전달합니다.")

나는 같은 문제 때로는 그렇지 않으로 인해 제로 바이트 파일이지만 그 문제가 자니다.그것은 것처럼 하나 또는 두 개 파일(가장 오래된 폴더에)것입니다 큐에서 처리합니다.내가 무엇을 하는 이동의 모든 메시지를 들고 폴더에 다시 시작 메일 큐를 복사 메시지를 다시장에 덩어리에서 시간에서 역순으로 그들을 기다린 이동하고 움직이 좀 더니다.는 메시지를 들고 있었다 최대 큐에서 별도의 폴더를 조사한 후자입니다.

할 수 있습 프로그래밍 방식으로 이렇 큐를 중지, 이동,가장 오래된 파일을 다른 폴더,다음 시작 메일 큐 우를 보내기 시작이 성공적으로 검사하여 폴더에 파일을 계산과 날짜를 입력하기만 하면 됩니다.을 제거하는 경우 가장 오래된 파일을 작동하지 않을 반복,이전까지 프로세스의 모든 잘못된 메일의 파일을 이동하고 전송이 계속 성공하였습니다.

데 도움이 됩니다.

우리가 실제로 동일한 설치,32 비트 CF8 에 Win2K3.

우리는 고용이 벤의 솔루션에 대해 전년,그리고 특정을 도왔 자동 재 큐는 이메일을 얻을 붙어 있습니다.

그러나 최근을 위해 특별한 이유 중 하나는 우리의 7 웹 서버를 얻을하기로 결정했으로 이 상태로 모든 이메일을 시도합니다.

예외가 발생했을 때 설정하는 메일 서버를 매개 변수입니다.이외에 의해 발생했:coldfusion.메일입니다.MailSessionException:예외가 발생했을 때 설정하는 메일 서버 매개 변수..

우리 각자의 웹 서버를 동일한 클론의 각각 기타,왜 그만 일어나고 있는 것 중 하나가 기괴한입니다.

다른 품목을 참고 우리는 스크립트는 컴퓨터를 재부팅합의 중간에서 밤으로 인해 JRUN 의 메모리 관리 문제입니다.의 행동 재부팅이 보였을 시작하는 문제입니다.이후 다시 시작하의 CF 서비스는 다음 명확하고,기계가 잘 될 때까지 그것이 다시 부팅 again.

우리가 발견되는 문제와 관련 McAfee 바이러스 스캐너가,후 업데이트를 제외할 c:\ColdFusion8 디렉터리입니다.

는 희망 도움이 됩니다.

할 수 있는 문제를 메일 스풀러와 메시지와 첨부 파일에서 CFMX8 는 수정되었으로 하나의 핫픽스에 대해 설명합니다.버전 8.0.1,적어도가 있어야 했다는 고정됩니다.

에서 버그가 있 벤 운명의 코드입니다.어쨌든 감사합니다 벤 코드고 우리는 그것을 이용에 지금의 우리의 서버와 CF8 설치되어 있지만:는 경우 디렉토리(\spool)은 빈 코드 실패(오류가:날짜 값을 전달되는 날짜를 기 날짜 지정되어 있지 않거나 잘못되었습니다.) 는 경우 쿼리를 개체 스풀은 빈(spool.recordcount EQ0),날짜 함수는 오류가 있습니다.

우리가 사용이 지금:

<!--- 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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top