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

新しいチャネルを作成するには

状況によっては、リモートドメインに問題が発生し、このサーバー宛のメールが大量にあると、配信できないメッセージで送信チャネルキューがいっぱいになることがあります。MTA はこれらのメッセージの再配信を定期的に試行するので (再試行の頻度と回数は backoff キーワードで設定可能)、通常の状況では操作は必要ありません。ただし、多くのメッセージがキューに溜まると、配信できないメッセージのバックログを処理するためにすべてのチャネルジョブが使用され、ほかのメッセージが適時に配信されなくなることがあります。

このような場合は、独自のジョブコントローラプールで実行されている新しいチャネルにこれらのメッセージを再ルーティングすることもできます。これによって処理の競合が回避され、ほかのチャネルはそれぞれのメッセージを配信できるようになります。次に、この手順を説明します。ここでは siroe.com というドメインを仮定しています。

Procedure新しいチャネルを作成するには

手順
  1. tcp_siroe-daemon という新しいチャネルを作成し、pool キーワードの新しい値を追加します。

    チャネルは /msg_svr_base/config/imta.cnf のチャネルブロックセクションに作成されます。このチャネルには、通常の送信 tcp_* チャネルと同じチャネルキーワードを設定します。通常、これはすべての送信 (インターネット) トラフィックを処理する tcp_local チャネルです。siroe.com は外部のインターネット上にあるので、これがエミュレートするチャネルになります。新しいチャネルは次のようになります。

    tcp_siroe smtp nomx single_sys remotehost inner allowswitchchannel     \
    dentnonenumeric subdirs 20 maxjobs 7 pool SMTP_SIROE maytlsserver      \
    maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0      \    
    tcp_siroe-daemon

    新しいキーワードと値のペア pool SMTP_SIROE に注目してください。これは、このチャネルへのメッセージでは SMTP_SIROE プールのコンピュータリソースだけを使用するように指定しています。また、新しいチャネルの前後には空白行が必要です。

  2. imta.cnf ファイルの書き換えルールセクションに 2 つの書き換えルールを追加して、siroe.com 宛の電子メールをこの新しいチャネルに送信します。

    新しい書き換えルールは次のようになります。


    siroe.com     $U%$D@tcp_siroe-daemon
    .siroe.com      $U%$H$D@tcp_siroe-daemon
                         

    これらの書き換えルールは、(host1.siroe.com や hostA.host1.siroe.com などのアドレスも含む) siroe.com 宛のメッセージを、tcp_siroe-daemon という正式なホスト名を持つ新しいチャネルに送信します。これらのルールの書き換え部分 $U%$D および $U%$H$D は、メッセージの元のアドレスを保持します。$U は、元のアドレスからユーザー名をコピーします。% は区切り文字で、ユーザー名とドメインの間の @ です。$H は、パターン内のドットの左側にあるホスト/ドメイン指定のうち、一致しない部分をコピーします。$D は、ドメイン指定のうち、一致する部分をコピーします。

  3. SMTP_SIROE という新しいジョブコントローラプールを定義します。

    /msg_svr_base/config/job_controller.cnf に、次の内容を追加します。


    [POOL=SMTP_SIROE]
    job_limit=10
                         

    これは、最大 10 個のジョブを同時に実行できる SMTP_SIROE というメッセージリソースプールを作成します。このプール定義とほかのプール定義の間に空白行を入れないでください。ジョブおよびプールの詳細については、「ジョブコントローラ」を参照してください。

  4. MTA を再起動します。

    次のコマンドを発行します。imsimta refresh

    これは設定を再コンパイルし、ジョブコントローラとディスパッチャーを再起動します。

    この例では、内部ユーザーから大量の電子メールが siroe.com という特定のリモートサイト宛に送られます。何らかの理由で、siroe.com は一時的に、着信 SMTP 接続を受け入れることができず、電子メールを配信できない状態です。このような状況はまれなことではありません。

    siroe.com 宛の電子メールが届くと、配信できないメッセージで送信チャネルキュー (通常は tcp_local) がいっぱいになります。MTA はこれらのメッセージの再配信を定期的に試行するので (再試行の頻度と回数は backoff キーワードで設定可能)、通常の状況では操作は必要ありません。

    ただし、多くのメッセージがキューに溜まると、siroe.com 宛のメッセージのバックログを処理するためにすべてのチャネルジョブが使用され、ほかのメッセージが適時に配信されなくなることがあります。このような場合は、独自のジョブコントローラプールで実行されている新しいチャネルに siroe.com 宛のメッセージを再ルーティングすることもできます (「ジョブコントローラ」を参照)。これによって、siroe.com 宛のメッセージで使用されている処理リソースの競合が回避され、ほかのチャネルはそれぞれのメッセージを配信できるようになります。次に、新しいチャネルを作成してこの状況に対処する手順を説明します。