CommuniGate Pro
Version 5.1
クラスタ
 
 
 
E-Mail

クラスタにおけるメッセージ転送

このセクションでは、CommuniGate Pro クラスタ環境におけるメッセージ転送 処理について説明します。

SMTP リレー

受信SMTP 接続は、TCP ロードバランサで受信され、その後、クラスタのフロントエンドに送られま す。このとき、メッセージがフロントエンドで受信されるときの処理は、基本的にはシングルサー バーモード(サーバーが単一の環境) の場合と同じです。ただし、必要な場合、受信時にフロントエ ンドとバックエンドとの間で通信(CLI経由) が実行されることがあります。この通信では、次のような処理が行われます。

受信されたメッセージはキューに格納されます。メッセージの宛先が外部アドレスのときには、メッ セージを受信したフロントエンドによってリレーされます。

Cluster SMTP Relaying

ローカル配信

クラスタシステムでは、メッセージの送信先がローカルのアカウントの( リレーでない) 場合、サー バーがターゲットのアカウントをオープンできず、そのアカウントにメッセージが配信されないこと があります。

上のような状態は例えば、メッセージがフロントエンドサーバーにキューされ、その後の処理が行わ れない(フロントエンドサーバーに共有ドメインのアカウントを直接オープンする機能がない)、メッセージがバックエンドサーバーにキューされているが、そのバックエンドがターゲットのアカウント のホストサーバーではない(スタティッククラスタ)、アカウントが別のバックエンドサーバーによっ てオープンされている(ダイナミッククラスタ) といった場合に生じます。

CommuniGate Pro では、上記の問題はLocal Delivery モジュールが解決します。つまり、配信(Delivery) チャンネルを介してバックエンドサーバーに接続が実行され、そのバックエンドサーバーにメッセー ジが送信されます。続いて、バックエンドによってターゲットのアカウントが直ちにオープンされ、 そのアカウントにメッセージが格納されます。したがって、このバックエンドにはメッセージはキュー されません。

Local Delivery モジュールによるローカル配信に一時的な問題が発生したり配信が失敗したときには、 メッセージの受信元のバックエンドサーバーからエラーが返ります。メッセージは、キューに格納さ れたまま待機状態に入るか、またはキューから削除されます(削除されたときには、エラーレポート メッセージが生成されます)。

Cluster Local Delivery

バックエンドキュー

WebUser インターフェイスセッションやルールMAPI セッション、その他のモジュールやコンポー ネントによって生成または処理された電子メールは、バックエンドサーバーに置かれます。

ただし、バックエンドサーバーにはインターネットに直接アクセスする機能はないため、そのままで はメッセージはリモートシステムに送信されることはありません。この問題は、バックエンドサーバー に置かれているメッセージがすべてフロントエンドに送られるように設定(バックエンドサーバーの設定) することで解決できます。この場合、設定ではアステリスク(*) を使用できます。このアステ リスクは、SMTP 転送サーバー の名前を表します。

バックエンドサーバーに置かれているメッセージがすべてフロントエンドに送られるように設定した 場合、メッセージはいったんバックエンドキュー(バックエンドサーバーのキュー) に格納されます。 そこで、サーバーワイドとクラスタワイドのルールを使って処理されます。その後、メッセージの宛 先がローカルのアカウントのときには、そのローカルのアカウントに、そうでないときにはSMTP モ ジュールを介していずれかのフロントエンドサーバーに送られます。

Cluster Submit

上の例では、バックエンドサーバー上に生成されたメッセージはいずれも2 回処理(バックエンド キューとSMTP モジュール) されます。そのため、クラスタルールとして、メッセージの内容を処理 するプラグインが実行されるようなルールが定義されている場合、かなりのオーバーヘッドが生じます。このオーバーヘッドは、リモートキュー処理(別のサーバー上でのキュー処理) を行うことで回 避できます。


リモートキュー処理

ほとんどのキュー処理は、フロントエンドサーバーで発生します。フロントエンドサーバーは、受信 SMTP メッセージを受け取るとメッセージの送信先に応じてリモートにリレーするか、またはバック エンドを介してローカルアカウントに配信します。この場合、プロトコルとしては、特殊なクラスタ 用プロトコルが使用されます。また、ローカルアカウントに配信される場合、メッセージはバックエ ンドサーバーのキューには格納されません。

メッセージによってはバックエンドサーバー上で直接生成されます。

次のような場合、メッセージはバックエンドサーバー上で生成されます。 Yバックエンドサーバーでもメッセージキュー処理は可能ですが、この処理はできるだけ避けます。理 由は次の通りです。

以上のような理由から、フロントエンドでのみメッセージキュー処理が実行されるのが理想です。

キュー処理の設定は、次の手順で行えます。WebAdmin インターフェイスの[Settings] セクションを 開き、[General] ページの[Cluster] リンクをクリックします。[Queue Processing] パネルに移動し ます。

キュー処理
メッセージ送信モード: リモート送信ログ:
メッセージ送信モード
このオプションでは、どのクラスタメンバー(サーバー)でキュー処理を行うかを設定できます。

[Locally] を選択しておくと、メッセージは「通常」の方法で処理されます。つまり、メッセージが バックエンドで暫定ファイルとして作成され、その後、このサーバー(ローカルサーバー) に送られ、 キュー処理が実行されます。

[Locally for Others] を選択しておいた場合、[Locally] のときと同じく「通常」の方法でメッセージ が処理されます。加えて、他のクラスタメンバーで生成されたメッセージも、このサーバーで受け付 けられるようになります。受け付けられたメッセージは、このサーバーのキューに格納され、処理と 配信が実行されます。ダイナミッククラスタの各サーバーで、このオプションが[Locally for Others] に設定されているかどうかは、ダイナミッククラスタのコントローラが監視しています。その情報を もとに、上記の処理が行われます。

[Remotely] が選択されている場合、このサーバー( クラスタメンバー) から、このオプションが [Locally for Others] に設定されているクラスタメンバーに対して接続が行われます。接続後、暫定 ファイルの内容( メッセージのエンベロープとメッセージ本体) が特殊プロトコル(SMTP ポートを 使用) を使って、そのクラスタメンバーに送信されます。ここで、暫定ファイルの内容の送信が失敗 した(そのクラスタメンバーに対する接続が失敗、または暫定ファイルの転送に失敗した) ときには、 暫定ファイルは、このサーバーのキューに格納され処理されます。したがって、メッセージが消失す ることはありません。

Cluster Remote Submit

CommuniGate® Pro Guide. Copyright © 1998-2007, Stalker Software, Inc.