![]() |
Version 5.1 |
|||||||||||||||||||||||||||||
|
|
受信されたメッセージはキューに格納されます。メッセージの宛先が外部アドレスのときには、メッ セージを受信したフロントエンドによってリレーされます。
クラスタシステムでは、メッセージの送信先がローカルのアカウントの( リレーでない) 場合、サー バーがターゲットのアカウントをオープンできず、そのアカウントにメッセージが配信されないこと があります。
上のような状態は例えば、メッセージがフロントエンドサーバーにキューされ、その後の処理が行わ れない(フロントエンドサーバーに共有ドメインのアカウントを直接オープンする機能がない)、メッセージがバックエンドサーバーにキューされているが、そのバックエンドがターゲットのアカウント のホストサーバーではない(スタティッククラスタ)、アカウントが別のバックエンドサーバーによっ てオープンされている(ダイナミッククラスタ) といった場合に生じます。
CommuniGate Pro では、上記の問題はLocal Delivery モジュールが解決します。つまり、配信(Delivery) チャンネルを介してバックエンドサーバーに接続が実行され、そのバックエンドサーバーにメッセー ジが送信されます。続いて、バックエンドによってターゲットのアカウントが直ちにオープンされ、 そのアカウントにメッセージが格納されます。したがって、このバックエンドにはメッセージはキュー されません。
Local Delivery モジュールによるローカル配信に一時的な問題が発生したり配信が失敗したときには、 メッセージの受信元のバックエンドサーバーからエラーが返ります。メッセージは、キューに格納さ れたまま待機状態に入るか、またはキューから削除されます(削除されたときには、エラーレポート メッセージが生成されます)。
WebUser インターフェイスセッションやルール、 MAPI セッション、その他のモジュールやコンポー ネントによって生成または処理された電子メールは、バックエンドサーバーに置かれます。
ただし、バックエンドサーバーにはインターネットに直接アクセスする機能はないため、そのままで はメッセージはリモートシステムに送信されることはありません。この問題は、バックエンドサーバー に置かれているメッセージがすべてフロントエンドに送られるように設定(バックエンドサーバーの設定) することで解決できます。この場合、設定ではアステリスク(*) を使用できます。このアステ リスクは、SMTP 転送サーバー の名前を表します。
バックエンドサーバーに置かれているメッセージがすべてフロントエンドに送られるように設定した 場合、メッセージはいったんバックエンドキュー(バックエンドサーバーのキュー) に格納されます。 そこで、サーバーワイドとクラスタワイドのルールを使って処理されます。その後、メッセージの宛 先がローカルのアカウントのときには、そのローカルのアカウントに、そうでないときにはSMTP モ ジュールを介していずれかのフロントエンドサーバーに送られます。
上の例では、バックエンドサーバー上に生成されたメッセージはいずれも2 回処理(バックエンド キューとSMTP モジュール) されます。そのため、クラスタルールとして、メッセージの内容を処理 するプラグインが実行されるようなルールが定義されている場合、かなりのオーバーヘッドが生じます。このオーバーヘッドは、リモートキュー処理(別のサーバー上でのキュー処理) を行うことで回 避できます。
ほとんどのキュー処理は、フロントエンドサーバーで発生します。フロントエンドサーバーは、受信 SMTP メッセージを受け取るとメッセージの送信先に応じてリモートにリレーするか、またはバック エンドを介してローカルアカウントに配信します。この場合、プロトコルとしては、特殊なクラスタ 用プロトコルが使用されます。また、ローカルアカウントに配信される場合、メッセージはバックエ ンドサーバーのキューには格納されません。
メッセージによってはバックエンドサーバー上で直接生成されます。
次のような場合、メッセージはバックエンドサーバー上で生成されます。以上のような理由から、フロントエンドでのみメッセージキュー処理が実行されるのが理想です。
キュー処理の設定は、次の手順で行えます。WebAdmin インターフェイスの[Settings] セクションを 開き、[General] ページの[Cluster] リンクをクリックします。[Queue Processing] パネルに移動し ます。
[Locally] を選択しておくと、メッセージは「通常」の方法で処理されます。つまり、メッセージが バックエンドで暫定ファイルとして作成され、その後、このサーバー(ローカルサーバー) に送られ、 キュー処理が実行されます。
[Locally for Others] を選択しておいた場合、[Locally] のときと同じく「通常」の方法でメッセージ が処理されます。加えて、他のクラスタメンバーで生成されたメッセージも、このサーバーで受け付 けられるようになります。受け付けられたメッセージは、このサーバーのキューに格納され、処理と 配信が実行されます。ダイナミッククラスタの各サーバーで、このオプションが[Locally for Others] に設定されているかどうかは、ダイナミッククラスタのコントローラが監視しています。その情報を もとに、上記の処理が行われます。
[Remotely] が選択されている場合、このサーバー( クラスタメンバー) から、このオプションが [Locally for Others] に設定されているクラスタメンバーに対して接続が行われます。接続後、暫定 ファイルの内容( メッセージのエンベロープとメッセージ本体) が特殊プロトコル(SMTP ポートを 使用) を使って、そのクラスタメンバーに送信されます。ここで、暫定ファイルの内容の送信が失敗 した(そのクラスタメンバーに対する接続が失敗、または暫定ファイルの転送に失敗した) ときには、 暫定ファイルは、このサーバーのキューに格納され処理されます。したがって、メッセージが消失す ることはありません。