Using ALLCHGRCV or ALLDTCRCV control group entries to save journal receivers

*ALLCHGRCV can be specified as a control group entry to save journal receivers that have not been saved since they were last changed.  This entry will include journal receivers that are attached to a journal and journal receivers that are not attached to a journal.

*ALLDTCRCV can be specified as a control group entry to save journal receivers that have not been saved since they were detached. This entry will only include journal receivers that are not attached to a journal.                    

By default, for either of these control group entries, all journal receivers associated with all journals will be processed except journal receivers associated with journals that are in libraries that start with 'Q'.                   

It may be useful to limit the journal receivers to a specific set of journals. To do this, object list QCHGJRNRCV can be created for *ALLCHGRCV backups and object list QDTCJRNRCV can be created for *ALLDTCRCV backups.  Only journal receivers associated with journals that are specified in the respective object lists will be processed.  Using QCHGJRNRCV or QDTCJRNRCV differs from the default behavior in an important way:  If the object list contains a journal in a library that starts with a 'Q', the journal receivers for that journal will be processed.

In releases IBM i 7.2 and later, exclude entries can be specified in object list QCHGJRNRCV or QDTCJRNRCV to exclude journals from *ALLCHGRCV and *ALLDTCRCV backups.

NOTES:

  1. Objects, that are journaled to the journal  associated with these journal receivers, must be saved with retain object detail *YES, *OBJ or *MBR.  If the object detail for the objects is not retained, *ALLDTCRCV will save all of the detached journal receivers every time it is run after BRMS maintenance has run instead of saving only the recently detached receivers.                        
  2. In releases IBM i 7.2 and earlier, to process journals in libraries that start with 'Q' when specified in object list QCHGJRNRCV or QDTCJRNRCV, the following PTFs or superseding PTFs are required:
        7.2 SI53306
        7.1 SI53305
        6.1 SI53304
  3. In release IBM i 7.2, to allow excluded journals in object list QCHGJRNRCV or QDTCJRNRCV, the following PTFs or superseding PTFs are required:
        7.2 SI53306
  4. QAUDJRN journal receivers in QSYS are saved at sequence 34 when a *SAVSYS is done. To restore these audit journal receivers, a RSTOBJ or WRKMEDIBRM Option 7, 7 and specify the name(s) of the receivers you want to restore. More details are available here. To list the journal receivers saved, use the following command
    • DSPTAP SEQNBR(34 34) DATA(*SAVRST) OUTPUT(*PRINT)
  5. When doing incremental saves and the receivers are in a library in an independent auxiliary storage pool (IASP), the IASP must be in the name space.  The IASP can be added to the name space by adding a *SETASPGRP entry to a control group prior to the *ALLCHGRCV or *ALLDTCRCV entry.


Example using *ALLDTCRCV with QDTCJRNRCV

The following objects exist on the save system:

library: LIBRARY1

*JRN  LIBRARY1/JRN1
*JRNRCV LIBRARY1/JRNRCV1 which is detached from LIBRARY1/JRN1 and has been saved with object level detail
*JRNRCV LIBRARY1/JRNRCV2 which is detached from LIBRARY1/JRN1 and has NOT been saved
*JRNRCV LIBRARY1/JRNRCV3 which is attached to journal LIBRARY1/JRN1
*FILE LIBRARY1/PF1 journaled to LIBRARY1/JRN1 and has been saved with object detail

library: LIBRARY2

*JRN  LIBRARY2/JRN2
*JRNRCV LIBRARY2/JRNRCV1 which is detached from LIBRARY2/JRN2 and has been saved
*JRNRCV LIBRARY2/JRNRCV2 which is detached from LIBRARY2/JRN2 and has NOT been saved
*JRNRCV LIBRARY2/JRNRCV3 which is attached to journal LIBRARY2/JRN2
*FILE LIBRARY2/PF2 journaled to LIBRARY2/JRN2 and has been saved with object detail

library: LIBRARY3

*JRN  LIBRARY3/JRN3
*JRNRCV LIBRARY3/JRNRCV1 which is detached from LIBRARY3/JRN3 and has been saved
*JRNRCV LIBRARY3/JRNRCV2 which is detached from LIBRARY3/JRN3 and has NOT been saved
*JRNRCV LIBRARY3/JRNRCV3 which is attached to journal LIBRARY3/JRN3
*FILE LIBRARY3/PF3 journaled to LIBRARY3/JRN3 and has been saved with object detail

library: LIBRARY4

