Question & Answer
Question
Journal receivers are filling up rapidly and you would like to know what job or jobs are causing an abnormal amount of changes to be deposited into the journal.
Cause
It is important to understand that journals themselves do not "generate" entries. A journal entry is logged when a journaled object is changed in some way. The intention of this document is to assist in identifying the job(s) that are contributing to filling up receivers faster than normal. It is up to you to determine if the job / program / etc was working the way it should be.
Answer
The first step is to dump the receiver or receivers in question to an OUTFILE. There are a couple of ways to do this. Keep in mind the OUTFILE will be similar in size to the receiver itself, so you will want limit the number of receivers dumped at once.
Here is a sample of my receiver directory:
==> WRKJRNA LIBRARY/YOUR_JOURNAL
==> F15=Work with receiver directory
==> Document your receiver library - it may be different than your journal library
==> Notes: F17=Top, F18=Bottom, and F11=Display size
Attach Save Receiver Library Number Date Status Date DZR2000012 RHDIESER 00001 12/12/17 SAVED 08/15/18 DZR2000013 RHDIESER 00002 02/23/18 SAVED 08/15/18 DZR2000014 RHDIESER 00003 04/02/18 SAVED 08/15/18 DZR2000015 RHDIESER 00004 05/01/18 SAVED 08/15/18 DZR2000016 RHDIESER 00005 05/12/18 SAVED 08/15/18 DZR2000017 RHDIESER 00006 05/18/18 SAVED 08/15/18 DZR2000018 RHDIESER 00007 05/18/18 SAVED 08/15/18 DZR2000019 RHDIESER 00008 06/21/18 ONLINE 08/15/18 DZR2000020 RHDIESER 00009 10/06/18 ONLINE 00/00/00 DZR2000021 RHDIESER 00010 10/06/18 ATTACHED 00/00/00
Select your DSPJRN command that you will use based on the following descriptions
[ ] DSPJRN - using the default value for RCVRNG(*CURRENT)
Based on the above receiver chain this command will only dump "DZR2000021". That may be all that you are interested in, but in most cases it is a previous receiver somewhere in the receiver directory that you will want to analyze.
[ ] DSPJRN - using RCVRNG(RHDIESER/DZR2000020 RHDIESER/DZR2000020)
Note the starting and ending receivers in this example are the same. This will only dump the contents of receiver "DZR2000020". I would expect most situations would fall into this command example; where you are selecting a particular receiver of interest. You could also use this example to select more than one receiver:
RCVRNG(<Lib>/<Starting Receiver> <Lib>/<Ending Receiver>)
[ ] DSPJRN - using RCVRNG(*CURCHAIN)
Do NOT use CURCHAIN unless you know there are a limited number of receivers. CURCHAIN in this example would dump every receiver starting from DZR2000012 through the attached receiver DZR2000021. A receiver chain can easily have hundreds of 2 GB receivers and that would create an enormous outfile.
Dumping the receiver(s) to an OUTFILE
Once you have determined your RCVRNG value you will be using - update the following command with the values from your system. Specifically you will need to change the JRN and RCVRNG parameters.
DSPJRN JRN(RHDIESER/DIESER)
RCVRNG(RHDIESER/DZR2000020 RHDIESER/DZR2000020)
OUTPUT(*OUTFILE)
OUTFILE(QTEMP/JRNOUT)
Tip:
You can run CL commands from Run SQL Scripts. You would simply need to add: CL: <Your command string;
CL: DSPJRN JRN(RHDIESER/DIESER) RCVRNG(RHDIESER/DZR2000020 RHDIESER/DZR2000020) OUTPUT(*OUTFILE) OUTFILE(QTEMP/JRNOUT);
Also in Run SQL Scripts - if you place your cursor immediately after the "CL: " you can press F4 and it will prompt the command.
Determining the job(s) that are contributing the most entries to the journal
select count(*) as "Number of journal entries" ,JONBR as "Job Number" ,JOUSER as "User Name" ,JOJOB as "Job Name" from qtemp.jrnout group by JONBR, JOUSER, JOJOB order by count(*) DESC limit 100;
My results as seen from Run SQL Scripts:

What work was job: 864443/RHDIESER/QPADEV0015 doing?
The next step in reviewing the receiver will be to determine what file(s) this job was touching. I am going to use the job number (JONBR), the user (JOUSER), and job name (JOJOB) from the above results in the following SQL (be sure these values are upper case):
select count(*) as "Number of journal Entries" ,JOCODE as "Journal Code" ,JOENTT as "Journal Entry Type" ,JONBR as "Job Number" ,JOUSER as "Job User" ,JOJOB as "Job Name" ,JOLIB as "Library" ,JOOBJ as "File Name" ,JOPGM as "Program" from qtemp.jrnout where JONBR = 864443 and JOUSER = 'RHDIESER' and JOJOB = 'QPADEV0015' group by JOCODE, JOENTT, JONBR, JOUSER, JOJOB, JOLIB, JOOBJ, JOPGM order by COUNT(*) DESC;

Now the research beings
We need to look up each of these codes and determine what is happening with this file. The URL listed below will allow you to look up the various journal codes and entry types.
[ ] Journal entry information finder
==> https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzaru/rzarujournalfinder.htm
IBM cannot tell you if the changes a user's job makes are "normal". You will need to review the job with the end user and determine if that activity is acceptable. Remember the system does not generate these values it is tracking changes made and the above example job caused 1,713 entries to be deposited to the journal.
Related Information
Was this topic helpful?
Document Information
Modified date:
18 December 2019
UID
ibm10734563