製品サポート: 西暦 2000 年問題とは関係なく、マイクロソフトでは、つねに
最新のリリースおよびサービス パックをインストールすることをお客様に
推奨しております。その一方、さまざまな理由で、お客様が最新のリリースに
変更できない場合があることも理解しております。お客様の西暦 2000 年への対応
作業にご協力するため、マイクロソフトでは、Exchange Server-Enterprise 5.0 Service Pack 2 を西暦 2001 年 1 月 1 日まで
"対応" ソフトウェアとしてサポートする計画です。リリースされる新しいサービス バックも
西暦 2000 年に対応しており、それには 2000 年対応以外の内容も含まれます。
これは、お客様に 2000 年対応のためだけに製品のアップデートをお願いすることを
最小限にするためです。
注 1: 詳細については以下のリンクより最新の Windows NT Server の対応状況を参照してください。
product.htm
Microsoft Exchange Server を 2000 年対応にするには、2000 年問題に "対応" もしくは "対応#" の、Windows NT Server 上で動作させることが必要です(Windows NT Server 4.0 SP3 と最新の修正プログラムの組み合わせも含みます)。
Microsoft Exchange Server の対応期間は、1970 年 1 月 1 日~ 2038 年 1 月 19 日です。ただし、Microsoft Exchange Server は、そのパラメータを超えた期間でも機能でき、最長で 1601 ~ 60055 年まで対応できます。
この Web ページでは、Microsoft Exchange のコンポーネントについて、日付データのやり取りと日付処理について説明します。ここでは、Microsoft Exchange Server Enterprise Edition に提供されているすべての製品と、別途購入可能な Exchange Server Enterprise 関連の製品について説明します。また、Exchange Server Standard Edition に追加できるコンポーネントも示します。すべてのコンポーネントを総称して、 Exchange と呼びます。 各コンポーネントの日付処理やテスト項目について詳しく説明する場合は、総称ではなく各コンポーネント名を記します。Exchange クライアントおよび Outlook の西暦 2000 年対応については、それぞれの Web ページを参照してください。
必要なソフトウェア
Exchange Server 5.0 を 2000 年問題に対応させるためには、Exchange 5.0 SP2 と最新のバグ修正プログラムをインストールする必要があります。
Exchange Server 5.0 Service Pack 2 (英語版) は、次のアドレスからダウンロードできます。
ftp://ftp.microsoft.com/bussys/exchange/exchange-public/fixes/Eng/Exchg5.0/SP2/
Exchange Server 5.0 のバグ修正プログラム (英語版) は、次のアドレスからダウンロードできます。
ftp://ftp.microsoft.com/bussys/exchange/exchange-public/fixes/Eng/Exchg5.0/Post-SP2-STORE/
ftp://ftp.microsoft.com/bussys/exchange/exchange-public/fixes/Eng/Exchg5.0/Post-SP2-CCM/
ftp://ftp.microsoft.com/bussys/exchange/exchange-public/fixes/Eng/Exchg5.0/Post-SP2-MIG
/
フランス語版 (FRN)、ドイツ語版 (GER)、日本語版 (JPN) は、次の各ディレクトリからアクセスできます。
ftp://ftp.microsoft.com/bussys/exchange/exchange-public/fixes/
日付の処理
以下に、Exchange の主なコンポーネントとその日付処理について説明します。
Microsoft Exchange Server データベース
拡張ストレージ エンジンと Exchange Server データベース エンジンは、2000 年問題に対応しています。内部的な対応期間は、1900 ~ 2156 年です。Jet では、JET_LOGTIME 構造体が使用されます。
Exchange Server データベース エンジンの日付と時刻の構造体
JET_LOGTIME 構造体 (日付と時刻を表す 8 文字 (バイト))
西暦は char bYear とエンコードされます。この構造体の対応期間は、1900 ~ 2156 年です。
Microsoft Exchange Information Store
内部的には、FILETIME または SYSTIME を使用して、すべての西暦が 4 桁で保存されます。ただし、ほかのコンポーネントがインフォメーション ストアにインターネット標準の RFC 822 メッセージを渡す場合は、下 2 桁の西暦を受け付けます。その場合、日付は 1986 年 1 月 1 日からの秒数として保存されます。この方式では、1986 ~ 2085 年を扱うことができます。
UTC_TIME 文字列として日付がインフォメーション ストアに渡された場合、Exchange Information Store は 1951 を基準として、下 2 桁の西暦を変換します。つまり、下 2 桁が 51 ~ 99 年の場合は 1951 ~ 1999 年、00 ~ 50 年の場合は 2000 ~ 2050 年に変換されます。
Exchange Information Store の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。ただし、インターネット標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、インフォメーション ストアで正しく変換する必要があります。その場合に扱える期間は、1986 ~ 2050 年です。
Collaboration Data Objects for Windows NT (CDONTS)
CDONTS とプロトコル スタック (NNTP と SMTP) では、RFC 822 メッセージを使用できます。このメッセージでは、日付ヘッダー情報内の西暦が下 2 桁で表されます。CDONTS に公開されるすべての日付プロパティは読み取り専用で、FILETIME 構造体に基づいています。
送信メッセージは、OS のシステム クロックに基づいて、現在のシステム時間でタイム スタンプが記録されます。ヘッダーに使用される西暦は 4 桁であり、2000 年問題に対応しています。ただし、RFC 822 メッセージ ヘッダーでは、西暦の下 2 桁しか使用されません。
CDONTS の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。ただし、インターネット標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、CDONTS で正しく変換する必要があります。その場合に扱える期間は、1900 ~ 2038 年です。
Collaboration Data Objects (CDO) と MAPI
CDO と MAPI では、64 ビットの FILETIME が使用されます。CDO または MAPI アプリケーションが 2000 年代の日付を扱えるように設計されている場合、Exchange 内では正しく保存されます。内部的には、対応期間は 1601 ~ 60055 年です。
MAPI の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。
Outlook Web Access (OWA)
内部的には日付は 4 バイトの整数として保存され、1970 年 1 月 1 日以降、秒数でカウントされています。OWA の対応期間は、1970 年 1 月 1 日~ 2038 年 1 月 19 日です。ASP と CDO のやり取りでは、4 桁の西暦が使用されます。
OWA のユーザー インターフェイスでは、下 2 桁の西暦が受け付けられます。下 2 桁の西暦が入力された場合、OWA では JavaScript ルーチンを使用して、下 2 桁の西暦を 4 桁に正規化して内部的に保存します。
西暦を正規化するためのアルゴリズムでは、西暦の下 2 桁として 70 ~ 99 年が入力された場合は 1970 ~ 1999 年、00 ~ 38 年が入力された場合は 2000 ~ 2038 年に変換されます。OWA では、これ以外の数値 (39 ~ 69) がユーザー インターフェイスを介して入力された場合、エラーになります。その場合、ユーザーにメッセージが表示され、日付フィールドには最後に認識された 4 桁の西暦が適用されます。
OWA の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。ただし、インターネット標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、 OWA で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Exchange Message Transfer Agent (MTA)
Exchange MTA は、X.400 標準の MTA です。X.400 自体は、2000 年問題に対応していません。ISO/CCITT で定義された ASN.1 の UTCTime では、日付の西暦部分を下 2 桁で表します。たとえば、UTC 形式の 980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
ほかのシステムから ASN.1 日付を受け取った場合、MTA はその日付を UTC 形式から変換して、西暦の上 2 桁を判定します。西暦の下 2 桁が 50 ~ 99 年の場合は 1950 ~ 1999 年、00 ~ 49 年の場合は 2000 ~ 2049 年に変換されます。
MTA の日付と時刻の構造体
ASN.1 文字列 (X.400 標準用の形式)
/* UTC FORMAT TIME : YYMMDDHHmmZ */
/* OR YYMMDDHHmmssZ */
/* OR YYMMDDHHmmXhhmm WHERE X IS "-" OR "+" */
/* OR YYMMDDHHmmssXhhmm WHERE X IS "-" OR "+" */
UTC_TIME 文字列 (下 2 桁の西暦)
980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
この構造体の対応期間は、00 ~ 99 年です。ただし、X.400 標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、MTA で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Exchange Directory (DSA)
Exchange Directory Service は X.500 業界標準を使用し、UTC 形式で日付を保存します。UTC 形式では、日付の西暦部分を下 2 桁で表します。たとえば、980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
内部的には日付は 4 バイトの整数として保存され、1970 年 1 月 1 日以降、秒数でカウントされています。DSA の対応期間は、1970 年 1 月 1 日~ 2038 年 1 月 19 日です。日付をほかのシステムやコンポーネントから受け取った場合は、Exchange Directory はその日付を UTC 形式から変換して、西暦の上 2 桁を判定します。西暦の下 2 桁が 50 ~ 99 年の場合は 1950 ~ 1999 年、00 ~ 49 年の場合は 2000 ~ 2049 年に変換されます。
MAPI の日付と時刻の構造体
UTC_TIME 文字列 (下 2 桁の西暦)
980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
/* UTC FORMAT TIME : YYMMDDHHmmZ */
/* OR YYMMDDHHmmssZ */
/* OR YYMMDDHHmmXhhmm WHERE X IS "-" OR "+" */
/* OR YYMMDDHHmmssXhhmm WHERE X IS "-" OR "+" */
この構造体の対応期間は、00 ~ 99 年です。 ただし、X.500 標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、DSA で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Exchange 管理ツール
Exchange 管理ツールでは、X.400 と X.500 コンポーネントの管理を行う必要があります。その場合、ASN.1 標準と UTC 標準をサポートしていることが必要です。この 2 つの標準では、西暦が下 2 桁で保存されます。たとえば、ASN.1 と UTC 形式の 980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。管理ツールがこれらの日付を使用する場合は、必要に応じて 4 桁の西暦に変換します。下 2 桁が 50 ~ 99 年の場合は 1950 ~ 1999 年、00 ~ 49 年の場合は 2000 ~ 2049 年に変換されます。
管理ツールの日付と時刻の構造体
ASN.1 文字列 (X.400 標準用の形式)
/* UTC FORMAT TIME : YYMMDDHHmmZ */
/* OR YYMMDDHHmmssZ */
/* OR YYMMDDHHmmXhhmm WHERE X IS "-" OR "+" */
/* OR YYMMDDHHmmssXhhmm WHERE X IS "-" OR "+" */
UTC_TIME 文字列 (下 2 桁の西暦)
980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
この構造体の対応期間は、00 ~ 99 年です。ただし、インターネット標準と X.400 標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、管理ツールで正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Exchange Key Management Server (KMS)
Key Management Server では、明示的に 4 桁の西暦で日付が保存されます。形式としては、UTC_TIME 文字列が使用されます。ただし、これが使用されるのは、証明書が発行された場合の記録を取るためだけです。証明書は内部的には時間と分で記録されるので、日付の一部として西暦は使用されません。このため、KMS に関しては 2000 年問題を考慮する必要はありません。
Microsoft Exchange Internet Mail Service (IMS)
IMS では、内部的に FILETIME 構造体として日付が保存されます。これは 64 ビットの値で、1601 年 1 月 1 日以降、100 ナノ秒単位の数を示します。
IMS に渡される RFC 822 形式のメッセージは、IMAIL とインフォメーション ストアによって処理されます。RFC 822 形式のメッセージでは、下 2 桁の西暦で日付が保存されます。詳細については、Microsoft Exchange Information Store を参照してください。IMS がコネクタとしてセットアップされている場合は、GWART から情報を読み取ります。詳細については、MTA を参照してください。
IMS の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。 ただし、インターネット標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、IMS で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Mail Connector Interchange (MSMI)
MSMI を介して Exchange に渡される P1 エンベロープの日付は、OM_S_UTC_TIME_STRING 構文で XOM オブジェクトにマップされます。この構文は、MTA で使用される ASN.1 UTC 時間の構文を文字列で表したものです。UTC 時間では、西暦は下 2 桁で表されます。このため、Exchange に渡される際に西暦の上 2 桁は省略され、MTA が日付を 4 桁の西暦に変換します。詳細については、MTA を参照してください。P1 エンベロープ内にある Exchange からの日付は、無視されて削除されます。
メッセージの日付は、Exchange に渡される場合は MAPI の PT_SYSTIME の MAPI PT SYSTIME プロパティにマップされ、Exchange から渡される場合は MAPI PT SYSTIME プロパティからマップされます。詳細については、MAPI を参照してください。PT_SYSTIME は、西暦を明示的に 4 桁にエンコードします。MS Mail に渡され、MS Mail ゲートウェイを介してほかのシステムに渡される日付は、 MS Mail FIPS の日付と時刻の形式にマップされます。MS Mail から渡した日付は、MS Mail FIPS の日付と時刻の形式からマップされます。これは、明示的な 4 桁の形式の西暦です。
MSMI の日付と時刻の構造体
ASN.1 文字列 (X.400 標準用の形式)
/* UTC FORMAT TIME : YYMMDDHHmmZ */
/* OR YYMMDDHHmmssZ */
/* OR YYMMDDHHmmXhhmm WHERE X IS "-" OR "+" */
/* OR YYMMDDHHmmssXhhmm WHERE X IS "-" OR "+" */
UTC_TIME 文字列 (下 2 桁の西暦)
980128131030Z は、1998 年 1 月 28 日 1:10:30pm (GMT) を示します。
この構造体の対応期間は、00 ~ 99 年です。ただし、X.400 標準では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、MSMI で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。
Microsoft Exchange Connector for Lotus cc:Mail (CCMC)
メッセージの日付は、Exchange に渡される場合は MAPI の PT_SYSTIME の MAPI PT SYSTIME プロパティにマップされ、Exchange から渡される場合は MAPI PT SYSTIME プロパティからマップされます。PT_SYSTIME は、西暦を明示的に 4 桁にエンコードします。詳細については、MAPI を参照してください。
cc:Mail でやり取りされる日付には、cc:Mail の IMPORT/EXPORT 形式が使用されます。この形式では、西暦の下 2 桁が使用されます。現在、CCMC では西暦の下 2 桁に対する上 2 桁は 19 と認識されます。しかし、これは正しくありません。マイクロソフトの行ったテストでは、cc:Mail と Exchange との日付のやり取りは正しく行われました。
CCMC の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。ただし、cc:Mail では下 2 桁の西暦しか使用できません。このため、2000 年代を扱えるように、CCMC で正しく変換する必要があります。その場合に扱える期間は、1970 ~ 2038 年です。
Microsoft Exchange Migration
メッセージの日付は、Exchange に渡される場合は MAPI の PT_SYSTIME の MAPI PT SYSTIME プロパティにマップされます。PT_SYSTIME は、西暦を明示的に 4 桁にエンコードします。詳細については、MAPI を参照してください。ほかのメール システムは、その大半が下 2 桁の西暦を使用しています。Migration は、各メール システムに合わせて特定の規則を適用し、西暦を下 2 桁から変換します。次は、システムとそれに使用する規則です。
システム: 規則:
cc:Mail DB6: cc:Mai から受け取った年に 1900 を加算します。たとえば、受け取った年が 110 の場合は、西暦 2010 年に変換されます。
GroupWise: GroupWise からは西暦が 4 桁で渡されます。たとえば、2010 はそのまま Migration に渡されます。
MSMail: MSMail からは西暦が 4 桁で渡されます。たとえば、2010 はそのまま Migration に渡されます。
Migrations の日付と時刻の構造体
Filetime 構造体 (1601 年 1 月 1 日以降、100 ナノ秒単位の数を示す 2 つの DWORD)
|
Qword |
基本単位 |
1.84467E+19 |
秒 |
1844674407371.0 |
分 |
30744573456.2 |
時 |
512409557.6 |
日 |
21350398.2 |
年 |
58454.2 |
上限 |
60055 |
この構造体の対応期間は、1601 ~ 60055 年です。
下 2 桁の西暦
サポートされています。
保存と計算で、下 2 桁の西暦を 4 桁の西暦に変換するロジック
UTC、ASN.1、X.400、X.500 の各標準を使用している Exchange のコンポーネントには、西暦を下 2 桁で保存するものがあります。その場合、50 ~ 99 年は 1950 ~ 1999 年、00 ~ 49 年は 2000 ~ 2049 年として変換されます。
日付に関する注意事項
マイクロソフトでは、Microsoft Exchange Server でインターネット標準を使用していきます。また、今後もほかのベンダのメッセージ システムと接続できるようにしていきます。そのためには、Microsoft Exchange Server がマイクロソフト製品ではないシステムとやり取りする下 2 桁の西暦を変換できることが必要です。マイクロソフトでは、マイクロソフト環境内での日付の処理と、マイクロソフト環境外に渡す日付に対しては、テストを終了しています。ただし、マイクロソフト環境外で日付を受け取る場合については、2000 年問題対応に関して保証するものではありません。
ガイドラインと推奨事項
Exchange トポロジの一部をシミュレートするテスト環境を構築します。そして、すべてのサーバーのシステム日付を 1999 年 12 月 31 日に変更し、メッセージの送信を開始します。日付が 2000 年 1 月 1 日に変わるのを待ちます。Exchange 環境用に設計されたアプリケーションを実行します。これは、ワークフローやコラボレーション アプリケーションなど、企業が業務を行うために使用するどのアプリケーションでもかまいません。1999 年 12 月 31 日~ 2009 年 12 月 31 日までの日付で、条件を変えてテストを行います。
|