日付の処理
Connection Manager
Connection Manger が日付データとやり取りするのは、カウンタ操作を行う場合だけです。これは 1970 年以降の秒数でカウントされます。Connection Manager では、ユーザーが日付の入力、保存、操作を行うことはできません。
Connection Manager Administration Kit
- Connection Manager Administration Kit では、日付データは使用されません。
Connection Point Services
Connection Point Services では、次のように日付データが処理されます。
- PBA ツールでは、電話帳に変化があった場合に日付スタンプが記録され、ログ ファイルに記録されます。
- ログからの最新のエントリは、システム定義の形式 (特に指定しない限り、yy-mm-dd) で表示されます。
- 電話帳をポストする場合、電話帳サーバーは "アクティブ" な電話帳と更新された newpbk.mdb を比較します。newpbk.mdb の方が新しい場合は、電話帳サーバーが更新されます。
Internet Authentication Service (IAS) と IAS Commercial Edition
IAS が日付データをやり取りするのは、次の 3 つの場合です。
- RADIUS 属性は、日付と時刻に基づいています。属性のデータ型は RFC で 32 ビットに指定されており、2000 年問題は認識されていません。
- アカウント ログ ファイル名は、yyyymmdd 形式です。IAS ではオペレーティング システムから日付が取得され、4 桁の西暦が使用されます。
- アカウント レコードでは、日付が mm/dd/yyyy 形式で記録されます。IAS ではオペレーティング システムから日付が取得され、4 桁の西暦が使用されます。
Internet Mail、News、および Chat
CDONTS
CDONTS とプロトコル スタック (NNTP と SMTP) では、RFC 822 メッセージを使用できます。このメッセージでは、日付ヘッダー情報内の西暦が下 2 桁で表されます。CDONTS に公開されるすべての日付プロパティは読み取り専用で、FILETIME 構造体に基づいています。
発信メッセージには、オペレーティング システムのクロックに基づいて、日付と時刻が記録されます。ヘッダーに使用される日付は 4 桁であり、2000 年問題は認識されていません。ただし、RFC 822 メッセージのヘッダーでは、西暦の下 2 桁しか使用されません。
Chat Server
Chat Server では、リアルタイムのコラボレーションのクロックに基づいて、時刻が計算されます。このクロックでは、西暦までは使用されません。日付が保存されると、Chat Server は 長整数を使用して、4 桁で西暦を保存します。
IMC
IMC では、内部的に FILETIME 構造体として日付が保存されます。これは 64 ビットの値で、1601 年 1 月 1 日以降、100 ナノ秒単位の数を示します。
IMC で受信される RFC 822 形式のメッセージは、IMAIL とファイル システム (NTFS) で処理されます。RFC 822 メッセージでは、日付の形式は下 2 桁の西暦で保存されます。
Site Server 3.0, Commerce Edition
- Content Replication では、日付と時刻は 8 バイトの正の数値 (DWORD) として保存されます。この値は、1900 年 1 月 1 日~ 2078 年 12 月 31 日の日付を表します。
- Personalization and Membership では、日付と時刻は 8 バイトのフィールドとして保存されます。最初の 4 バイトは基本日付である 1900 年 1 月 1 日までの日数またはそれ以降の日数、残りの 4 バイトは午前 0 時 0 分 0 秒以降のミリ秒数を表します。1753 年 1 月 1 日~ 9999 年 12 月 31 日までを扱うことができます。
- Commerce Server では、Windows、OLE API、および SQL/ADO API を使用して、入力された日付が正しい表示/保存形式に変換されます。すべての日付は、4 桁の西暦に変換されます。
- Site Server 3.0, Commerce Edition の製品ガイドを参照してください。
- SQL 6.5 – SQL 6.5 の製品ガイドを参照してください。
下 2 桁の西暦の処理
Connection Point Services
- Connection Point Services では、ログ ファイルで日付は処理されません。このプログラムでは、日付の保存、取得、表示が行われます。日付の保存と表示は、システムの設定に基づいて、下 2 桁の形式 (YY) または 4 桁の形式 (YYYY) で行われます。4 桁の表示 (YYYY) がシステムに設定された場合でも、下 2 桁で記録された西暦は下 2 桁で表示されます。2029 年以降は、Connection Point Services では 4 桁の西暦が使用されます。
Internet Authentication Service (IAS) と IAS Commercial Edition
Internet Authentication Service では、下 2 桁の西暦は使用されません。
Site Server 3.0, Commerce Edition
- Microsoft 管理コンソールでは、日付はドロップダウン ボックスから入力できます。このボックスでは、西暦が 4 桁で表示されます。
- Web 管理では、下 2 桁で西暦の入力を試みると、メッセージが表示されます。
- ルール ビルダでは、ルールの編集には下 2 桁の西暦を使用できます。下 2 桁の西暦を使用できるのは、システムの短い形式の日付が "yy" と設定されている場合です。
- ルール ビルダでは、OLE の日付と時刻オブジェクトなどの各種の外部オブジェクトと、オペレーティング システムまたは Internet Explorer 4 から取得したコンポーネントを使用して、通信が行われます。
- Membership ディレクトリ マネージャでは、下 2 桁の西暦を使用できます。
- Membership ディレクトリ マネージャのロジックは、Internet Explorer 4.0 と同じです。
- 日付を入力できるのは、Web ページからだけです。その場合、前述の方法に従って、入力された日付が変換されます。
- Commerce – ほとんどの変換は、 OLE オートメーション呼び出しで行われます。Site Server には、場合によっては変換を行う DataFunctions プライベート オブジェクトがあります。ただし、このオブジェクトは、OLE オートメーション呼び出しにも依存します。
- Ad System – サーバー コードでは、4 桁の西暦しか使用されません。Ad Manager のコードでは、Commerce Server 3.0 と同じ DataFunctions、および SQL ネイティブ変換ルーチン (たとえば、{ts}) が使用されます。
日付に関する注意事項
- 「Site Server 3.0, Commerce Edition」を参照してください。
- Commerce – Site Server のこのコンポーネントは、本来はソフトウェア開発キット (SDK) です。そのため、SDK 関連の製品で認識される 2000 年問題は、この製品にも起こる場合があります。フォーマット オブジェクトを使用すると、正しい日付を取得できることがサンプルで示されています。ただし、必ずしもそのオブジェクトを使用する必要はありません。
- Ad System – これは、本来のソフトウェア開発キットではありません。Ad Manager のページは変更可能です。そのため、2000 年問題を引き起こす場合があります。Ad Manager のページは変更しないでください。
ガイドラインと推奨事項
- ほとんどの Commerce サイトは、Web べースのアプリケーションです。このため、ユーザー インターフェイスとその通信を処理する HTML/ASL コードを検証する必要があります。基となる Commerce ActiveX Server オブジェクトは、すべて 2000 年問題に対応しています。ただし、ストアの作成者が作成したコードも 2000 年に対応していることを確認してください。サンプル サイトには、3 ~ 5 年以内に期限の切れるドロップダウン リストがあります。このようなリストに対しては、HTML を更新してください。
- 実作業を行っている環境では、テストを行わないでください。また、テストを行う場合は、作業ファイルのコピーを作成してください。ほかの製品との影響を予測できないからです。
Commercial Internet System のテスト
マイクロソフトでは、ユーザーの皆様がいろいろな理由で独自に 2000 年問題に関してテストを行うことを予測しています。そのため、次に Microsoft Commercial Internet System に対するテスト項目を示し、皆様の検証をお手伝いします。
- 1999 年 12 月 31 日に設定されたシステムと、2000 年 1 月 1 日に設定されたシステム間で、時間帯の問題をシミュレートし、データをポストします。
- 1999 年 12 月 31 日の午前 0 時 0 分 0 秒の直前に、複製を開始します。
- 期限終了日を 2000 年 1 月 1 日の直前と直後に設定し、Membership グループにメンバーを追加します。
- 1999 年と 2000 年にまたがる情報を持つ Content Analyst のログ ファイルをインポートします。