Resetting a journal with a status of overflowed

If a journal object has a status of overflowed, you must delete it and restore it to reset its status.

Note: Use the Display Object Description (DSPOBJD) command to determine whether a specific object in a library has a status of overflowed. Use the Display Object Links (DSPLNK) command and select option 8 to determine whether a specific object in a directory has a status of overflowed.

Because journals and journaled objects must be in the same auxiliary storage pool (ASP), the best method for dealing with an overflowed journal is to restore it to the same basic ASP. If you restore the journal to a different ASP, you must also move all the journaled objects to that ASP.

If you want to move the journal and journaled objects to a different ASP, follow the procedure in the Transferring journals and objects to a different auxiliary storage pool topic.

Before beginning this procedure, ensure that you have freed enough space in the overflowed ASP to prevent the journal from overflowing when it is restored.

  1. Use the Work with Journal Attributes (WRKJRNA) command to print information about journaled objects and the receiver directory: WRKJRNA JRN(library-name/journal-name) OUTPUT(*PRINT).
  2. Use the Save Object (SAVOBJ) command to save the journal that must be reset.
  3. Save the journal receivers that are associated with the journal by using the SAVOBJ command.
  4. End journaling for any objects being journaled as follows:
    1. Access paths:
      ENDJRNAP JRN(library-name/journal-name) FILE(*ALL)
    2. Physical database files:
      ENDJRNPF JRN(library-name/journal-name) FILE(*ALL)
    3. Integrated file system objects:
      ENDJRN OBJ(*ALL) JRN('QSYS.LIB/library-name.LIB/journal-name.JRN')
    4. Issue the following command to record the inheritance rules and journaling attributes for each journaled library:
      DSPLIBD LIB(library-name) OUTPUT(*PRINT)
    5. Journaled libraries:
      ENDJRNLIB LIB(*ALL) JRN(library-name/journal-name)
    6. All other object types:
      ENDJRNOBJ OBJ(*ALL) OBJTYPE(*ALL) JRN(library-name/journal-name)
  5. Deactivate any remote journals that are associated with the journal by using the Change Journal State (QjoChangeJournalState) API or the Change Remote Journal (CHGRMTJRN) command.
  6. Delete the journal: DLTJRN JRN(library-name/journal-name).
  7. Restore the journal to the same library and the same ASP. If the journal was in library user ASP, you do not need to specify the ASP parameter on the Restore Object (RSTOBJ) command. If the journal was in a nonlibrary user ASP, specify RSTASP(*SAVASP) on the RSTOBJ parameter.
  8. Start journaling again for each object that was journaled as follows:
    1. Database physical files:
      STRJRNPF FILE(library-name/file-name) JRN(library-name/journal-name)
    2. Access paths:
      STRJRNAP FILE(library-name/file-name) JRN(library-name/journal-name)
    3. Integrated file system objects:
      STRJRN OBJ('object-path-name') 
             JRN('/QSYS.LIB/library-name.LIB/journal-name.JRN')
    4. Journaled libraries:
      STRJRNLIB LIB(library-name) JRN(library-name/journal-name)

      Use the inheritance rules and journaling attributes that you saved for the journaled libraries in step 4d.

    5. All other object types:
      STRJRNOBJ OBJ(library-name/file-name) OBJTYPE(object-type) 
                JRN(library-name/journal-name)
    You printed a list of objects in step 1.
  9. Reestablish the journal receiver chain:
    1. Type WRKJRN and press the Enter key.
    2. On the prompt display, type the name of the journal and the library.
    3. On the Work with Journals display, select option 9 (Associate receivers with journal).
    4. When you receive a message that the receivers have been associated, press F12 to return.
    5. Type the following command:
      WRKJRNA JRN(library-name/journal-name)
  10. Use the Display Object Description (DSPOBJD) command to display the object description for the journal. Ensure that the journal is no longer in overflowed status.