*JRN  LIBRARY4/JRN4
*JRNRCV LIBRARY4/JRNRCV1 which is detached from LIBRARY4/JRN4 and has been saved
*JRNRCV LIBRARY4/JRNRCV2 which is detached from LIBRARY4/JRN4 and has NOT been saved
*JRNRCV LIBRARY4/JRNRCV3 which is attached to journal LIBRARY4/JRN4
*FILE LIBRARY4/PF4 journaled to LIBRARY4/JRN4 and has been saved WITHOUT object detail

library: LIBRARY5

*JRN  LIBRARY5/JRN5
*JRNRCV LIBRARY5/JRNRCV1 which is detached from LIBRARY5/JRN5 and has been saved
*JRNRCV LIBRARY5/JRNRCV2 which is detached from LIBRARY5/JRN5 and has NOT been saved
*JRNRCV LIBRARY5/JRNRCV3 which is attached to journal LIBRARY5/JRN5
*FILE LIBRARY5/PF5 journaled to LIBRARY5/JRN5 and has been saved with object detail



As stated earlier, object list QDTCJRNRCV is a list of journals that will be used to generate a list of journal receivers.  For this example QDTCJRNRCV will contain the following entries:

SeqLibraryObjectTypeAttributeMemberInc/Exc
10LIBRARY1*ALL*ALL*ALL*ALL*INC
20LIBRARY2*ALL*JRNRCV*ALL*ALL*INC
30LIBRARY3JRNX*ALL*ALL*ALL*INC
40LIBRARY4*ALL*ALL*ALL*ALL*INC


Journal receivers will be included in the backup if they are detached from a journal, they were attached to a journal that matches an entry in QDTCJRNRCV, the journaled object has been saved with object detail and the journal receiver has not already been saved.  For this example, here are the results of running a control group with an *ALLDTCRCV entry:

LIBRARY1

Objects saved from LIBRARY1:

*JRNRCV LIBRARY1/JRNRCV2 will be saved since:

LIBRARY1/JRN1 matches an entry in QDTCJRNRCV
LIBRARY1/PF1 has been saved with object level detail
LIBRARY1/JRNRCV2 is detached
LIBRARY1/JRNRCV2 has not been saved

Objects NOT saved from LIBRARY1:

*PF LIBRARY1/PF1 will NOT be saved,
*JRN LIBRARY1/JRN1 will NOT be saved since:

these are not *JRNRCV objects

*JRNRCV LIBRARY1/JRNRCV1 will NOT be saved since:

LIBRARY1/JRNRCV1 has already been saved

*JRNRCV LIBRARY1/JRNRCV3 will NOT be saved since:

LIBRARY1/JRNRCV3 is still attached to journal LIBRARY1/JRN1


LIBRARY2

Objects NOT saved from LIBRARY2:

*PF LIBRARY2/PF2 will NOT be saved,
*JRN LIBRARY2/JRN2 will NOT be saved since:

these are not *JRNRCV objects

*JRNRCV LIBRARY2/JRNRCV1 will NOT be saved,
*JRNRCV LIBRARY2/JRNRCV2 will NOT be saved,
*JRNRCV LIBRARY2/JRNRCV3 will NOT be saved since:

LIBRARY2/JRN2 does NOT match an entry in QDTCJRNRCV


LIBRARY3

Objects NOT saved from LIBRARY3:

*PF LIBRARY3/PF3 will NOT be saved,
*JRN LIBRARY3/JRN3 will NOT be saved since:

these are not *JRNRCV objects

*JRNRCV LIBRARY3/JRNRCV1 will NOT be saved,
*JRNRCV LIBRARY3/JRNRCV2 will NOT be saved,
*JRNRCV LIBRARY3/JRNRCV3 will NOT be saved since:

LIBRARY3/JRN3 does NOT match an entry in QDTCJRNRCV


LIBRARY4

Objects NOT saved from LIBRARY4:

*PF LIBRARY4/PF4 will NOT be saved,
*JRN LIBRARY4/JRN4 will NOT be saved since:

these are not *JRNRCV objects

*JRNRCV LIBRARY4/JRNRCV1 will NOT be saved,
*JRNRCV LIBRARY4/JRNRCV2 will NOT be saved,
*JRNRCV LIBRARY4/JRNRCV3 will NOT be saved since:

LIBRARY4/PF4 has NOT been saved with object detail


LIBRARY5

Objects NOT saved from LIBRARY5:

*PF LIBRARY5/PF5 will NOT be saved,
*JRN LIBRARY5/JRN5 will NOT be saved since:

these are not *JRNRCV objects

*JRNRCV LIBRARY5/JRNRCV1 will NOT be saved,
*JRNRCV LIBRARY5/JRNRCV2 will NOT be saved,
*JRNRCV LIBRARY5/JRNRCV3 will NOT be saved since:

LIBRARY5/JRN5 does NOT match an entry in QDTCJRNRCV