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



On Wed, 2008-11-19 at 11:51 +0000, John McKay wrote:
The reference number must be generated and written to the client and archive
files in sequential steps, with no other steps in-between.

Are the two jobs identical?

What are these jobs?

Did you find out why one took sooo long?

John,

Obviously, it could be "just luck". Alternatively, there may be an
unrecognized synchronization mechanism. For a made-up example, both
jobs might wait for a record which a third job unlocked early in
10:41:57. Of course, David's fix, if he wants one, does not really
depend on the difference.

<aside> I have occasionally, when generating sequential numbers, relied
on record locks to serialize sections of code. It works acceptably in
an environment with low transaction volumes. <aside />

Cheers,
Terry.

Regards,
John McKay
www.mckaysoftware.ie
www.rpglanguage.com

----- Original Message -----
From: "David FOXWELL" <David.FOXWELL@xxxxxxxxx>
To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
Sent: Wednesday, November 19, 2008 11:17 AM
Subject: RE: problem with duplicate records


Sorry, the contents of my file are misleading. The time isn't part of the
reference number.

ArchiveFile
Product Client Ref Time
Product1 Client1 RefNo1 10:41:57
Product2 Client2 RefNo1 10:41:57


Summing up, 2 jobs writing to the same file. One job is quicker than the
other. The first job calculates the data to write, tests to see it doesn't
already exist and writes the data. In RPG, how should we prevent another job
from doing the same and writing the same data before the first one?


-----Message d'origine-----
De : rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] De
la part de David FOXWELL
Envoyé : mercredi 19 novembre 2008 09:33
À : RPG programming on the AS400 / iSeries
Objet : problem with duplicate records

Hi,

Two users have managed to create the same archive reference number while
creating two different clients.

Like this :

ArchiveFile
Product1 Client1 RefNo1 10:41:57(time)
Product2 Client2 RefNo1 10:41:57

The program would crash if the problem occurred with the same product. As it
is 2 users in different services created the records at the same time.

The user enters the client details and hits the enter key.
The program writes the client to the client file then calls an external
procedure to find an unused archive number then write this number to the
archive file.

The client files look like this
Product1_clients
Client1 created at 10:41:53

Product2_clients
Client2 created at 10:41:56

I'm assuming that the creation of client1 took so long that the creation of
client2 caught up. The same time in the ArchiveFile is just a hazard.

I can think of ways to fix it, but I'd rather ask what are we doing wrong?

Thanks.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.