23
Mon, Dec
1 New Articles

TechTip: Grab Control of the DB2 QSQSRVR Jobs

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

Apply subsystem work management techniques to the QSQSRVR jobs used by DB2.

 

Assigning jobs to a specific subsystem is a common IBM i work management technique to allocate memory and provide a degree of isolation to jobs with similar processing characteristics or response time requirements. Until some recent PTFs were delivered, DB2 for i's usage of QSQSRVR jobs for processing SQL statements didn't fit well with the methodology of using subsystems to isolate and control jobs.

 

The reason for this bad fit was that the QSQSRVR jobs always run in the QSYSWRK subsystem—even when the application that executes the SQL statement is running in a different subsystem. This default behavior holds true for applications running in an IBM-provided or user-defined subsystem.

 

The DB2 for i SQL interfaces that can utilize the QSQSRVR jobs are the DB2 SQL Call Level Interface (CLI) or the Native JDBC driver that's part of the IBM Developer Kit for Java. SQL CLI's usage of QSQSRVR jobs is limited to only those CLI applications specifying the server mode environment attribute. Applications using these interfaces to execute SQL statements have a high propensity for their SQL processing to be performed in the QSQSRVR jobs running in the QSYSWRK subsystem.

 

New PTFs from IBM provide an environment variable that enables the user to have the QSQSRVR jobs run in the same subsystem as the application issuing the SQL requests. These PTFs can be applied by just loading the latest Database Group PTF for V5R4 or V6R1 or by applying the following individual PTFs:

 

  • V6R1 PTF—SI33949
  • V5R4 PTF—SI33298


QIBM_SRVRMODE_SBS is the name of the new environment variable. When this environment variable has a value of '*SAME' or '', DB2 will execute the SQL request with a QSQSRVR job running in the same subsystem as the application. DB2 only looks at the environment variable upon the first usage of a QSQSRVR within the application's job, and the subsystem choice for the QSQSRVR job does not change for the life of the application's job.

 

The Add Environment Variable (ADDENVVAR) command can be used to specify this new environment variable. Here's an example invocation:

 

ADDENVVAR ENVVAR(QIBM_SRVRMODE_SBS) VALUE('*SAME') LEVEL(*SYS)

 

A value of *JOB can be used for the LEVEL parameter when the subsystem choice for the QSQSRVR job needs to be made a job level instead of system-wide level. The Remove Environment Variable (RMVENVVAR) command can be used to eliminate the usage of the QIBM_SRVRMODE_SBS environment variable.

 

In a future IBM i release, IBM plans to simplify this support by providing connection properties for the CLI and Native JDBC interfaces to enable the application to just specify the name of the subsystem that should be used for the QSQSRVR jobs. These connection properties will eliminate the need to use the environment variable.

 

Consideration should be given to performance before using this environment variable on your server. If you're not aware, the default QSQSRVR jobs in the QSYSWRK subsystem rely upon prestart job entry. Prestart jobs improve performance since DB2 doesn't have to wait for a QSQSRVR job to start before using it to execute an SQL statement. As a result, you may want to create prestart QSQSRVR job entries for the subsystem used by the application to deliver optimal performance. If a prestart job entry does not exist for QSQSRVR within the subsystem, DB2 will start up a QSQSRVR job as a Batch Immediate job (BCI).

 

Let's look a couple scenarios to better understand the impact of running applications with the QIBM_SRVRMODE_SBS having a value of '*SAME'.

 

Scenario #1: Application Running in QINTER Subsystem

 

1. User enters call to program using CLI server mode from QCMD line: CALL MYLIB/MYCLIPGM.

 

2. DB2 starts QSQSRVR BCI job in QINTER subsystem since this subsystem contains no prestart job entries.

 

3. CLI connection and associated SQL statements run in the newly started QSQSRVR BCI job within the QSQSRVR subsystem.

 

4. CLI connection ends, and DB2 ends the QSQSRVR BCI job.

 

5. Program call ends.

 

Scenario #2: Application in MYSBS Subsystem

 

1. To ensure optimal performance, prestart job entries for QSQSRVR jobs are added to the MYSBS subsystem. (This step is a one-time configuration step and would not be performed for every application call.)

 

ENDSBS MYSBS

ADDPJE SBSD(MYLIB/MYSBSD) PGM(QSYS/QSQSRVR)

STRJOBS(*YES) INLJOBS(5) THRESHOLD(3)

ADLJOBS(2) MAXUSE(*NOMAX)

STRSBS MYSBS

 

2. Call to program using CLI server mode submitted to MYSBS subsystem.

 

SBMJOB CMD(CALL PGM(MYLIB/MYCLIPGM))

JOBQ(MYLIB/MYSBSQ)

 

3. CLI connection and the associated SQL statements run in one of the pre-started QSQSRVR jobs in the MYSBS subsystem.

 

4. CLI connection ends, and DB2 recycles the QSQSRVR job, making it available for the next CLI connection made within the MYSBS subsystem.

 

5. Program call ends.

 

Summary

 

Notice that neither scenario follows the default behavior of using QSQSRVR jobs from the QSYSWRK subsystem. Any memory allocated to the application's subsystem will be the memory utilized by the QSQSRVR jobs in the application's subsystem.

 

The QIBM_SRVRMODE_SBS environment variable is ignored whenever the name of the application subsystem is 'QHTTPSVR' or 'ZEND'. These two subsystems are used by the IBM DB2 Web Query and the Zend PHP products. Both of these products utilize SQL CLI for accessing DB2 for i databases.

 

Maybe you are unsure if QSQSRVR jobs in QSYSWRK are even used on your system. In this case, use the DB2 database monitor to detect the usage of QSQSRVR jobs. A database monitor collection can be started just for the QSQSRVR jobs by utilizing the job-level filter introduced in the V5R4 release. Here's a sample invocation:

 

STRDBMON OUTFILE(MYLIB/QSQMON1) JOB(*ALL/*ALL/QSQSRVR)

 

Running this type of database monitor activity will make it fairly easy to determine the applications utilizing the QSQSRVR jobs on your system and the SQL requests running within these jobs. The job-level filter can also be specified on the SQL Performance Monitor's interface within the System i Navigator toolset.

 

With this new capability, you now have the power to apply the subsystem work management methodology to the QSQSRVR jobs used by DB2.

 

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: