DIGITAL UNIX® Year 2000 Readiness |
||
© Digital Equipment Corporation 1997. All Rights Reserved. |
Revision Information |
IntroductionWith the approach of the 21st century, there is concern about the ability of computer systems to provide accurate calculation and handling of date information beyond the year 2000 (Y2K). DIGITAL is well prepared to meet this challenge and to help its customers prepare for the next century. A thorough evaluation of DIGITAL UNIX and the associated layered products has already been completed. Year 2000 enhancements and modifications have been made and will be delivered to customers in a new operating system release, DIGITAL UNIX Version 4.0D, planned for availability in December 1997. In addition to being the industry's only vendor that provides a complete and mature 64-bit computing environment, DIGITAL is adding, with DIGITAL UNIX Version 4.0D, warranted Year 2000 support and readiness. This "Year 2000 Ready" combination delivers to customers the advantage of a migration-proof product set well into the 21st century. This document contains information about the DIGITAL UNIX Year 2000 program and provides information that helps customers to prepare for the year 2000. The document highlights Y2K enhancements and modifications, includes important Y2K information on previous versions and layered products, and describes testing methodologies and guidelines. |
Background InformationIn the past, it has been a common practice to represent dates in computer systems with only two digits for the year (for example, 96 instead of 1996). This practice was widespread from the 1960s to the 1980s to save space when the cost of disks and memory was relatively high. It was encouraged by many programming guides and some common specifications such as ANSI and DoD.The use of only two digits to represent the year in dates causes the century to be ambiguous. Many programs assume the century to be the current 20th century. They interpret any 2-digit year to be in the range of 1900-1999, and they treat yy (a 2-digit year) as 19yy. These kinds of programs can cause trouble as dates are projected beyond December 31, 1999, and when the current date reaches the year 2000 and beyond. For example, adding four years to 1997 in such a program would yield an erroneous date of 1901 instead of 2001. Year 2000 problems can also occur where century information is available but lost by improper use of system date services during format conversions such as converting from binary to ASCII. The following example illustrates the kinds of problems that are starting to occur now in some programs as the year 2000 approaches:
A company purchases new stock for its warehouse of a product manufactured in 1996 that has a 5-year shelf life. When the information is entered into the company's computer, the system determines that the product is 95 years out of date and promptly issues instructions to dispose of the new stock. This problem is caused by the application's use of 2-digit year data and an incorrect assumption about the century. |
DIGITAL UNIX Year 2000 ReadinessDIGITAL UNIX provides a robust date/time environment, and only minor changes were required for Year 2000 readiness. The system stores and tracks the current system time as the number of elapsed seconds since the standard UNIX Epoch date of 00:00:00 January 1, 1970 UTC. Application Programming Interfaces (APIs), such as thetimeval struct and time_t data type, are used to retrieve system time into standard date/time-related data structures. Because the system stores time as an integral value, it is unaffected by a rollover of the century (see Time Handling on DIGITAL UNIX).
|
DIGITAL UNIX Version 4.0DDIGITAL UNIX Version 4.0D is scheduled to deliver a Year 2000-ready environment during 1997, providing ample time for DIGITAL customers to prepare for the turn of the century. Most customers are planning to upgrade to Y2K systems and to complete the evaluation of their environments during 1998 in order to allow time in 1999 to make any necessary changes prior to the year 2000.DIGITAL UNIX Version 4.0D, including all system components and packaged layered products (see list in DIGITAL Layered Products), has gone through an extensive evaluation to ensure that dates are handled and represented properly for the year 2000 and beyond. Changes were made to ensure that Y2K support is consistent and robust throughout the system. All date APIs support 4-digit year input and output. Two-digit year support continues to be provided in order to be compatible with older applications. Two-digit year assumptions are consistent with The Open Group UNIX98 brand for Year 2000 date handling. The DIGITAL UNIX user documentation describes all Y2K enhancements.
The Year 2000 enhanced Each DIGITAL UNIX release is tested with an extensive suite of functional, standards, and regression tests. Starting with Version 4.0D, Year 2000 regression tests, along with tests that run the full suite in a simulated Y2K system environment, have been added. DIGITAL UNIX Version 4.0D is warranted to be Year 2000 ready. You can obtain the specific Year 2000 warranty from your DIGITAL sales representative. |
DIGITAL UNIX Versions 4.0B and 4.0C
In Versions 4.0B and 4.0C, the
This Y2K enhancement applies only to the You should plan to upgrade to Version 4.0D or a later release in sufficient time to test your environment and to make necessary changes prior to the start of the year 2000. |
DIGITAL UNIX Version 4.0A and EarlierThedate command Year 2000 enhancement is available as a patch for DIGITAL UNIX Versions 2.0, 3.0, 3.2A/B/C/D/E/F/G, 4.0, and 4.0A. This patch is available from the standard patch distribution for service customers.
This Y2K enhancement applies only to the You should plan to upgrade to Version 4.0D or a later release in sufficient time to test your environment and to make necessary changes prior to the start of the year 2000. |
DIGITAL Layered ProductsThis section provides information about products that are packaged with DIGITAL UNIX and products sold in other ways.Products Packaged with DIGITAL UNIXThe following layered products are packaged with the DIGITAL UNIX Media Kit and are available with DIGITAL UNIX Version 4.0D. Each product has completed the same Year 2000 evaluation as the DIGITAL UNIX operating system and includes any necessary modifications or enhancements. The specific versions of the products listed are warranted as Year 2000 ready.
Other Layered Products from DIGITALThe DIGITAL Year 2000 Program Office maintains a list of all DIGITAL layered software products and their Y2K status. This list is available on the Web at the following location:
http://www.software.digital.com/year2000/status.html |
Methodologies and Guidelines for Testing ApplicationsThe following strategies and recommendations are based on the procedures that DIGITAL used to investigate and test DIGITAL UNIX for Y2K issues. By sharing this information, DIGITAL hopes to provide some basic guidelines and a starting point for customers beginning their own Y2K efforts.
Strategies for Tackling the Year 2000 Problem
Time Handling on DIGITAL UNIXDIGITAL UNIX uses standard date/time data structures and APIs to store, track, calculate, interpret, convert, and represent time. Application developers must have a proper understanding of these interfaces in order to use them correctly and to avoid potential Y2K problems in their code. A list of common DIGITAL UNIX date/time data structures and APIs, and explanations of how time is used in DIGITAL UNIX, follows.Common time-related data structures that DIGITAL UNIX uses
Routines that retrieve the time of day from the kernel
Routines that set the time of day in the kernel
Routines that convert time to ASCII representations
Routines that convert time from ASCII representations to binary
Routines that convert between time data types
The
Displays the time and date based on default or user-specified formats. Also used to set the system time and date.
|
Testing GuidelinesDIGITAL UNIX allows the clocks of its systems to be set to times in the future so that customers can test their software for potential Year 2000 issues. Enhancements have been made to the DIGITAL UNIXdate command to support setting the system date past the year 1999. These enhancement are included in DIGITAL UNIX Version 4.0B and later releases. Customers running previous versions of DIGITAL UNIX (or DEC OSF/1) as far back as Version 2.0 can also obtain the enhanced date command for their systems by contacting their local DIGITAL representative or customer support center.
It is important follow the guidelines outlined in this section carefully to avoid unexpected problems and ensure that your tests run smoothly.
To ensure data integrity during these test sessions, use the following precautions. These precautions are similar to those associated with other common maintenance operations, such as system upgrades.
DIGITAL recommends the following procedure for setting the date forward:
Moving the System Date ForwardYou can use the enhanceddate command to set the system date forward. It is important that you set the system date in single-user mode only. Changing the date in multiuser mode could cause the creation and modification dates for user files to be inconsistent. When moving the system date to times in the future, the system disk must be updated with the new year information. After moving the date forward in single-user mode, enter the following command:
This will write the new year into the superblock on the system disk and cause the root file system to be mounted read/write. See the Once the time has been set forward properly, you can perform tests. Refer to Recommended Test Dates and Examples of Year 2000 Problems and Solutions for tips on testing strategies.
Special Procedures for Expiring PAKsCustomers running DIGITAL UNIX Version 4.0D or later who have expiring software license PAKs must observe the following guidelines once they have installed the 00Y2K-TESTING PAK for testing:
Restoring the System to its Original StateWhen testing is complete, the system can be restored to the present date:
Recommended Test DatesThe following are some recommended dates for use in Y2K testing:
During the testing, it might be useful to set the system date to some fixed time before the intended testing date in order to observe behavior while the transition is taking place. An appropriate buffer such as this might also provide necessary time to move an application into a desired state before the relevant time transition takes place. Keep in mind that these are only recommendations and that more thorough testing might be required to test certain applications sufficiently. |
Common Ways to Address Year 2000 IssuesAlways use the full four digits to represent the year where possible. If you must use a 2-digit year (for compatibility reasons, for example), implement an appropriate algorithm for interpreting the two digits to determine the intended century. DIGITAL UNIX uses the following standard algorithm for handling 2-digit years:
This algorithm is consistent with the current UNIX98 specification from The Open Group. It is based on the fact that time on UNIX systems is stored as a number of seconds since the standard UNIX Epoch (00:00:00 January 01, 1970 UTC) and provides a one-year variance to account for local times in different time zones. For example, at 00:00:00 January 01, 1970 UTC, the local time in Eastern Standard Time (EST) was 19:00:00 December 31, 1969 EST. Note that many system interfaces on DIGITAL UNIX use the standard data type,
Consistently use standard system APIs for handling date/time data calculations. You can use routines such as
The
Consistent use of 4-digit years employing a simple calculation such as |
Examples of Year 2000 Problems and SolutionsThe following examples are by no means a complete list of Year 2000-related issues developers might expect to find in their code. Applications can use an endless variety of ways to input, process, calculate, and output time and date information, resulting in many different kinds of Y2K problems. These examples simply provide an introduction to the kinds of problems developers should be looking for.
|
Year 2000 Updates in DIGITAL UNIX Version 4.0DDIGITAL UNIX Version 4.0D addresses the following Y2K issues:
|
Year 2000 Features Added in DIGITAL UNIX Version 4.0DThe following Y2K features have been added to DIGITAL UNIX Version 4.0D:
|
General Time-Related Updates in DIGITAL UNIX Version 4.0DThe following changes are not Y2K specific but are related to time handling on DIGITAL UNIX and might be of interest to those working on Y2K issues.
|
Related Web Pages
|
Related Issues
|
Revision Information
|