IBM Support

IC77749: DB2PD DURATION OUTPUT SHOWS 99 HOURS WHEN DURATION IS > 99 HRS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as fixed if next.

Error description

  • In PMR 59278,999,000, we (including customer, L2, and L3) were
    confused with db2pd -runstats reporting a duration of 99 hours
    when it was in fact longer.   The start and stop timestamps are
    actually provided as well, and after a while, it was evident
    that we could look at the details and not rely on duration DB2
    calculated as we progressed in problem determination.
    
    The duration is currently specified as a hh:mm:ss format with 2
    digts max for hours.  To stop outputting incorrect diagnostic
    data, we could relax the 2 digit max, or just print a "> 99
    hours" string instead.
    
    // Function to print duration in the format of hh:mm:ss
        @w548255mif
    void pdPrintDuration( FILE * fp, Uint32 durTime )
    {
       // Put a cap of maximum 99 hours.
       if ( durTime <= 99*60*60 )
       {
          fprintf( fp, "%02u:%02u:%02u\n",
                   (durTime / (60*60)),
                   ((durTime / 60) % 60),
                   (durTime % 60));
       }
       else
       {
          fprintf( fp, "%02d:%02u:%02u\n",
                   99,
                   ((durTime / 60) % 60),
                   (durTime % 60));
       }
    }
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All                                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * In PMR 59278,999,000, we (including customer, L2, and L3)    *
    * were                                                         *
    * confused with db2pd -runstats reporting a duration of 99     *
    * hours                                                        *
    * when it was in fact longer.  The start and stop timestamps   *
    * are                                                          *
    * actually provided as well, and after a while, it was evident *
    *                                                              *
    * that we could look at the details and not rely on duration   *
    * DB2                                                          *
    * calculated as we progressed in problem determination.        *
    *                                                              *
    *                                                              *
    *                                                              *
    * The duration is currently specified as a hh:mm:ss format     *
    * with 2                                                       *
    * digts max for hours.  To stop outputting incorrect           *
    * diagnostic                                                   *
    * data, we could relax the 2 digit max, or just print a "> 99  *
    *                                                              *
    * hours" string instead.                                       *
    *                                                              *
    *                                                              *
    *                                                              *
    * // Function to print duration in the format of hh:mm:ss      *
    *                                                              *
    *     @w548255mif                                              *
    *                                                              *
    * void pdPrintDuration( FILE * fp, Uint32 durTime )            *
    *                                                              *
    * {                                                            *
    *                                                              *
    *   // Put a cap of maximum 99 hours.                          *
    *                                                              *
    *   if ( durTime <= 99*60*60 )                                 *
    *                                                              *
    *   {                                                          *
    *                                                              *
    *       fprintf( fp, "%02u:%02u:%02u\n",                       *
    *                                                              *
    *               (durTime / (60*60)),                           *
    *                                                              *
    *               ((durTime / 60) % 60),                         *
    *                                                              *
    *               (durTime % 60));                               *
    *                                                              *
    *   }                                                          *
    *                                                              *
    *   else                                                       *
    *                                                              *
    *   {                                                          *
    *                                                              *
    *       fprintf( fp, "%02d:%02u:%02u\n",                       *
    *                                                              *
    *               99,                                            *
    *                                                              *
    *               ((durTime / 60) % 60),                         *
    *                                                              *
    *               (durTime % 60));                               *
    *                                                              *
    *   }                                                          *
    *                                                              *
    * }                                                            *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to next fixpack                                      *
    ****************************************************************
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IC77749

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    970

  • Status

    CLOSED FIN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-07-26

  • Closed date

    2011-12-12

  • Last modified date

    2011-12-12

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

  • R970 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEPGG","label":"DB2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.7","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
12 December 2011