you can use WRKSBMJOB command to see the details what you are looking for.
First, if the job was not set to create a joblog, then there will not be a joblog created. The job must have its LOG() attribute set to a logging level that creates a spooled joblog. Most jobs should not create spooled joblogs if they complete successfully.
Second, if any system options are set to clean up logs automatically, the cleanup might be deleting logs too soon. Cleanup might be from normal system options or from custom programs. Or users (or programmers or others) might simply be deleting joblogs.
When a job is submitted, use the SBMJOB LOG() parameter to sett the appropriate logging level. The value can be set on the SBMJOB command or the value can be inherited from the job description that is used. Set the TEXT value of the LOG() attribute to something other than *NOLIST.
If the value is set on the job description, all jobs using it will have there attribute set. This can potentially create a lot of joblogs.
CHGJOBD JOBD( myjobd ) LOG(4 00 *MSG)</pre>
Set either *MSG or *SECLVL for the TEXT value. Adjust the LEVEL and SEVERITY values to choose what to include in the joblog.
If cleanup activity is deleting logs, then that feature can be changed. For standard system cleanup, use GO CLEANUP to access the schedule. Make sure that the schedule specifies more than 1 day for joblogs. If it's not standard system cleanup that deletes logs, then you'll have to find out what does it and how to change it.
If users (or programmers) are deleting joblogs, then remove the authority. In particular, remove *SPLCTL special authority from all users. Only give *SPLCTL to profiles that should have authority to control ALL spooled files. (If you find that a *SPLCTL user is deleting logs and you can't remove the special authority from their profile, you will probably have to program your own solution to capture a joblog.)