Is there a way to identify changes made to the database by specific users using Journal Analyzer?
Release: All supported releases.
Component: Journal Analyzer.
IDMS Journal Analyzer CHRONOLOGICAL EVENT REPORT Analyze associates the run unit ID with the user ID. The run unit ID can be used in the DISPLAY reports to identify the changes.
To identify changes made to a database and the users who made those changes execute Journal Analyzer (USJMAIN) to generate the CHRONOLOGICAL EVENT Report which outlines all recorded activity in a time wise sequence.
Here is an example of this report:
*******************************************************************************
* *
* * * * * * * * * * * *
* * * *
* * * *
* * * *
* * CA-IDMS DATABASE TOOLS * *
* * * *
* * * *
* * * *
* * CA-IDMS/JOURNAL ANALYZER OPTION * *
* * * *
* * CHRONOLOGICAL EVENT REPORT * *
* * * *
* * 16.0 * *
* * * *
* * 01/26/09 14:35 * *
* * * *
* * * *
* * COPYRIGHT (C) 2003 ALL RIGHTS RESERVED * *
* * CA-DATABASE TOOLS CA-DATABASE TOOLS * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
*******************************************************************************
RELEASE CA-IDMS/JOURNAL ANALYZER DATE TIME PAGE
16.0 CHRONOLOGICAL EVENT REPORT 1/26/09 15:04:18 2
---------EVENT---- ---IDENT------QUIESCE LVL/USER/EXT ID---PAGES---- ----LOCKS-------
TIME TYPE DURATION RUN UNIT PROGRAM READ WRITTEN REQUESTED REQUESTED SELECT UPDATE
01/26/09
14:00 START************************************* *****************************************END 14:29
14:24:23 BGIN 122484 USDMAIN0 ONL X
#######
SHR UPD EMP-DEMO-REGION LOW= 75,001 HIGH= 75,050
SHR UPD INS-DEMO-REGION LOW= 75,101 HIGH= 75,125
SHR UPD ORG-DEMO-REGION LOW= 75,151 HIGH= 75,175
14:24:30 ENDJ 7.45 122484 USDMAIN0 ONL 0 1 1 2 5 1 4
14:24:31 BGIN 122486 USDPROF0 ONL X
#######
SHR UPD USD-DATA-AREA LOW= 360,000 HIGH= 360,599
14:24:31 ENDJ 0.02 122486 USDPROF0 ONL 0 0 3 68 94 5 59
The CHRONOLOGICAL EVENT Report associates the user ID to the run unit id and program that updated the database. In this example, user ID ####### used program USDMAIN0 (DMLO) to update the database with run unit id 122484.
To identify the record id and changes made to this record use the run unit id from the CHRONOLOGICAL EVENT REPORT to cross reference the one of three DISPLAY reports, DISPLAY RECORD, DISPLAY PROGRAM and DISPLAY DBKEY.
Here's an example of the DISPLAY RECORD report:
*******************************************************************************
* *
* * * * * * * * * * * *
* * * *
* * * *
* * * *
* * CA-IDMS DATABASE TOOLS * *
* * * *
* * * *
* * CA-IDMS/JOURNAL ANALYZER OPTION * *
* * * *
* * RECORD DISPLAY * *
* * * *
* * 16.0 * *
* * * *
* * 01/26/09 14:35 * *
* * * *
* * * *
* * * *
* * COPYRIGHT (C) 2003 ALL RIGHTS RESERVED * *
* * CA-DATABASE TOOLS CA-DATABASE TOOLS * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
*******************************************************************************
RELEASE CA-IDMS/JOURNAL ANALYZER DATE TIME PAGE
16.0 RECORD DISPLAY 1/27/09 10:27:42 2
SR0410 DEPARTMENT
0** 01/26/09 RU = 122,484 PREFIX LEN = 16 USDMAIN0 75,156:0001
14:24:23 BFOR DATA LEN = 56 MODIFY RECORD SEQ # = 3,775,074
0 PREFIX 1 75,156:0002 2 75,156:0000 3 75,009:0001 4 75,030:0001
0 DATA CHGS
CHAR 5300 0321
ZONE FFFF444444444444444444444444444444444444444444444FFFF000
NUMR 53000000000000000000000000000000000000000000000000321000
1...5...10...15...20...25...30...35...40...45...50...55.
0** 01/26/09 RU = 122,484 PREFIX LEN = 16 USDMAIN0 75,156:0001
14:24:23 AFTR DATA LEN = 56 MODIFY RECORD SEQ # = 3,775,075
0 PREFIX 1 75,156:0002 2 75,156:0000 3 75,009:0001 4 75,030:0001
0 DATA CHGS * *** *
CHAR 5300R AND D 0321
ZONE FFFFD4CDC4C44444444444444444444444444444444444444FFFF000
NUMR 53009015404000000000000000000000000000000000000000321000
1...5...10...15...20...25...30...35...40...45...50...55.
This reports shows run unit 122484 resulted in a change to record ID 410, the DEPARTMENT record. It uses an asterisk above the characters that were changed by the run unit ID and user ID. The asterisks above identify the change as R AND D.
To make the changes easier to identify the DISPLAY report could be executed with FORMAT=SPARSE which leaves only the changes that were made on the line.
Example:
1ID RELEASE CA-IDMS/JOURNAL ANALYZER DATE TIME PAGE
16.0 RECORD DISPLAY 1/26/09 15:04:19 2
SR0410 DEPARTMENT
0** 01/26/09 RU = 122,484 PREFIX LEN = 16 USDMAIN0 75,156:0001
14:24:23 BFOR DATA LEN = 56 MODIFY RECORD SEQ # = 3,775,074
0 PREFIX CHANGES 1 75,156:0002 2 75,156:0000 3 75,009:0001 4 75,030:0001
0 DATA CHAR 5300 0321
ZONE FFFF444444444444444444444444444444444444444444444FFFF000
NUMR 53000000000000000000000000000000000000000000000000321000
1...5...10...15...20...25...30...35...40...45...50...55.
0** 01/26/09 RU = 122,484 PREFIX LEN = 16 USDMAIN0 75,156:0001
14:24:23 AFTR DATA LEN = 56 MODIFY RECORD SEQ # = 3,775,075
0 PREFIX CHANGES *** NONE ***
0 DATA CHAR R AND D
ZONE D CDC C
NUMR 9 154 4
1...5...10...15...20...25...30...35...40...45...50...55.
JCL the generate the reports:
//STEP0 EXEC PGM=IEFBR14
//EXTRACT DD UNIT=SYSDA,DSN=JNLA.EXTRACT,
// DISP=(MOD,DELETE),
// SPACE=(CYL,(20,10),RLSE),
// DCB=(LRECL=303,BLKSIZE=6060,BUFNO=4)
//DISPLAY DD UNIT=SYSDA,DSN=JNLA.DISPLAY,
// DISP=(MOD,DELETE),
// SPACE=(CYL,(25,05),RLSE),
// DCB=(LRECL=32756,BLKSIZE=32760,BUFNO=4)
//JNLA EXEC PGM=USJMAIN,REGION=0M,TIME=(25,25)
//STEPLIB DD DSN=IDMS.LOADLIB,DISP=SHR
//CDMSLIB DD DSN=IDMS.LOADLIB,DISP=SHR
// DD DSN=IDMS.DBA.LOADLIB,DISP=SHR
//SYSCTL DD DSN=IDMS.SYSCTL,DISP=SHR
//SYSIDMS DD *
ECHO=ON
JOURNAL=OFF
LOCAL=ON
DMCL=GLBLDMCL
DBNAME=SYSDICT
DICTNAME=SYSDICT
/*
//SYSOUT DD SYSOUT=*
//JASRTMSG DD SYSOUT=*
//SYSLST DD SYSOUT=*,
// DCB=BLKSIZE=1330
//*YSLSTR DD SYSOUT=*,
//* DCB=BLKSIZE=1330
//SYSLSTR DD DSN=JNLA.SYSLSTR,
// DISP=(NEW,CATLG,DELETE),UNIT=3390,
// VOL=SER=VOL000,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=13300)
//*YSLSTD DD SYSOUT=*,
//* DCB=BLKSIZE=1330
//SYSLSTD DD DSN=JNLA.SYSLSTD,
// DISP=(NEW,CATLG,DELETE),UNIT=3390,
// VOL=SER=VOL000,
// SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=133,BLKSIZE=13300)
//SYSOUD DD SYSOUT=*,
// DCB=BLKSIZE=1330
//SYSUDUMP DD SYSOUT=*
//SORTWK01 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//SORTWK02 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//SORTWK03 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//SORTWK04 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//SORTWK05 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//SORTWK06 DD UNIT=SYSDA,
// SPACE=(CYL,(05,01))
//ARCHIVE DD DSN=IDMS.JNL.ARCHIVE.FILE,DISP=OLD
//EXTRACT DD UNIT=SYSDA,DSN=JNLA.EXTRACT,
// SPACE=(CYL,(20,10),RLSE),DISP=(NEW,CATLG,CATLG),
// DCB=(LRECL=311,BLKSIZE=6220,BUFNO=4)
//DISPLAY DD UNIT=SYSDA,DSN=JNLA.DISPLAY,
// SPACE=(CYL,(25,05),RLSE),
// DCB=(LRECL=32756,BLKSIZE=32760,BUFNO=4),
// DISP=(NEW,CATLG,CATLG)
//RANKING DD UNIT=SYSDA,
// SPACE=(CYL,(05,01),RLSE),
// DCB=(LRECL=60,BLKSIZE=6120,BUFNO=4)
//SORTCNTL DD DUMMY
/*
//SYSIPT DD *
PROCESS=ALL,CONT=N,RHDCRUAL=N,NONUNIQ=Y,FORMAT=SPARSE,IDMSXXXX=Y
REPORT=CHRONO, ALL=Y
DISPLAY=REC, RECID=410
//*