There would be a trigger program on the database table that's ONLY job is to
enqueue the data. Then the trigger stops. Really fast that way.
You could use the API approach, but I'm guessing that will be slower since
you can stack up as many queue processing programs as needed and tune them
separately from the application.
Triggers are an excellent tool, and should be used, but they must be
carefully designed so the application does not wind up waiting for
synchronous transactions when asynchronous (or nearly synchronous) will do
the job.
Cascading triggers cause massive headaches if the triggers themselves are
not optimized for performance. That's what I was attempting to get to.
Triggers are a loaded gun and you have to be sure of your target, and the
background, before the trigger is pulled.
--
Jim Oberholtzer
Agile Technology Architects
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxx> On Behalf Of Richard
Schoen via MIDRANGE-L
Sent: Friday, January 04, 2019 12:07 PM
To: midrange-l@xxxxxxxxxxxx
Cc: Richard Schoen <Richard.Schoen@xxxxxxxxxxxxxxx>
Subject: RE: Handling Record Change Journal Entries
So would the data queue method you describe be using triggers or the journal
receiver APIs/RCVJRNE to grab the data and stick into a data queue ?
I like the idea of processing entries from a data queue.
I think it sounds like you're not advocating triggers, right ?
Thanks.
Regards,
Richard Schoen
Director of Document Management
e. richard.schoen@xxxxxxxxxxxxxxx
p. 952.486.6802
w. helpsystems.com
------------------------------
message: 4
date: Fri, 4 Jan 2019 11:55:55 -0600
from: "Jim Oberholtzer" <midrangel@xxxxxxxxxxxxxxxxx>
subject: RE: Handling Record Change Journal Entries
VERY STRONG SUGGESTION:
Assuming you want real time but not synchronous in the transaction, and you
don't want to slow down the application process, strongly consider building
a data queue system to accomplish the task.
The Trigger does nothing more than grab the data you want and enqueue an
entry on a data queue. Could be keyed nor not, set up the way you like it.
Now build a data queue processing program that will take a queue entry and
do what you need with it. Many of them could be running so there's no
chance it will fall very far behind if at all.
The trigger moves extremely fast, does not slow down production transactions
and while it's asynchronous it does not feel that way since the data queue
programs keep ahead of the trigger.
Last year I had too many customers implement triggers without thinking it
through all the way and we wound up with transactions that went from
microseconds to many seconds waiting on triggers. Worse, they set up
cascading triggers and really bolixed things up. In one case a series of
cascading triggers ended up causing themselves to fire again, and the system
wound up tight to absolute capacity, causing use to kill the partitions from
the HMC. Bad.
Triggers are wonderful, until they are not.......
--
Jim Oberholtzer
Agile Technology Architects
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.