Sun Java System Messaging Server 6.3 管理ガイド

12.8.2.1 再組み立てチャネル

宛先チャネルに defragment キーワードがある場合、メッセージは再組み立てチャネルに転送されます。つまり、MTA がメッセージを待ち行列に入れる通常の宛先チャネルに defragment キーワードが存在する場合、MTA はメッセージ構造を調べます (MIME 解析)。MTA によってこの構造が MIME メッセージ断片であると認識された場合は、メッセージが通常の宛先チャネルではなく再組み立てチャネルに自動的にルーティングされます。

再組み立てデータベースには、MTA に到着するメッセージ断片に関する情報 (各メッセージ断片を受信するホストを示す情報など) が含まれます。最初の断片が受信され、再組み立てデータベース内にその情報がある場合、同じ再組み立てデータベースを使用してほかのシステムで受信されるメッセージの残りの部分は、最初のホストにルーティングされます。次に例を示します。

  1. message/partial; id=123; part=x がホスト 1 に到着し、本来であれば宛先/送信チャネルであるホスト上の defragment キーワードによって、ホスト 1 の再組み立てチャネルにルーティングされます。

  2. ホスト 1 の再組み立てチャネルは、再組み立てデータベースで、このメッセージの残りの部分が到着済みかどうかを確認します。到着していない場合、ホスト 1 の再組み立てチャネルは、この部分を再組み立てデータベースに入れて、ホスト 1 上に置きます。

  3. message/partial; id=123; part=y がホスト 2 に到着し、本来であれば宛先/送信チャネルであるホスト上の defragment キーワードによって、ホスト 2 の再組み立てチャネルにルーティングされます。

  4. ホスト 2 の再組み立てチャネルは、再組み立てデータベースで、このメッセージの part x がホスト 1 にすでに存在して格納されているかどうか確認します。再組み立てチャネルは、メッセージの断片をホスト 1 にリダイレクトします (ソースによって @host1 が含まれるアドレスがルーティングされる)。

  5. message/partial' id=123; part=y がホスト 1 に到着し、再組み立てチャネルにルーティングされます。再組み立てチャネルは、この断片を実行してデータベースに入れます。

断片化されたメッセージの残りの部分すべてが、メッセージの最初の部分 (最初に受信する部分であって、part=1 とは限らない) を受信したホストにリダイレクトされます。そのホストの再組み立てチャネルによって再アセンブルされ、最終的には、再アセンブルされた再組み立て済みのメッセージが (または再組み立て処理がタイムアウトした場合は、notices を超過したために、個々の断片がそのままの状態で) 本来の宛先チャネルに送信されます。どのホストが各メッセージの「最初」の部分を受信することになるかによって、メッセージの再組み立てにおける若干の負荷分散効果が得られます。