HP OpenVMS Systems

Year 2000
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

OpenVMS software

» Operating system
» OpenVMS clusters
» OpenVMS Galaxy
» e-Business products
» Opensource tools
» Networking
» System management
» Storage management
» Security products
» Application development and integration
» Software licensing
» SPD listings
» Whitepapers
» Ask the wizard
» Training
» OpenVMS books

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
HP Integrity server animation
Content starts here

Finding and Analyzing Potential Problem Areas of Code

This page lists steps for finding and analyzing potential problem areas in code.

  1. Examine the code and data flow for all time and date related APIs, system global cells, data structure fields, media formats, and message formats for possible Year 2000 problems. You may wish to search component map files to help identify date-related interfaces.

    Be sure to check all dates that are input or output. Watch for the following conditions and coding practices as well as any other time/date conditions that are unique to the code you are investigating:

    • 2-digit representations of years

    • Small binary fields that might represent dates

    • Invalid date differentials

    • Procedures that add 1900 (or another hardcoded century value) to the date or subtract 1900 from the date

    • Code that divides by 100 or 400 (to calculate leap years)

    • Code that results in incorrect sequencing of dates

    • Code that causes incorrect scheduling of system events


  2. You may need to make a more detailed analysis than is immediately apparent. Dates might be converted to an identity or format that is no longer obviously a date and then be passed on to other routines.

    For example, a 4-digit year (1997) might be exported to a process that deletes 1900 from the year and passes the result (97) to another process, which then performs another calculation, eventually causing a problem.

  3. Make sure that the format of date/time stamps outputs unambiguous date data. For example, you might need to examine the user interface to ensure that the format can accommodate a 4-digit year.

  4. After you analyze code found by searching for known date/time APIs and data structures, you must analyze the code flow to see how the date data is interpreted and check whether it is exported.

  5. If the code you are investigating has any dependencies on other code, you must find out the Year 2000 readiness status of that code before you can assume that your code is Year 2000 ready. (We used a central clearinghouse to share the status of dependent code.)

    Following is a list of questions to use when you review code:

    • Does your code import date information in any way --- for example, in APIs, system global cells, data structure fields, media formats, or message formats?
      If so, does the information contain an inherent or specific year field? If so, is the associated year field represented by two digits or four digits?

    • What does your code do with the date information?

    • If your code manipulates the year, does it use all four digits of the year?

    • Do you store a date in any data structures, either as a date string or a binary integer?

    • Are all date data structure fields large enough to contain a 4-digit year?

    • Does your code export any date information, either as a date string or a binary integer?
      If so, are all four digits of the year included?

    • Does the code do any time/date arithmetic?
      If so, are 4-digit years used?

    Back Forward


    » Return to Guidelines for Year 2000 Code Investigations home page