23
Sat, Nov
1 New Articles

Drive Batch Jobs with Ease!

RPG
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Use logical files in the command input stream.

 

Batch job commands, such as Submit Database Jobs (SBMDBJOB) and Start Database Reader (STRDBRDR), allow programmers to submit batch jobs to job queues so that CL commands stored in database files can be run in the submitted jobs sequentially. These batch job commands are friends of system administrators who want jobs done in batch and/or automatically.

 

According to IBM's documents, the specified database file either must consist of single-field records and have an arrival sequence access path or must be a standard database source file. Actually, these batch job commands can also work with database files that have multiple fields or even logical files (LFs) with key fields and select/omit fields. This means more flexibility for how IBM i developers manage batch jobs. For example, you can set the execution sequence of CL commands to be executed according to a key field in the input LF, or you can decide whether to execute a specific CL command by setting or clearing an indicator field in the input-command file. Of course, to do that needs a little trick.

 

In this article, I will show you…

  • How to drive a batch job via a logical file with key fields and select fields. This way, you can conveniently decide which commands are to be run in the batch job and the order the commands are to be run.
  • How to troubleshoot failures when running a batch job using SBMDBJOB or STRDBRDR.

Driving a Batch Job via a Logical File with Key Fields and Select Fields

Physical or logical files having multiple fields and a keyed access path can be used as input-command files for SBMDBJOB and STRDBRDR, once they match the following criteria:

 

  • Each record (even if composed with multiple fields) read from the input-command file is a valid CL command. According to the CL Programmer's Guide, CL commands have the following general syntax.

 

[//] [?] [label-name:][library-name/]command-name [parameter-set]

 

  • For a record that represents a job input command, such as Batch Job (BCHJOB), Data (DATA), and End Input (ENDINP), the beginning two characters of the record must be two slashes (//).

Now I will use a practical example to show you the trick to implementing the tasks mentioned. Say that you store your CL commands to be run in a batch job in a physical file named BCHCMD, whose DDS source is the following:

 

*

* @file bchcmd.pf

*

* Input-command file.

*

A R REC

A CMDSTR 64O COLHDG('Command string')

A BEGCOMT 2A COLHDG('Start of comment')

A DFT('/*')

A CMDSEQ 4S 0 COLHDG('Sequence number')

A CTLFLAG 1A COLHDG('Control flag')

A REMARK 32O COLHDG('Remarks')

A ENDCOMT 2A COLHDG('End of comment')

A DFT('/*')

 

In the sample input-command file, we have the following:

 

  • The Command String (CMDSTR) field is used to store the CL command string to be run by the SBMDBJOB or STRDBRDR commands.
  • Fields BEGCOMT and ENDCOMT default to /* and */, respectively. These two fields comment out all the other fields except CMDSTR in a record read from the input-command file. Using this little trick, you can add any character fields between BEGCOMT and ENDCOMT without affecting the validity of the CL command string represented by a record in the input-command file.
  • The Sequence Number (CMDSEQ) field is used to sort CL commands in the input-command file.
  • The Control Flag (CTLFLAG) field can be used as a select field in logical files built on the input-command file so that only the records with the expected value of the CTLFLAG field can be seen by the SBMDBJOB or STRDBRDR commands.

 

After compiling the input-command physical file, you can build logical files upon it to categorize CL commands stored in BCHCMD into different categories. Imagine that you have a bundle of commands that are related to a backup process and are expected to be scheduled to run nightly via the SBMDBJOB command. Your logical file for the backup process might look like the following.

  

*

* @file bckupcmd.lf

*

* Input-command file of the backup process.

*

A R REC PFILE(BCHCMD)

* [1]

A K CMDSEQ

A

* [2]

A S CTLFLAG COMP(EQ 'B')

A S CMDSEQ VALUES(0 9999)

 

Notes on bckupcmd.lf:

 

  • Commands selected from this logical file are keyed by the Sequence Number (CMDSEQ) field.
  • Records representing commands to be run in the backup process are expected to have their CTLFLAG filed set to 'B'. Since the job input commands, BCHJOB and ENDINP, are common to all tasks, records with CMDSEQ set to 0 or 9999 are also selected.

 

Now you can configure your nightly backup process by inserting commands into PF BCHCMD using SQL. After setting your configuration, select your logical file BCKUPCMD, and the result might look like Figure 1.

   

010511JunleiFig1 

Figure 1: Your configuration is set! (Click image to enlarge.)

 

Run the SBMDBJOB or STRDBRDR command against logical file BCKUPCMD interactively like the following.

 

SBMDBJOB FILE(BCKUPCMD)

 

 

Checking your QSYSOPR message queue, you might get the following result.

 

From . . . : LJL 10/10/27 14:53:25

 

STARTING BACKUP PROCESS ...

 

From . . . : LJL 10/10/27 14:54:15

 

END OF BACKUP PROCESS

 

 

Now you have implemented a configuration-based batch-job utility. You can enable or disable a specific item in your configuration by changing the value of its CTLFLAG. You can also insert a new item into the existing configuration at a specific position by setting the proper value for the CMDSEQ field. You can also change the order of items to be run by changing their CMDSEQ values.

Troubleshooting Failures when Running a Batch Job Using SBMDBJOB or STRDBRDR

The most direct way to determine which failures occurred in a submitted job is by reviewing its job log. After submitting a batch job, the SBMDBJOB comand will send a completion message containing the job ID of the submitted job to the current job's call message queue. You can refer to the job log of the submitted job by issuing command WRKJOB JOB(job-id) OPTION(*JOBLOG) if the submitted job is active or by issuing command WRKJOB JOB(job-id) OPTION(*SPLF) if the submitted job has already ended abnormally. The Work with Submitted Jobs (WRKSBMJOB) command can also be used to locate the submitted job if the job is submitted with SBMDBJOB DSPSBMJOB(*YES).

 

Unlike SBMDBJOB, the STRDBRDR command sends messages containing the job ID of the submitted job to the message queue specified by the MSGQ parameter of STRDBRDR, which defaults to QSYSOPR.

 

as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7,

Junlei Li

Junlei Li is a programmer from Tianjin, China, with 10 years of experience in software design and programming. Junlei Li began programming under i5/OS (formerly known as AS/400, iSeries) in late 2005. He is familiar with most programming languages available on i5/OS—from special-purpose languages such as OPM/ILE RPG to CL to general-purpose languages such as C, C++, Java; from strong-typed languages to script languages such as QShell and REXX. One of his favorite programming languages on i5/OS is machine interface (MI) instructions, through which one can discover some of the internal behaviors of i5/OS and some of the highlights of i5/OS in terms of operating system design.

 

Junlei Li's Web site is http://i5toolkit.sourceforge.net/, where his open-source project i5/OS Programmer's Toolkit (https://sourceforge.net/projects/i5toolkit/) is documented.

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: