Hi, Larry:
Answers below, in-line...
Thanks,
Mark
> lloen@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:
...(snip)...
They use JDBC to access DB2 database tables and views on i5/OS from
client/server programs running on an application server. The database
requests are done via JDBC, sometimes select, update, insert, or delete
SQL statements and sometimes calls to stored procedures. Database access
is via a pool of QZDASOINIT jobs.
The stored procedures are ILE RPG programs created with CRTRPGMOD and
CRTPGM with ACTGRP(*CALLER) and they always set *INLR=*OFF, for
"performance" reasons.
Commitment control is being used throughout this application. At
present, all jobs run with CMTSCOPE(*JOB).
Could you explain more about this? This could be anywhere from an irritant to a severe problem (as you have so far described it).
The software on the PC GUI (interactive) side is server
platform-independent and does not use the IBM Toolkit for Java. There
are no direct calls to programs on the server from interactive GUI jobs.
Each GUI screen (form) is treated as a "transaction" as is typical of
many client/server applications. That is, first the display is filled
with a select statement and then the connection is let go, then when the
user has made changes, a new connection is obtained from the connection
pool, the database changes are made, a commit is performed, and the
connection is released back to the pool. Sometimes the transaction
consists of writing records to a file and then calling a stored
procedure to do further processing. The application makes heavy use of
triggers that update other files. That is, an insert or update usually
"triggers" other data changes cascading down the line as trigger
programs are processed and the actual volume of data changed can be
quite high.
How many of these programs do you have? Do you know what the total space, per QZDASOINIT job, is?
It is a vendor package. The i5/OS customer I am dealing with is an
end-user of this package. So, I do not have all of the details.
Are the QZDASOINIT jobs being reused over time, or are they growing in numbers without bound?
As mentioned above, the QZDASOINIT jobs are managed via a "connection
pool" so there are a fixed number of these jobs, and they are re-used
over and over again.
Since the connection pool jobs are all in the default activation group,
the trigger programs and SQL cursors are never ended and the QZDASOINIT
jobs grow and grow. Also, one is never sure which records may still be
locked for whatever reason after stored procedure processing ends. Worst
of all is that the software company can not move to named activation
groups because a lot of the programs that are run from the interactive
jobs as a result of calls to stored procedures, are also part of batch
processes. If the modules were changed to use named activation groups,
calling them from interactive jobs would open new activation groups and
possibly mess up service program usage (service programs are all done
with ACTGRP(*CALLER)). Also, there are the implications of using
commitment control to consider.
What are the symptoms? Long term slowdown, increased paging, or simply more and more disk consumed?
What I would predict is that you would see the storage growth for each of these jobs take place to a certain point over time and then simply "top off" and not grow any more.
Whether this did more than simply waste a bit of disk space would depend on other factors.
Larry Loen
www.applicationperformancegroup.com
The crux of the issue seems to be, is there a way to configure
QZDADSOINIT jbos to run in an ILE activation group? How can they do this?
For example, should they just put ALL of the i5/OS *PGMs and *SRVPGMs
into a single large named activation group, by specifying e.g.
ACTGRP(QILE) on every *PGM and *SRVPGM? At least, that way, presumably
they could then invoke a program to issue:
RCLACTGRP ACTGRP(QILE)
periodically, as needed...
Or, is there a way to force the QZDASOINIT jobs to terminate, and the
replace them with a new instance, in the connection pool, periodically?
Or any other recommendations?
Thanks.
Mark S .Waterbury
As an Amazon Associate we earn from qualifying purchases.