× 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.



A Tale of Two Cities:

We're having difficulty with object contention on very active journals and
receivers.  We have an RPGLE history program writing hundreds of thousands
of records to a history file under commitment control.  The journals are set
up strictly for commitment control.  The file is journaled to a journal with
journal receivers managed by and deleted by the system.  Originally a single
job stream generated all the history.  We recently split the job out into
multiple concurrent streams, each writing records to the file at the same
time.

All this bulk writing to the database burns up journal receivers at an
incredible rate.  Every 1 - 2 minutes the system adds a new receiver.
Receivers are deleted at about the same average rate, but they usually are
deleted 5 or 6 at a time as a COMMIT occurs (every 10,000 records, per job).
At least once during the process we'll get an error.  It starts with:

CPI70E5  Journal or journal receiver not available.

One of the QDBSRVxx jobs gets this message.  We get these all the time.  The
second level text says that due to object locks the system couldn't figure
out whether the journal has system maintained receivers, and that it will
try again in 10 minutes.  The problem is that the journaled bulk writes fill
up the receiver and the next receiver has not be created by the system.  So
we get:

CPA7090  Entry not journaled to journal IPBLK in MRCARC. (C R)

One or more of the RPGLE job streams gets the message because it's trying to
write records and it can't journal the write.  Usually within 10 minutes of
the CPI70E5 we can retry the CPA7090 and the stream continues, because the
database server was eventually able to add a new receiver.

We've tried enlarging the receivers so that they aren't created and deleted
as frequently, in order to reduce object contention, but it hasn't helped.
Frankly I think that the CPI70E5 has got to be some sort of legacy fix from
IBM.  It seems a bit half-assed for system managed journals to say "I can't
figure out if I'm supposed to add a receiver, so I'll check back in 10
minutes".  Since the database server issue is not synchronous with the batch
program error it's difficult to make our code anticipate or react to the
situation.

I'm wondering if anyone has had similar problems with journaling on very
busy databases.  Before I try reducing (or adding) the number of records to
a COMMIT I'd like to see if anyone has a strong feel for whether it would
help.  Also, our journals are not in their own ASP.  Splitting them out is a
big job.  I've heard conflicting stories as to the benefits.  The strategy
is supposed to reduce contention between the data and the
journals/receivers.  It seems to me that my problem is contention among the
journals and receivers themselves.

Any suggestions or anecdotes?  Much thanks in advance for your help.

-Jim

James Damato
Manager - Technical Administration
Dollar General Corporation
<mailto:jdamato@dollargeneral.com>


+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.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.