Feb 1 ’05
Gain Productivity by Creating and Implementing a JCL “Production Checklist”
This article explains how to improve your company’s production JCL by creating and implementing a “production checklist.” The process, which can work miracles, consists of assessing your production JCL environment and taking corrective action using the checklist created during the assessment. JCL Production Checklist Defined A JCL production checklist simply lists items in your IT environment that need to be improved. The checklist will:
- Make JCL easier to update and use
- Reduce the time it takes to restart a production job
- Help new employees become more productive in less time
- Help employees understand good JCL code vs. bad code
- Stop poor coding habits from spreading
- Take advantage of system enhancements
- Provide JCL code upgrades to reduce run-time
- Eliminate misuse of resources such as people, tape, and DASD.
The checklist is created to get results. Several specific problems with their solutions are detailed here, along with a sample JCL production checklist to address these problems. Also included are guidelines on how to create and implement a checklist for your environment.
Learning From Others
The following stories come from participants in JCL training. They reviewed actual customer production JCL and applied what they learned to the customers’ JCL environment. They created a JCL production checklist for their environment.
Problem 1: Every day when running the production batch jobs, the operators had to move production reports manually from the Held queue to the Output queue to print. On several occasions, production reports were accidentally deleted. Solution:The operations group established a standard for report processing, communicated the standard, and then enforced the standard. This resulted in zero loss of reports due to manual deletion (see Figure 1).
Problem 2: Block sizes coded on output DASD files for an entire application were high, but incorrect for the device type. Even though the block size was high, the size was inefficient because half of each track wasn’t being used. So, half the DASD for an entire application, with a large amount of data, was being wasted.
Solution: The group established a standard for blocking, and communicated and enforced the standard, resulting in a significant gain in DASD resources (see Figure 2).
Problem 3: While running batch production jobs, a job abended in STEP0180. Programming examined this job for several hours, focusing on STEP0180 before realizing the real problem was in STEP0090 (eight steps before STEP0180). STEP0090 executed with a return code of 8. There were no condition checks on the individual job steps, so the job continued to run when it should have been stopped at STEP0090 with the proper condition checks.
Solution: The group coded condition checks for each step so they don’t waste time resolving abends (see Figure 3).
Problem 4: Jobs with large data sets were taking excessive time to run (12 to 13 hours).
Solution: The group coded additional buffers to reduce the amount of I/O and significantly improve job performance. The default buffer amount is five for flat data sets. For VSAM, the default is two data buffers and one index buffer. The programmers tested and tuned this to continue to improve run-time. One shop reported they decreased their run-time by 80 percent (see Figure 4).
Further explanation: Code BUFND when accessing a VSAM data set sequentially to increase the number of data buffers. If accessing a VSAM data set randomly (using the index), then increase the number of index buffers by coding BUFNI. For a large flat data set, code BUFNO to increase the amount of buffers.
Problem 5: Just three months ago, during a JCL class, we noticed that 95 percent of VS COBOL II production load modules were below the line. (Years ago, when VS COBOL II was introduced, a major performance benefit was to get the COBOL load modules above the line.) The team was recompiling these below the line modules under the Language Environment, IBM’s newest COBOL, but still forcing the modules below the line!
Solution: The group created new compile-and-link JCL to take advantage of the performance benefits gained by getting the load modules above the line (see Figure 5).
Advantages of Sharing the Checklist
A JCL production checklist describes items in your environment that need to be addressed to improve efficiency. When implemented, the production checklist ensures that everyone is aware of and using the suggestions to improve the JCL code and other technical issues that interfere with efficiency and performance (getting results). Not just one or two people will follow the plan, but your entire team, anyone who is in any way involved with coding or using JCL will know and exercise the “best practices” for your environment. Think of the potential for vast improvement when everyone is on the same page!
Some specific benefits of the checklist include:
- Reducing the number of I/Os, which can significantly reduce the run-time
- Coding JCL consistently, which can decrease the number of JCL errors and job reruns and increase productivity
- Eliminating unnecessary statements and parameters, making JCL easier to understand, which also translates to greater productivity
- Addressing items that impede performance (such as the COBOL example where the modules resided below the line).
Taking Action With a Strong Team
To gain productivity, start your environment-specific checklist today. The first step is to form a qualified team, educated in the best practices. This might include outside JCL experts to perform an assessment that should:
- Evaluate your existing production JCL by reviewing at least two jobs from each system
- Strive for consistency and address items that interfere with work results or efficiency
- Assign someone to watch for three days while production is being run; interview operators to ask what problems they’re experiencing
- Review four weeks of production error logs
- Review the process to move members into production.
The second step is to begin the task of implementing the checklist. This action should:
- Ensure your people receive continuous quality education in IT basics such as JCL, COBOL, and whatever is required to perform their jobs
- Ensure that everyone has a copy of the JCL production checklist
- Enforce accepting JCL into production only when the JCL conforms to the guidelines
- Interview at least one representative from each of the IT areas and users looking for suggestions or problems.
Implementing a JCL Production Checklist Using Tools
There are numerous software tools available to automate processes, such as JCL management software, change management software, and software that monitors application performance. These software tools, when implemented correctly, set up checks and balances to ensure JCL code is efficient, members are moved into production correctly, and applications are running at peak performance.
- It might seem as though the easiest approach is to do nothing. But doing a little work now will eliminate many problems later—problems that transcend jobs abending or running inefficiently and encompass those affecting morale. IT standards, such as a well-constructed production checklist, help everybody perform their jobs better and ensure the JCL coding will be optimal and consistent. Consistency is such a seemingly simple idea, yet often elusive. Implementing the checklist can have a highly positive impact on the production batch workload and the people working with the technology. Simple in this case means efficient and elegant. To get results, as Nike says, “Just Do It!”