[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ilbbak::ibi_focus

Title:FOCUS, from INFORMATION BUILDERS
Moderator:ZAYIUS::BROUILLETTE
Created:Thu Feb 19 1987
Last Modified:Mon May 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:615
Total number of notes:1779

538.0. "CVTSTIME and Version 6.2.0" by PICT::MRAMSAY (Automation Engineer : HLO2-1/C7) Mon Nov 16 1992 16:46

    I have a fex that runs against 3rd party data file.  This procedure
    has worked in a different location.  The cut down version imply does a
    CVSTIME against the four time fields in the data file and generates the
    following results on the original cluster:

   DTIME1                ETIME1                STIME1                WTIME1
   ------                ------                ------                ------
 16-NOV-1992 12:51:00     0 00:00:00.231:00  17-NOV-1858 00:00:00     000:00:07.490:00
 16-NOV-1992 12:51:32     0 00:00:01.181:32  17-NOV-1858 00:00:00     000:00:08.630:00
 16-NOV-1992 12:51:41     0 00:00:05.531:41  17-NOV-1858 00:00:00     000:00:03.380:00
 16-NOV-1992 12:51:47     0 00:00:00.861:47  17-NOV-1858 00:00:00     000:00:04.630:00
 16-NOV-1992 12:51:53     0 00:00:00.991:53  17-NOV-1858 00:00:00     000:00:21.570:00


    <.. etc ..>

    Now the same fex & .clg run on our new cluster:


 DTIME1                ETIME1                STIME1                WTIME1
 ------                ------                ------                ------
 16-NOV-1992 12:51:00    -   -:010 0.231:00  17-NOV-1858 00:00:00    -   -:010 7
 16-NOV-1992 12:51:32    -   -:010 1.181:32  17-NOV-1858 00:00:00    -   -:010 8
 16-NOV-1992 12:51:41    -   -:010 5.531:41  17-NOV-1858 00:00:00    -   -:010 3
 16-NOV-1992 12:51:47    -   -:010 0.861:47  17-NOV-1858 00:00:00    -   -:010 4
 16-NOV-1992 12:51:53    -   -:010 0.991:53  17-NOV-1858 00:00:00    -   -:010 1
 


    Notice the subtle difference ??  The ETime,STime,WTime figures are
    really screwed up.  Same data, same fex !!


    Oh, BTW on the new cluster:
    FOCUS 6.2.0    (C)Copyright 1992 Information Builders Inc.

    On the old cluster:
    FOCUS 6.1.0    (C)Copyright 1990 Information Builders Inc.
    

    
    As the data file is thrid party I have no control over the date time 
    fileds that do not contain the "date" part.

    Suggestions, gratefully received....


Mark R.

ps.  #.1 contains the relevant .fex & .mas.
T.RTitleUserPersonal
Name
DateLines
538.1CodePICT::MRAMSAYAutomation Engineer : HLO2-1/C7Mon Nov 16 1992 16:50185
SET HOLDDEFAULT = ALPHA
SET ASNAMES = ON, PAUSE = ON, MORE = OFF
FILEDEF FISCWK DISK COMETS$PRODUCTION:FISCWK.REF
FILEDEF PFCFILE  DISK USER1$:[MRAMSAY.PFM]SMALL.CLG
FILEDEF PFM_PERF DISK PERFORMANCE:
-RUN

DEFINE FILE PFCFILE
-* Most fields within the DEFINE are temporary fields. Following are the
-* fields and formats they are in that will be useful
-*
-*       Field                 Format
-*
-*       DTIME1                dd-mmm-yyyy hh:mm:ss
-*       DATE_TIME             yymmddhhmmss
-*       ETIME                 Elapsed Time (in seconds)
-*       THE_DATE              Current Date (yymmdd)
-*
  DTIME1/A20 = CVTSTIME (0,COMPTIME,DTIME1);
  ETIME1/A20 = CVTSTIME (0,ELAPTIME,ETIME1);
  STIME1/A20 = CVTSTIME (0,SUBPTIME,STIME1);
  WTIME1/A20 = CVTSTIME (0,WAITTIME,WTIME1);
  DD/A2 = IF EDIT(DTIME1,'9') EQ ' '
          THEN '0'||EDIT(DTIME1,'$9')
          ELSE EDIT(DTIME1,'99');
  DMT/A3 = EDIT(DTIME1,'$$$999');
  DY/A2 = EDIT(DTIME1,'$$$$$$$$$99');
  DM/A2 = DECODE DMT ('JAN' '01'
                      'FEB' '02'
                      'MAR' '03'
                      'APR' '04'
                      'MAY' '05'
                      'JUN' '06'
                      'JUL' '07'
                      'AUG' '08'
                      'SEP' '09'
                      'OCT' '10'
                      'NOV' '11'
                      'DEC' '12');
  THE_DATE/A6 = DY | DM | DD;
  I6DATE/I6 = EDIT(THE_DATE);
  TODAYS_DATE/I6YMD = I6DATE;
  TST_DATE/YMD = TODAYS_DATE;
  TST_DATE1/W = TST_DATE;
  DAY_NUM/I1 = IF TST_DATE1 EQ 7
                    THEN 6
                      ELSE
                       6 - TST_DATE1;
  SAT_DATE/I6YMD WITH CMTUSER = AYMD (TODAYS_DATE,DAY_NUM,SAT_DATE);
  WORK_WEEK/A4 WITH CMTUSER = DECODE SAT_DATE (FISCWK ELSE '9999');

  DH/A2 = EDIT (DTIME1,'$$$$$$$$$$$$99');
  DMI/A2 = EDIT (DTIME1,'$$$$$$$$$$$$$$$99');
  DS/A2 = EDIT (DTIME1,'$$$$$$$$$$$$$$$$$$99');
  THE_TIME/A6 = DH | DMI | DS;

  ETIME2/A16 = EDIT(ETIME1,'9999999999999999');
  ETIMEH1/A2 = EDIT(ETIME2,'$$$$$99');
  ETIMEH/I2 = EDIT(ETIMEH1);
  ETIMEM1/A2 = EDIT(ETIME2,'$$$$$$$$99');
  ETIMEM/I2 = EDIT(ETIMEM1);
  ETIMES1/A5 = EDIT(ETIME2,'$$$$$$$$$$$99999');
  ETIMES/D5.2 = EDIT(ETIMES1);
  ETIME/D10.2 = IF ETIMEH1 EQ 'V-' THEN 0 ELSE
                  ((ETIMEH*3600) + (ETIMEM*60) + ETIMES);

  CTIME/D10.2 = CPU_TIME / -100;
  FUNCCNT/A4 = ACT_FUNC;

END

-*
-*  Pick out the required Fields
-*
-*  Conditional checks are :
-*
-*    Facility is SQFAB1
-*    Screen Terminator is a RETURN or SFK3 (as opposed to SFK1, SFK2.....)
-*    Transaction type is Online (as opposed to REMOTE, BATCH....)
-*    Transaction did not error on validation or any other check
-*
TABLE FILE PFCFILE
PRINT DTIME1 ETIME1 STIME1 WTIME1
IF RECORDLIMIT EQ 20
END
-RUN


**********  Master definition file ********************


FILENAME=PFCFILE,SUFFIX=FIX,$ 
$
$ This is the PFM central log file which is written out by
$ all COMETS processes which have the logical name flag
$ COMETS$ENABLE_CENTRAL_PFM_LOGGING turned on.
$
$ The COBOL layout for this file is contained in PFM800C.LIB and 
$ PFM800C1.LIB
$
$
$ This file has varying record types, which are hierarchical in nature
$
$              FILE-HEADER
$                  |
$                  |
$            TRANSACTION LOG STATISTICS
$
$
$        RECTYPE field has value "HC" for header record and
$        "LC" for log record.
$
$
$  NOTE: DATETIME, COMPTIME are in DEC standard date format
$        (8 byte string absolute time) 
$        ELAPTIME, WAITIME, SUBPTIME are in DEC standard 
$        date format (8 byte string delta time) 
$        The above fields can be converted into ASCII form
$        by FOCUS function CVTSTIME.
$
$        CPU_TIME is in DEC CPU time unit
$        (unit of hundredth of second)
$
$************************************************************************
$
$  file header record
$ 
$************************************************************************
$
SEGNAME=HEADER,$
  FIELDNAME=H_MARK,    ALIAS=H_MARK  ,USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=NODE,      ALIAS=NODE    ,USAGE=A6      ,ACTUAL=A6     ,$
  FIELDNAME=DATABASE,  ALIAS=DATABASE,USAGE=A9      ,ACTUAL=A9     ,$
  FIELDNAME=HWTYPE,    ALIAS=HWTYPE  ,USAGE=A15     ,ACTUAL=A15    ,$
  FIELDNAME=DATETIME,  ALIAS=DATETIME,USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=H_RSVED,   ALIAS=H_RSVED ,USAGE=A148    ,ACTUAL=A148   ,$
  FIELDNAME=RECTYPE,   ALIAS=HC      ,USAGE=A2      ,ACTUAL=A2     ,$
$
$************************************************************************
$
$  file trasaction log record
$
$************************************************************************
$ 
SEGNAME=PFC_LOG	,PARENT=HEADER                                     ,$
  FIELDNAME=PID,      ALIAS=PID,      USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=IMAGE,    ALIAS=IMAGE,    USAGE=A6      ,ACTUAL=A6     ,$
  FIELDNAME=L_MARK,   ALIAS=L_MARK,   USAGE=A1      ,ACTUAL=A1     ,$
  FIELDNAME=P_TYPE,   ALIAS=P_MARK,   USAGE=A1      ,ACTUAL=A1     ,$
  FIELDNAME=BELL,     ALIAS=BELL,     USAGE=A1      ,ACTUAL=A1     ,$
  FIELDNAME=RSV_FLAG, ALIAS=RSV_FLAG, USAGE=A1      ,ACTUAL=A1     ,$
  FIELDNAME=FACILITY, ALIAS=FACILITY, USAGE=A6      ,ACTUAL=A6     ,$
  FIELDNAME=ACT_FUNC, ALIAS=ACT_FUNC, USAGE=A4      ,ACTUAL=A4     ,$
  FIELDNAME=SCN_NAME, ALIAS=SCN_NAME, USAGE=A6      ,ACTUAL=A6     ,$
  FIELDNAME=SCN_ACTN, ALIAS=SCN_ACTN, USAGE=A2      ,ACTUAL=A2     ,$
  FIELDNAME=SCN_TERM, ALIAS=SCN_TERM, USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=SCN_RSVD, ALIAS=SCN_RSVD, USAGE=A2      ,ACTUAL=A2     ,$
  FIELDNAME=WAITTIME, ALIAS=WAITTIME, USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=SUBPTIME, ALIAS=SUBPTIME, USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=ELAPTIME, ALIAS=ELAPTIME, USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=CPU_TIME, ALIAS=CPU_TIME, USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=BIO,      ALIAS=BIO,      USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=DIO,      ALIAS=DIO,      USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=FAULTS,   ALIAS=FAULTS,   USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=WSSIZE,   ALIAS=WSSIZE,   USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=PPGCNT,   ALIAS=PPGCNT,   USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=COMPTIME, ALIAS=COMPTIME, USAGE=A8      ,ACTUAL=A8     ,$
  FIELDNAME=FILTER,   ALIAS=FILTER,   USAGE=A1      ,ACTUAL=A1     ,$
  FIELDNAME=CMTUSER,  ALIAS=CMTUSER,  USAGE=A12     ,ACTUAL=A12    ,$
  FIELDNAME=BYTCNT,   ALIAS=BYTCNT,   USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=PAGFLCNT, ALIAS=PAGFLCNT, USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=ENQCNT,   ALIAS=ENQCNT,   USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=ASTCNT,   ALIAS=ASTCNT,   USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=FILCNT,   ALIAS=FILCNT,   USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=TQCNT,    ALIAS=TQCNT,    USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=PRCCNT,   ALIAS=PRCCNT,   USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=VIRTPEAK, ALIAS=VIRTPEAK, USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=GPGCNT,   ALIAS=GPGCNT,   USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=HARDFALT, ALIAS=HARDFALT, USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=DBTRNCNT, ALIAS=DBTRNCNT, USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=ROWCNT,   ALIAS=ROWCNT,   USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=SQLCODE,  ALIAS=SQLCODE,  USAGE=I8      ,ACTUAL=I4     ,$
  FIELDNAME=DEADLOCK, ALIAS=DEADLOCK, USAGE=I4      ,ACTUAL=I2     ,$
  FIELDNAME=L_RSVED,  ALIAS=L_RSVED,  USAGE=A41     ,ACTUAL=A41    ,$
  FIELDNAME=RECTYPE,  ALIAS=LC,       USAGE=A2      ,ACTUAL=A2     ,$
538.2Delta time format...PICT::MRAMSAYAutomation Engineer : HLO2-1/C7Tue Nov 17 1992 13:4013
Some further information:

The fields that are being incorrectly translated under 6.2.0 are a delta-time
format, .ie. +/-DDDD HH:MM:SS.CC, not absolute format, DD-MMM-YYYY HH:MM:SS.CC.

It looks like under 6.1 CVTSTIME worked partially with delta time and now 
works even more partially !!  - the MM is trunctated to M.  I will look at
writing a user subroutine CVTDTIME to convert delta time formats correctly.

If anyone has this already, please let me know.


Mark R.