Sun Java System Messaging Server 6 2005Q4 管理ガイド

MTA メッセージが配信されない

メッセージ転送に関する問題のほかに、2 つの一般的な問題があります。この問題はメッセージキューにある未処理のメッセージに起因することがあります。

  1. キューキャッシュはキューディレクトリにあるメッセージと同期しません。MTA キューサブディレクトリにある配信待ちのメッセージファイルは、メモリー内キューキャッシュに入れられます。起動時にチャネルプログラムは、このキューキャッシュを調べて、キューにあるどのメッセージを配信するかを確認します。メッセージファイルがキューの中にあっても、対応するキューキャッシュエントリがない場合もあります。

    1. 特定のファイルがキューキャッシュにあるかどうかをチェックするには、imsimta cache -view ユーティリティーを使用します。ファイルがキューキャッシュにない場合は、キューキャッシュを同期させる必要があります。

      キューキャッシュは、通常は 4 時間ごとに同期されます。必要に応じて、imsimta cache -sync を使用してキャッシュを手動で再同期することができます。同期が終わると、チャネルプログラムは、新しいメッセージが処理されたあとで、元の未処理メッセージを処理します。デフォルト (4 時間) を変更する場合は、sync_time= timeperiod を追加することで、ディレクトリ /msg_svr_base/config にある job_controller.cnf ファイルを変更する必要があります。ここで、timeperiod は、キューキャッシュを同期させる頻度です。timeperiod は 30 分より長くする必要があります。次の例では、job_controller.cnf のグローバルなデフォルト (Global defaults) を指定するセクションに sync_time=02:00 を追加することで、キューキャッシュの同期間隔が 2 時間に変更されます。


      ! VERSION=5.0
      !IMTA job controller configuration file
      !
      !Global defaults
      tcp_port=27442
      secret=N1Y9[HzQKW
      slave_command=NULL
      sync_time=02:00
      

      imsimta cache -sync を実行したあとに、imsimta submit channel を実行してメッセージのバックログを空にすることができます。メッセージのバックログが大きい (1000 以上) 場合、チャネルを空にするのに時間がかかることがあるので、注意してください。

      キューキャッシュの情報の概要については、imsimta qm -maint dir -database -total を実行してください。

    2. キューキャッシュを同期させてもメッセージがまだ配信されない場合は、ジョブコントローラを再起動する必要があります。これを行うには、imsimta restart job_controller コマンドを使用します。

      ジョブコントローラを再起動すると、メッセージのデータ構造がディスク上のメッセージキューから再構築されます。


      注意 – 注意 –

      ジョブコントローラの再起動は最後の手段です。ほかの手段をすべて使用し尽くすまでは実行しないでください。


      ジョブコントローラの詳細については、「ジョブコントローラ」を参照してください。

  2. 処理するログファイルを作成できないために、チャネル処理プログラムの実行は失敗します。アクセス権、ディスク容量、および制限容量をチェックします。