|Finding SQL Server Mode Connecting Jobs|
|Database - DB2|
|Written by Scott Forstie|
|Tuesday, 05 August 2008 20:00|
Now it's much easier to understand QSQSRVR usage and isolate QSQSRVR-related problem domains and origins.
IBM DB2 for i customers are accustomed to seeing SQL server mode job activity, otherwise known as QSQSRVR prestart jobs, in the QSYSWRK subsystem. Over time, customer applications, third-party software, and IBM middleware have increased the use of SQL server mode. A consequence of this broad use is that it has become increasingly difficult to start with a specific QSQSRVR job and find its application owner.
This article describes some recent improvements to V5R4M0 and V6R1M0 that make it downright simple to pinpoint the application job that holds the connection to the QSQSRVR as well as the thread identifier within the application job that was the last user of the SQL server mode connection for the specific QSQSRVR job.
"Server mode connecting job" is the qualified job name of the job that established the SQL server mode connection.
"Server mode connected thread" is the thread identifier of the last thread to use the SQL server mode connection. When the status of current SQL statement indicates that the SQL statement is not "Currently running," this field could refer to an application thread identifier that no longer exists.
System i Navigator provides a plethora of ways find active jobs. One common technique is to drill into the Active view and sort by CPU %. For any active job, SQL details can be seen by right-clicking and selecting the SQL option under the Details category, as shown in Figure 1.
Figure 1: Drill down in the Active view to see any active job's SQL details.
An alternative is to launch the SQL Details for Jobs interface from the Database folder, as shown in Figure 2. Both approaches bring up the same dialog. Launching from a specific job results in that job being pre-loaded into the dialog, whereas launching from the database folder means that search criteria must be entered and applied prior to viewing SQL details.
Figure 2: Alternatively, launch the SQL Details for Jobs interface.
Once the job is selected under the SQL Details for Jobs dialog, right-click and select Show Details. The information related to the current or last SQL statement executed under that job will appear.
The server mode connecting job and server mode connected thread information will appear just below the job detail. This information can be used to find the connecting job using System i Navigator or the green-screen command interface (i.e., DSPJOB). See Figure 3.
Figure 3: The server mode connecting job and server mode connected thread information are shown.
The server mode connected thread corresponds to the application thread identifier that issued the current or most recent request for the specific server mode connection. This information could be particularly useful to isolate the application origin of expensive or contentious SQL statements.
Some Help from the Green-Screen
The server mode connecting job information is sent to the joblog when the connection is formed. If a QSQSRVR job does not have this message, then the QSQSRVR is most likely in a "prestart wait" state, awaiting a connection request.
This information can be viewed from a direct sign-on or via System i Navigator. The message is sent as a CPF9898, severity 00 completion message. Since the message is sent when the connection is formed, applications that use connection pooling should not expect to see multiple occurrences of the message.
As with all QSQSRVR job activity, the joblog is deleted when the connection ends or is disconnected, as long as the connection did not end in an error state. If a QSQSRVR job ends with an unexpected error, any transaction activity is rolled back and the joblog is written to the spool file of the current user.
Figure 4: The Display Job Log information can be viewed from direct sign-on.
Joblogs are also available from System i Navigator, and they contain the same detail but in reverse order.
Figure 5: The Display Job Log information can also be viewed from System i Navigator.
The user-defined column of the 1000 record (QQUDEF) will default to indicate the server mode connecting job information. If the application should override QQUDEF with its own value, this detail would be lost.
IBM may move this information to a different column in a future release to prevent the potential conflict of use.
Figure 6: The user-defined column of QQUDEF indicates the server mode connecting job information.
System i Navigator Best Practice
It is usually best to install and use the latest release and service pack available for System i Navigator. For example, a V6R1M0-level client would work well in an environment where the IBM i operating system is still using V5R3M0 and V5R4M0. The client checks the operating system level and hides or disables features that are unavailable for that level of operating system.
Don't delay the upgrade of your clients just because the operating system upgrade has not yet happened.
The improvements to externalize the SQL server mode connecting jobs and connected thread are useful pieces of data to improve the ability to understand QSQSRVR usage and quickly isolate QSQSRVR-related problem domains and origins.
To use these improvements requires the installation of a PTF on the host (IBM i) and installation of a service pack on the client PC where System i Navigator is used.
•· PTF 5722SS1 V5R4M0 SI31830
•· PTF 5722SS1 V5R4M0 SI32024
•· iSeries Access for Windows Service Pack SP8 (PTF 5722XE1 SI31388)
•· PTF 5761SS1 V6R1M0 SI31850
•· PTF 5761SS1 V6R1M0 SI32025
•· iSeries Access for Windows Service Pack SP2 (PTF 5722XE1 SI31390)
•· iSeries Access for Windows Service Pack SP3 (PTF 5722XE1 SI32504, target availability October 31, 2008)
Note: The System i Navigator enablement for V6R1M0 is split between two service packs. Service pack 2 (SP2) includes the server mode connecting job improvement. Service pack 3 (SP3) includes the server mode connected thread improvement.
IBM Redbooks Technote: "DB2 for i5/OS: SQL Server Mode Primer"
IBM Redbooks Technote: "DB2 for i5/OS: User-Defined Servers to the Rescue"
|Last Updated on Tuesday, 05 August 2008 09:53|