We are running V4.3 and are using Brio Query to access databases on the iSeries 400. When we start up a brio query, it connects to the iSeries and I can see some activity for the query in the QSERVER subsystem in a job -> QZDASOINIT.
When the QZDASOINIT task starts up, it seems to run the same as, or even higher, than our interactive users and batch jobs. The job is setup to run with a priority of 70 (interactive and batch are setup at 20 and 50 respectively). How can we control QZDASOINIT to not consume as many resources as it is? I would have thought that timeslice and priority would have worked but it doesn't seem to help.
First of all, you must understand that priority 70 is lower then 20 (the higher number means lower priority) so your qzdasoinit is not running in high priority, yet it consumes resources.
In order to temporary or permanently lower the priority of qzdasoinit see this article.
In order to find the causes for poor performance of the queries you must tune the SQL statements. Some hints can be found using debug as described (in V4.4 there is a better way to see those hints):
Debugging a Query Job in Batch
The following technique is used to debug a query job that must be run in batch:
1. Hold the job queue that the query job is submitted to.
2. Submit the query job.
3. Display the job queue and determine the job name of the query job, user profile, and job number.
4. Change the query job to LOG(4 00 *SECLVL) and LOGCLPGM(*YES).
5. STRSRVJOB with the job name, user and number.
6. STRDBG UPDPROD(*YES). (If Query/400, then program QDBOPEN must also be specified.)
7. Release the job queue.
8. When the job starts running, the interactive session breaks to allow you to type break points. For Query/400 jobs, use F10 to display the command entry screen, ADDBKP STMT('/1'), and press F3 to return to the break screen.
9. Press the Enter key on the break screen to allow the query to run.
10. At this point, the following options are available:
* Wait for the query job to complete. Then, use DSPJOBLOG OUTPUT(*PRINT) for the query job name, user, and number.
* Display the active job log for the query job and verify that the low level query messages are in the job log. If they are, use DSPJOBLOG OUTPUT(*PRINT) for the query job name, user, and number. Then, end the query job.
11. On the OS/400 command line, type the following: ENDDBG
Press the Enter key.
12. On the OS/400 command line, type the following: ENDSRVJOB
MORE INFORMATION ON THIS TOPIC
Ask your systems management questions--or help out your peers by answering them--in our live discussion forums.
The Best Web Links: tips, tutorials and more.