(57)【要約】  ＭＴＡの１つに障害が起こる場合に他のＭＴＡがメッセージを伝送し続けることができるように、複数の独立したＭＴＡがメッセージを伝送する。メッセージストアの１つに障害が起こる場合に他のメッセージストアのメッセージが伝送され続けることができるように、複数の独立したメッセージストアが提供される。複数の通知エージェントが、新しいメッセージに関してメッセージストアをモニタし、新しいメッセージが伝送に利用可能であるとき、ＭＴＡの１つに通知する。
2009515474.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ化された方法であって、
新しいメッセージに関してメッセージストアをモニタすること（２０８）と、
複数のメッセージトランスポートエージェント（ＭＴＡ）のリストを取得すること（２０６）であって、各ＭＴＡが、前記モニタしたメッセージストアに対するアクセスを有することと、
新しいメッセージを前記モニタしたメッセージストアによって受信すると、前記複数のＭＴＡの１つを選択すること(２１０)と、
前記選択されたＭＴＡに、前記受信した新しいメッセージが伝送に利用可能であることを通知して、前記選択したＭＴＡが、前記受信した新しいメッセージを特定の宛先に伝送することによって前記通知に応答するようにすること（２１２）と
を備えることを特徴とする方法。
【請求項２】
新しいメッセージに関して追加的なメッセージストアをモニタすること（２０８）と、前記モニタしたメッセージストアのリストを取得することをさらに備え、前記選択すること（２１０）は、新しいメッセージが前記モニタしたメッセージストアの１つによって受信されると、ＭＴＡのリストおよびモニタしたメッセージストアの前記リストに応じて、前記複数のＭＴＡの１つを選択することとを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ＭＴＡは、ＭＴＡの前記リスト中の他のＭＴＡの負荷について前記選択されたＭＴＡの負荷を調整するように選択される（２１０）ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ＭＴＡは、ＭＴＡの前記リストからラウンドロビンアルゴリズムを用いて選択されること（２１０）を特徴とする請求項１に記載の方法。
【請求項５】
前記ＭＴＡは、前記複数のＭＴＡのそれぞれの負荷容量、および前記複数のＭＴＡのそれぞれの現在の負荷の少なくとも１つに応じて選択されること（２１０）を特徴とする請求項１に記載の方法。
【請求項６】
前記ＭＴＡを選択すること（２１０）は、前記複数のＭＴＡの一部を包含する指定変更リストをチェックすること（２０２）と、前記指定変更リストから前記ＭＴＡを選択することとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記通知すること（２１２）は、エントリ識別子、親のエントリ識別子、メッセージクラス、およびメールボックス識別子の少なくとも１つの前記受信した新しいメッセージに関連するパラメータを、前記選択したＭＴＡに提供することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
戻り値を前記選択したＭＴＡから受信すること（２１４）であって、前記戻り値が、前記選択したＭＴＡによる前記受信したメッセージの伝送が成功したことを示すことをさらに備えることを特徴とする請求項１に記載の方法。
【請求項９】
戻り値を前記選択したＭＴＡから受信すること（２１４）であって、前記戻り値が、前記選択したＭＴＡによる前記受信したメッセージの前記伝送が不成功であったかどうかを示すことと、
前記選択したＭＴＡをＭＴＡの前記リストから除去すること（２１８）によって、ＭＴＡの前記リストを修正することと、
ＭＴＡの前記修正したリストから新しいＭＴＡを選択すること（２２２）と、
前記新しいＭＴＡに、前記受信したメッセージが伝送に利用可能であることを通知して前記新しいＭＴＡが、前記受信したメッセージを特定の宛先に伝送することによって前記通知に応答するようにすることと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記複数のＭＴＡの１つがアクセス不能である場合に、前記アクセス不能なＭＴＡは、ＭＴＡの前記リストから除去されること（２０６）を特徴とする請求項１に記載の方法。
【請求項１１】
前記除去されたアクセス不能なＭＴＡは、しばらくするとＭＴＡの前記リストに戻されること（２０６）を特徴とする請求項１に記載の方法。
【請求項１２】
ＭＴＡの前記リストが空である場合（２２０）に、
イベントログエントリを書き込むこと（２２４）であって、前記エントリが、前記新しい受信したメッセージを伝送するためのＭＴＡを見つけることができないことを示すこと  をさらに備えることを特徴とする請求項１に記載の方法。
【請求項１３】
パフォーマンスカウンタのトラックをすること（２１６）であって、前記カウンタが、前記選択したＭＴＡの前記通知をすること（２１２）に関連し、１秒あたりのリモートコール数、リモートコール数、およびアクセス不能なＭＴＡの数の少なくとも１つを含むことをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１４】
１つまたは複数のコンピュータ読取可能媒体（１０２）は、請求項１に記載の方法を実行するためのコンピュータ実行可能命令を有することを特徴とする請求項１に記載の方法。
【請求項１５】
複数のメッセージストア（１１４）と、
それぞれが前記複数のメッセージストア（１１４）の１つと関連する複数の通知エージェント（１０６）であって、前記各通知エージェント（１０６）が、新しいメッセージ（１１４）に関して自身と関連するメッセージストアをモニタする複数の通知エージェント（１０６）と、
それぞれが前記各通知エージェント（１０６）によってアクセス可能である複数のＭＴＡ（１０４）であって、前記各ＭＴＡが、前記各メッセージストア（１１２）にアクセスすることができる複数のＭＴＡ（１０４）と
を備えるシステムであって、
前記通知エージェント（１０６）は、新しいメッセージ（１１４）が受信されると、前記複数のＭＴＡ（１０４）の１つを選択し、前記通知エージェント（１０６）は、前記受信したメッセージ（１１４）が伝送に利用可能であることを前記選択したＭＴＡに通知し、
前記選択したＭＴＡは、前記受信したメッセージを特定の宛先に伝送することによって、前記通知に応答する
ことを特徴とするシステム。
【請求項１６】
前記複数のＭＴＡ（１０４）および前記複数の通知エージェント（１０６）は、クラスタ（１００）内にあり、前記クラスタが、
前記選択したＭＴＡを実行する第１のサーバ（１０２Ａ、１０２Ｂ）と、
前記第１のサーバと独立であり、前記通知エージェントを実行する第２のサーバ（１０２Ｃ、１０２Ｄ）と
を備えることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記ＭＴＡ（１０４）は、ＭＴＡの前記リストの他のＭＴＡについて前記選択したＭＴＡの前記負荷を調整するように選択されることを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記ＭＴＡ（１０４）は、ＭＴＡの前記リストからラウンドロビンアルゴリズムを用いて選択されることを特徴とする請求項１５に記載のシステム。
【請求項１９】
前記ＭＴＡ（１０４）は、前記複数のＭＴＡのそれぞれの負荷容量、および前記複数のＭＴＡのそれぞれの現在の負荷の少なくとも１つに応じて選択されることを特徴とする請求項１５に記載のシステム。
【請求項２０】
新しいメッセージが、単一のＭＴＡによる伝送のために単一のメッセージストアに格納されるシステムにおいて、改善は、
追加的なメッセージストア（１１２）と、
追加的なＭＴＡ（１０４）であって、各ＭＴＡが各メッセージストアにアクセスすることができる追加的なＭＴＡ（１０４）と、
それぞれがメッセージストア（１１２）と関連する複数の通知エージェント（１０６）であって、前記各通知エージェント（１０６）が新しいメッセージ（１１４）に関して前記関連するメッセージストア（１１２）をモニタする複数の通知エージェント（１０６）と
を備え、
前記通知エージェント（１０６）は、新しいメッセージ（１１４）が受信されると前記複数のＭＴＡ（１０４）の１つを選択し、前記通知エージェント（１０６）は、前記受信したメッセージ（１１４）が伝送に利用可能であることを前記選択したＭＴＡに通知し、
前記ＭＴＡ（１０４）は、前記受信したメッセージを特定の宛先に伝送することによって前記通知に応答し、
あるメッセージストア（１１２）がアクセス不能で残りのメッセージストア（１１２）がアクセス可能である場合に、前記残りのアクセス可能なメッセージストア（１１２）上の前記受信したメッセージ（１１４）を、伝送することができ、したがって単一障害点としてのアクセス不能なメッセージストアの影響を最小とすることができ、
前記選択したＭＴＡ（１０４）がアクセス不能であり、残りのＭＴＡ（１０４）がアクセス可能である場合に、前記受信したメッセージ（１１４）を、前記残りのアクセス可能なＭＴＡ（１０４）によって伝送することができ、したがって単一障害点としての前記選択したＭＴＡを除去することができる
ことを特徴とする改善。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立したメッセージストアおよびメッセージトランスポートエージェントに関する。
【背景技術】
【０００２】
企業および個人は、ｅメールシステムに大いに依拠して、通信している。これらの通信の重大な性質のため、ｅメールシステムが、信頼でき、かつ効率的であることが不可欠である。当技術分野で知られている現在の方法は、典型的に、ユーザへの送達を管理するため、およびメッセージ伝送のために、メッセージトランスファーエージェント（ＭＴＡ）およびメッセージストアを単一の統合システム内の同一場所に配置する。この方法は、２つの単一障害点(single point of failure)をもたらすことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
第１に、メッセージストアが、単一障害点となることがある。メッセージストアは、システム内の全てのメッセージを包含する。メッセージストアに障害が起こると、ＭＴＡは、メッセージストアにアクセスすることができない。ＭＴＡが、新しい着信メッセージをメッセージストアに送達することができず、メッセージストアの出力メッセージを、ＭＴＡによって伝送することができないので、システム障害が起こることとなる。
【０００４】
第２に、ＭＴＡが、単一障害点となることがある。ＭＴＡは、メッセージストアにメッセージを送達および伝送する責任がある。ＭＴＡに障害が起こると、新しい着信メッセージをメッセージストアに送達することができず、新しい出力メッセージをメッセージストアから伝送することができないので、システム障害が起こることとなる。
【課題を解決するための手段】
【０００５】
一実施形態では、ＭＴＡに、メッセージストア上で新しいメッセージが伝送に利用可能であることを通知するための方法が提供される。新しいメッセージがメッセージストアで受信されると、ＭＴＡが選択され、通知される。ＭＴＡは、新しいメッセージを特定の宛先に伝送することによって、通知に応答する。
【０００６】
別の実施形態では、クラスタ化されたメールボックスおよび通知エージェントは、複数の通知エージェントおよび複数のＭＴＡを含む。通知エージェントは、全てのＭＴＡにアクセスすることができる。各通知エージェントは、メッセージストアと関連する。通知エージェントは、新しいメッセージに関してメッセージストアをモニタする。各ＭＴＡは、全てのメッセージストアにアクセスすることができる。
【０００７】
この概要は、以下の詳細な説明でさらに説明する概念の選択を簡略化された形式で紹介するために提供される。この概要は、請求される対象の重要な特徴および不可欠な特徴を識別することを意図するものではなく、請求される対象の範囲を定める助けとして用いられることを意図するものでもない。
【０００８】
他の特徴は、ある程度明らかであり、以下である程度指摘することとする。
【発明を実施するための最良の形態】
【０００９】
対応する参照番号は、図面を通じて対応する部分を示す。
【００１０】
図１は、本発明の適切なコンピューティングシステムの例示的実施形態を図示するブロック図である。クラスタ１００は、一緒に作動して統一メッセージシステムを提供する複数の独立したサーバ１０２を包含する。クラスタ内の複数のサーバ１０２は、ＭＴＡ１０４または通知エージェント１０６を実行する。ＭＴＡ（１０４）は、着信メッセージを送達し、出力メッセージ１１４を伝送する責任がある。メッセージ１１４を受信したあと、ＭＴＡ１０４は、メッセージ１１４を他のクラスタ１０８および他の組織１１０に転送することができる。さらに、ＭＴＡ１０４は、メッセージをクラスタ内のメッセージストア１１２に送達することができる。
【００１１】
通知エージェント１０６は、ＭＴＡ１０４の１つに、新しい出力メッセージ１１４がメッセージストア１１２で利用可能であることを通知する責任がある。これらのメッセージストア１１２は、クラスタ１１０内の全てのメッセージ（着信および出力の１１４）を包含する。少なくとも１つのメッセージストア１１２は、通知エージェント１０６を実行する各サーバ１０２Ｃ、１０２Ｄと関連する。出力メッセージ１１４は、メッセージストア１１２に格納され、ＭＴＡ１０４による伝送を待っている。
【００１２】
各通知エージェント１０６は、全てのＭＴＡ１０４にアクセスすることができ、各ＭＴＡ１０４は、サーバ１０２Ｃ、１０２Ｄを介して全てのメッセージストア１１２にアクセスすることができる。１つのメッセージストアがアクセス不能であり、残りのメッセージストアがアクセス可能な場合、残りのアクセス可能なメッセージストア上の受信したメッセージを伝送することができ、したがって、単一障害点としてのアクセス不能なメッセージストアの影響を最小にすることができる。また、選択したＭＴＡがアクセス不能であり、残りのＭＴＡがアクセス可能である場合、受信したメッセージを、残りのアクセス可能なＭＴＡによって伝送することができ、したがって、選択したＭＴＡを単一障害点として除去することができる。
【００１３】
別々のサーバ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２ＤのＭＴＡ１０４と通知エージェント１０６とを実行すること、およびＭＴＡ１０４、通知エージェント１０６、メッセージストア１１２の間のフルメッシュ接続を可能にすることによって、単一障害点の１つ、すなわち単一のＭＴＡが除去される。メッセージストア１１２は、まだ単一障害点のままであるが、マシン上で動いている部分は少なく、これにより障害の可能性はさらに減少されることとなる。さらに、複数のサーバ１０２Ｃ、１０２Ｄは、メッセージストア１１２を収納し、単一のメッセージストアに障害が起こると、ＭＴＡ１０４は、メッセージ１１４の伝送を他のメッセージストアから続けることができる。このことは、システム上の障害の影響を最小にすることとなる。
【００１４】
さらに、メッセージの伝送を分担するように複数のＭＴＡ１０４を使用可能にすることにより、作業負荷を、ＭＴＡ１０４を稼動している複数のサーバ１０２Ａ、１０２Ｂ中で分担することが可能となる。この負荷を調整することは、ハードウェア資源のより効果的な使用を提供する。また、複数のＭＴＡ１０４は、メッセージのフローを停止することなく、ネットワークオペレータが１つのＭＴＡサーバをオフラインにすることを可能にする。したがって、ハードウェアまたはソフトウェアのアップグレードを、システムの機能性にいかなる影響を与えることなく、サーバに対して行うことができる。
【００１５】
一実施形態では、通知エージェント１０６は、サーバ１０２Ｃ、１０２Ｄ上でサービスの内部で稼動する。通知エージェント１０６およびＭＴＡ１０４は、別々のサーバに配置されるので、通知エージェント１０６は、リモートプロシージャコールを利用して、ＭＴＡ１０４と通信する。ＵＤＰピングおよびＴＣＰ接続を含む追加的な通信手段を使うことができる。別の実施形態では、通知エージェント１０６は、１秒あたりのリモートコール数、リモートコール数、およびアクセス不能なサーバの数を含むパフォーマンスカウンタをトラックする。起こり得るシステム障害についてシステム管理者に警告するために、別の実施態様では、ＭＴＡがメッセージ伝送のプロセスに利用可能でない場合、通知エージェント１０６は、システムログ内にエントリを作成する。
【００１６】
作動中、通知エージェント１０６は、新しい出力メッセージ１１４に関してメッセージストア１１２をモニタする。新しい出力メッセージ１１４が通知エージェント１０６によって検出されると、通知エージェントは、ＭＴＡ１０４の１つを選択して、メッセージが伝送に利用可能であることを通知する。そのＭＴＡ１０４は、メッセージを、他のクラスタ１０８、他の組織１１０、またはクラスタ１００の中のメッセージストア１１２の１つに伝送することによって通知に応答する。
【００１７】
サーバ１０２は、典型的に、少なくともいくつかのコンピュータ読取可能媒体の形式を有する。揮発性および不揮発性媒体と、リムーバブルおよび非リムーバブル媒体の両方を含むコンピュータ読取可能媒体は、サーバ１０２がアクセスすることができる任意の利用可能な媒体とすることができる。限定ではなく例として、コンピュータ読取可能媒体は、コンピュータ記憶媒体および通信媒体を備える。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他の情報などの情報の記憶のための任意の方法または技術で実装された揮発性および不揮発、リムーバブルおよび非リムーバブルの媒体を含む。たとえば、コンピュータ読取可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ，フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤもしく他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶媒体、または所望の情報を格納するのに用いることができ、サーバ１０２によってアクセスすることができる任意の他の媒体を含む。通信媒体は、典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータを搬送波もしくは他の移送機構などの変調データ信号の中に具体化し、任意の情報伝達媒体を含む。当業者は、情報を信号内にエンコードする仕方で１つまたは複数の特性を設定または変更した変調データ信号に精通している。有線ネットワークまたはダイレクト有線接続などの有線媒体、ならびに音波、ＲＦ、赤外線、および他の無線媒体などの無線媒体は、通信媒体の例である。上記の任意のものの組み合わせも、コンピュータ読取可能媒体の範囲内に含まれる。
【００１８】
サーバ１０２は、典型的に、リムーバブルおよび／または非リムーバブル、揮発性および／または不揮発性の形式のコンピュータ記憶媒体を含むいくつかのシステムメモリの形式を有する。図示した実施形態では、システムメモリは、ＲＯＭおよびＲＡＭを含む。
【００１９】
サーバ１０２は、ネットワーク化された環境において、リモートコンピュータなどの１つまたは複数のリモートコンピュータに対する論理接続を用いて動作することができる。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードとすることができ、典型的にはサーバ１０２に関して上述した要素の多くまたは全てを含む。図１で描かれる論理接続は、ＬＡＮおよびＷＡＮを含むが、他のネットワークを含むこともできる。ＬＡＮおよび／またはＷＡＮは、有線ネットワーク、無線ネットワーク、これらの組み合わせなどとすることができる。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびグローバルなコンピュータネットワーク（例えば、インターネット）においては一般的である。
【００２０】
ローカルエリアネットワーキング環境で用いられる場合、サーバ１０２は、ネットワークインタフェースまたはアダプタを通じてＬＡＮに接続される。ワイドエリアネットワーキング環境で用いられる場合、サーバ１０２は、典型的に、モデム、またはインターネットなどのＷＡＮ上で通信を確立するための他の手段を含む。内蔵または外付けとすることができるモデムは、ユーザ入力インタフェースまたは他の適した機構を介してシステムバスと接続される。ネットワーク化された環境では、サーバ１０２に関して描かれるプログラムモジュールまたはその一部分を、リモートメモリ記憶デバイス（図示せず）に格納することができる。示されるネットワーク接続は、例示的であり、コンピュータ間の通信リンクを確立する他の方法を用いることができる。
【００２１】
本発明の実施形態を、１つもしくは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般的に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造を含むが、これらに限定されるものではない。本発明の態様を、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体の両方に、配置することができる。
【００２２】
ソフトウェアアークテクチャのコンテキスト内のインタフェースは、ソフトウェアモジュール、コンポーネント、コード部分、または他のコンピュータ実行可能命令のシーケンスを含む。インタフェースは、例えば、第１のモジュールのためにコンピューティングタスクを実施する第２のモジュールにアクセスする第１のモジュールを含む。第１および第２のモジュールは、一例では、オペレーティングシステムによって提供されるＡＰＩ、（例えば、ピアツーピアアプリケーション通信のための）ＣＯＭインタフェース、および（例えば、ウェブサービス間の通信のための）ＸＭＩインタフェースを含む。
【００２３】
インタフェースは、密結合、すなわちＪ２ＥＥ、ＣＯＭ、またはＤＣＯＭなどにおける同期実装とすることができる。代替または追加として、インタフェースは、疎結合、すなわち（例えば、簡単なオブジェクトアクセスプロトコルを使用する）ウェブサービスなどにおける非同期実装とすることができる。一般に、インタフェースは、密結合、疎結合、同期、および非同期という特性の任意の組み合わせを含む。さらに、インタフェースは、標準プロトコル、専有プロトコル、または標準プロトコルと専有プロトコルの任意の組み合わせに適合することができる。
【００２４】
本明細書で説明されるインタフェースは、すべて、単一のインタフェースの部分とすることができるか、または別々のインタフェースもしくは別々のインタフェースの中の任意の組み合わせとして実装することができる。インタフェースは、ローカルまたはリモートで実行して、機能性を提供することができる。さらに、インタフェースは、本明細書で図示または説明されるものと比べて、追加のまたは少ない機能性を含むことがある。
【００２５】
作動中、サーバ１０２は、図面で説明されるようなコンピュータ実行可能命令を実行して、本発明の態様を実装することができる。
【００２６】
図２は、ＭＴＡ通知を実装する一実施形態の例示的なフローチャートである。２００で、伝送する必要がある新しいメッセージがあるときに、ＭＴＡに通知する責任がある通知エージェントが開始される。２０２では、通知エージェントは、ＭＴＡの指定変更リスト（override list）が存在するかどうかを判定する。存在する場合は、指定変更リストを、２０４でサーバから取得する。指定変更リストの１つの目的は、管理者が、メッセージストアとＭＴＡの単一のまたは小さなグループとを結びつけることができるようにすることである。例えば、管理者が、クラスタ中のＭＴＡの１つに関連する可能性がある一時的な問題をトラックダウンしようとしている場合、その問題を有するサーバが発見されるまで、メッセージストアをサイト中の各ＭＴＡに結びつけることができる。別の例では、管理者が、より多くの処理要求がより強固なＭＴＡに行くことを確実にしたい場合、１つまたは複数のメッセージストアが、強固なＭＴＡを排他的に使用するように制限することができる。
【００２７】
指定変更リストは、通知エージェントを実行しているサーバ上に維持される、ＭＴＡを実行しているサーバのリストである。デフォルトでは、指定変更リストは、存在しないこととなる。指定変更リストが存在する場合、通知エージェントは、リスト中のＭＴＡに通知するだけである。例えば、指定変更リストを、ワシントン州レッドモンドにあるマイクロソフト社の「ＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹ」という製品のディレクトリサービス中のサーバオブジェクトに配置することができる。指定変更リストは、サーバオブジェクト中に存在するであろうSubmissionServerOverrideListのプロパティに格納されることとなる。set-mailboxserverおよびget-mailboxserverのタスクを使用して、指定変更リストを更新することができる。以下は、現在の指定変更リストをサーバオブジェクトから取り出し、リストをクリアし、リストに新しいエントリを追加するアルゴリズムである。  
$overrideList =
(get-mailboxserver).SubmissionServerOverrideList
$overrideList.Add(“<ADObjectId of a MTA server>”)
set-mailboxserver -Identity:<ID of the mailbox server>-
SubmissionServerOverrideList
$overrideList
以下は、一旦指定変更リストが作成されたあと、指定変更リストを除去するアルゴリズムである。  
$overrideList = (get-mailboxserver).SubmissionServerOverrideList
$overrideList.Clear()
set-mailboxserver -Identity:<ID of the mailbox server>-
SubmissionServerOverrideList
$overrideList
【００２８】
２０２で、ＭＴＡの指定変更リストが存在しないと判定されると、利用可能なＭＴＡのリストを、２０６で取得する。一実施形態では、クラスタ中の全てのＭＴＡのリストに関してディレクトリサービスに照会することによって、リストを取得する。２０８で、通知エージェントは、新しいメッセージに関してメッセージストアをモニタする。新しいメッセージが検出されると、通知エージェントは、２１０で、リストからＭＴＡを選択する。一実施形態では、複数のＭＴＡにまたがる負荷を調整するようにＭＴＡを選択して、その結果各ＭＴＡは、概ね等しく通知が分散されることになる。例えば、以下のラウンドロビンアルゴリズムを使用して、負荷調整を実装することができ、ここで、CurrentMTAは、選択されたＭＴＡを表し、MTAArrayは、ＭＴＡのリストを表し、そしてNumMTAsは、ＭＴＡリスト中のＭＴＡの数を表す。  
CurrentMTA++ = MTAArray[CurrentMTA % NumMTAs]
【００２９】
別の実施態様では、ＭＴＡを、各ＭＴＡの負荷容量および各ＭＴＡの現在の負荷に応じて選択する。別の代替的な実施形態では、モニタしたメッセージストアのリストを取得し、ＭＴＡを、メッセージストアのリストおよびＭＴＡのリストに応じて選択する。別の実施形態では、システムの決定論を増大するために同じＭＴＡの方を選ぶ。例えば、メッセージストアおよびＭＴＡのリストがソートされる。新しいメッセージを包含するメッセージストアのインデックスが判定される。そして、前のステップで判定されたインデックスを使用してＭＴＡリスト内でインデックスすることによってＭＴＡが選択され、そのインデックスをラップすることを可能にする。
【００３０】
２１２では、通知は、選択されたＭＴＡに送信される。一実施形態では、通知エージェントはＲＰＣを利用して、通知を送信する。別の実施形態では、通知は、新しいメッセージに関連するパラメータとして次のデータを提供する。すなわち、アイテムを処理するためのエントリＩＤ、メッセージに関する親のエントリＩＤ、メッセージに関するメッセージクラス、メッセージを包含するメールボックスを提供する。この実施形態では、全てのパラメータは、サーバ上のMapiEvent構造で取り出される。
【００３１】
２１４では、通知エージェントは、通知がＭＴＡによって受信されたかどうかを判定する。一実施形態では、この判定をなすために戻り値が実装される。（他の値も検討されるが）戻り値は、次の起こり得る値の１つを包含する。すなわち、通知の成功、一時的メッセージエラーによる通知の失敗、または非メッセージエラーによる通知の失敗である。例えば、一時的メッセージエラーにより通知が失敗した場合、これは、ＭＴＡは、通知エージェントによってアクセス可能であったが、メッセージを一時的に伝送することができなかったということを示すため、通知は、あとで再試行されることとなる。非メッセージエラーにより通知が失敗した場合、これは、ＭＴＡは、もはや通知エージェントがアクセス可能ではなかったことを示すため、通知は、別のＭＴＡを利用して再試行されることとなる。
【００３２】
２１４で通知が成功したという判定がなされると、パフォーマンスカウンタは、２１６で更新される。次いで、通知エージェントは、２０８で新しいメッセージに関してメッセージストアをモニタする。
【００３３】
２１４で通知が不成功であるという判定がなされると、選択されたＭＴＡは、２１８でＭＴＡリストから除去される。一実施形態では、除去されたＭＴＡは、６００秒後にＭＴＡのリストに戻されることとなる。２２０で、ＭＴＡリストが空であると判定されると、２２２で新しいＭＴＡが選択される。一実施形態では、リスト中の次のＭＴＡが、新しいＭＴＡとして選択される。新しいＭＴＡが２２２で選択されると、新しいＭＴＡは、２１２で、メッセージが伝送に利用可能であると通知されることとなる。
【００３４】
２２０で、ＭＴＡリストが空であると判定されると、システム管理者に新しいメッセージを伝送するのに利用可能なＭＴＡがないと警告するために、２２４で、イベントログエントリが書き込まれる。２２６で、通知エージェントが、一時的に通知を中断することとなる。
【００３５】
図示および説明される本発明の実施形態において、操作の実行またはパフォーマンスの順序は、特別の定めがない限り、本質的なことではない。つまり、特別の定めがない限り、操作を任意の順序で実施することができ、本発明の実施形態は、本明細書で開示される操作に比べて、追加のまたは少ない操作を含むことができる。例えば、特定の操作を別の操作の前、同時、または後に、実行することおよび実施することは、本発明の態様の範囲内であることが意図される。
【００３６】
本発明の実施形態を、コンピュータ実行可能命令で実装することができる。コンピュータ実行可能命令を、１つまたは複数のコンピュータ実行可能なコンポーネントまたはモジュールに編成することができる。本発明の態様を、任意の数および編成の上記コンポーネントまたはモジュールで実装することができる。例えば、本発明の態様は、図面で図示され本明細書で説明された特定のコンピュータ実行可能命令または特定のコンポーネントもしくはモジュールに限定されない。本発明の他の実施形態は、本明細書で図示され説明されたものと比べて多くのまたは少ない機能性を有する異なるコンピュータ実行可能命令またはコンポーネントを含むことができる。
【００３７】
本発明またはその実施形態の態様の要素を紹介するとき、冠詞「１つの(a)」「１つの(an)」「その(the)」および「前記（said）」は、１つまたは複数の要素があることを意味することが意図される。単語「備えること」「含むこと」「有すること」は、包括的であり、リストされた要素以外の追加的な要素があることを意味することが意図される。
【００３８】
本発明の態様の範囲から逸脱することなく上記の構造、物、方法において様々な変更を行うことができる可能性があるので、上記の詳細な説明に包含され添付の図面に示される全ての事項は、例示として解釈されるべきであり、限定する意味で解釈されるべきではないことが意図されている。
【図面の簡単な説明】
【００３９】
【図１】本発明の適切なコンピューティングシステムについての例示的な実施形態を図示するブロック図である。
【図２】ＭＴＡ通知の方法の一実施形態についての例示的フローチャートである。
【図１】
2009515474.tif 000003
【図２】
2009515474.tif 000004
【国際調査報告】
2009515474.tif 000005
2009515474.tif 000006