13

私たちの CF サーバーは時々メールの処理を停止します。多くのクライアントが依存しているため、これは問題です。

配信不能フォルダー内のゼロバイト ファイルについて言及している提案をオンラインで見つけたので、3 分ごとにそれらを削除するタスクを作成しました。しかし、再び停止が発生しました。

この問題を診断して修正するための提案を探しています。

  • CF8規格
  • Win2k3

追加した:

  • キューが失敗した時点で、メール ログにエラーはありません
  • 大量のメールを送信するため、キューを使用せずにこれを実行しようとはしていません。

追加 2:

  • スプールフォルダ内のどのファイルにも問題はないようです。メール キューを再起動すると、すべてが正しく処理されているように見えます。

追加 3:

  • アタッチメントは使用しておりません。
4

7 に答える 7

12

私たちがやったこと:

スケジュールされたタスクを 2 つ書きました。最初に、キュー フォルダーにn分 (現在は 30 に設定)より古いメッセージがあるかどうかを確認しました。2 つ目は、使用率が低いときに毎晩キューをリセットします。

残念ながら、キューがレールから外れる理由を実際に発見することはできませんでしたが、Exchange を使用している場合にのみ発生するようです。試した他のメール サーバーにはこの問題はありませんでした。

編集: コードを投稿するように求められたので、古いメールが見つかったときに再起動するコードを次に示します。

<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>
于 2009-02-09T15:11:24.750 に答える
5

大量のメールを送信するため、キューを使用せずにこれを実行しようとはしていません。

とにかく、スプールをオフにしてみましたか? メールが 0.5 秒に 500 ~ 600 件の割合で送信されるのを見たことがありますが、これは一種の粗悪なサーバー上にあります。標準のページ タイムアウトが 60 秒の場合、ページがタイムアウトする前に送信できる電子メール数は最大 72,000 になります。一度に 72,000 件以上を送信していますか?

CFMail がこれほど高速になる前に私が使用した代替手段は、カスタム スプーラを構築することでした。電子メールをその場で送信する代わりに、データベース テーブルに保存します。次に、スケジュールされたジョブをセットアップして、数百のメッセージを送信し、数分後にテーブルが空になるまで再スケジュールします。

ジョブを 1 日 1 回実行するようにスケジュールしました。テーブルが空でない場合は、数分後に再実行するように再スケジュールできます。問題はありませんでした。

于 2008-09-26T16:48:16.843 に答える
3

私は時々同じ問題を抱えています、そしてそれはゼロバイトのファイルが原因ではありませんが、その問題は過去に発生しました。1つまたは2つのファイル(フォルダー内で最も古いファイル)がキューの処理を妨げているようです。私がしていることは、すべてのメッセージを保留フォルダーに移動し、メールキューを再起動して、メッセージを一度に時系列の逆順にチャンクにコピーして戻し、メッセージが消えるのを待って、さらに移動します。キューを保持していたメッセージは、後で調べるために別のフォルダーに入れられます。

おそらくプログラムでこれを行うには、キューを停止し、最も古いファイルを別のフォルダーに移動してから、メールキューを開始し、フォルダーファイルの数と日付を確認して送信が正常に開始されるかどうかを確認します。最も古いファイルの削除が機能しない場合は、問題のあるすべてのメールファイルが移動され、送信が正常に続行されるまで、前のプロセスを繰り返します。

お役に立てば幸いです。

于 2008-09-20T20:12:55.960 に答える
3

キューを完全にバイパスしようとしましたか? (CF 管理のメール スプール設定で、[配信用にメール メッセージをスプールする] のチェックを外します。)

于 2008-09-18T18:29:47.700 に答える
2

実際には同じセットアップ、Win2K3上の32ビットCF8があります。

私たちは約1年前にベンのソリューションを採用しましたが、その特定のソリューションは、スタックした電子メールの自動再キューイングに役立ちました。

ただし、最近、特別な理由はなく、7つのWebサーバーの1つが、電子メールを送信するたびにこの状態になることを決定しました。

メールサーバーのパラメータを設定するときに例外が発生しました。この例外の原因は次のとおりです。coldfusion.mail.MailSessionException:メールサーバーパラメータの設定中に例外が発生しました。

私たちの各Webサーバーは互いに同一のクローンであるため、そのサーバーでのみ発生したのは奇妙なことです。

もう1つの注意点は、JRUNのメモリ管理の問題により、深夜にマシンを再起動するスクリプトがあったことです。再起動するという行為が問題を引き起こしたようです。その後CFサービスを再起動すると、CFサービスがクリアされ、マシンは再起動するまで正常に動作します。

この問題はMcAfeeウイルススキャナーに関連していることがわかりました。c:\ ColdFusion8ディレクトリを除外するように更新した後、問題は解決しました。

お役に立てば幸いです。

于 2012-05-10T21:37:30.920 に答える
0

Hotfix の 1 つで修正された CFMX 8 のメール スプーラーと添付ファイル付きメッセージに問題があります。少なくともバージョン 8.0.1 では、これが修正されているはずです。

于 2008-09-25T01:12:05.520 に答える