× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Folks,

We have an intermittent bottleneck that I am trying to identify. The problem
appears with no unusual activity happening and no pattern as to time. The
scenario is this:

1. GUI application processes changes against DB2 tables, things are swift in
all cases up to the last item which is to insert a row (length 34) into a
table which has an insert/ after trigger.
        a. Intermittently this last step takes for-ever! and about 5 or more
minutes.
2. Trigger Program does two things, a. RTVJOBNBR and b. QSNDDTAQ then ends.
3. Back End process involves a daemon type program which monitors it's data
queue (there are three, Prod, Qual and Test) and has a sleep time of 4. 
        a. When an entry is found, the daemon does (Call "DISPATCHPGM" using
Trigger Data then loops back looking for another queue entry. 
-- History --  This scheme came about because we could not have the GUI
userid and password accessing the DB, they simply have no access! (govt'
thing!) SO this allowed us to set up the next part of the back end process
with the userid and passwords that we needed.
4. Dispatch program looks at the trigger data and determines what action to
take.
        a. All actions are initiated by a QCMDEXC which is a SBMJOB to the
(Prod, Qual or Test) environment, each with its own set of priorities.

We can look at the back end and see that it moves quite nicely into it's own
subsystem. We use the MAXJOBS value as a throttle to allow up to 4 instances
of any of the dispatched jobs.
Also we can see that the GUI moves nicely up to the point where the row is
added to the Trigger table (using ODBC) most time this is quick.

Now I have been asked if there could be a commit cycle that is causing the
problem, but from my point of view there is no DB activity until after the
jobs are dispatched. So my question is there any need (or does it even care)
in the QSNDDTAQ part about commits? Is there any other suggestions anyone
has as to this intermittent delay?

Oh, I should mention that the GUI is in contention for tables but not the
trigger table, the only contention on the Trigger table would be between the
users of the GUI and the dispatched programs. The dispatched programs are
DRDA cross platform 2 phase commit between the AS/400 and the Amdahl. The
Trigger Table is the only table that is updated on the AS/400, all other
tables are simply accessed to gather data to update the mainframe and in
those cases where multiple rows would result, we used data queues instead of
cursor processing to keep things as fast as possible. 

____________________________________________________________________________
_
Howard  Weatherly
        Systems Advisor
Computer Task Group, Inc.

howard.weatherly@dla.mil
howard_weatherly@ameritch.net
Howard.Weatherly@ctg.com 


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.