|
I would use an RPG program that stored the next number in a data area: D Next_Cus_Num S 9 0 Dtaara(Arcsno) /free // Get the next customer number from the data area and // use that as the customer number In *LOCK Next_Cus_Num; Cusno = Next_Cus_Num; // Increment the next customer number and update the data area. Next_Cus_Num = Next_Cus_Num + 1; Out Next_Cus_Num; /end-free -----Original Message----- From: rpg400-l-bounces+flapeyre=stei.com@xxxxxxxxxxxx [mailto:rpg400-l-bounces+flapeyre=stei.com@xxxxxxxxxxxx] On Behalf Of Venkateshwar Sent: Thursday, November 10, 2005 12:48 AM To: 'RPG programming on the AS400 / iSeries' Subject: RE: Only one instance of program. Hi, The program that generates the number is a CL program that uses a combination of Julian date, time and some alphabets to generate a alphanumeric combination. I guess as you have suggested the best idea will be to have a lock on some AS400 object as soon the CL program is called and place a lock on the AS400 object. As soon as I am finished with generating the number release the lock. If the program is called simultaneously by some other application it will wait till the lock gets released. So there will be a time gap and we can ensure that the combination generated is unique. Thanks for the suggestion. Regards, Venky -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of HauserSSS Sent: Thursday, November 10, 2005 11:45 AM To: RPG programming on the AS400 / iSeries Subject: AW: Only one instance of program. Hi, do you use access to a file to generate the number? If yes, is the file only used in this program? If yes, you can allocacte the file at the beginning of the program, before opening it. And deallocate it at the end of the program. We solved such problems with 2 small CL-Programs. In the first program we simply try to allocate a data area for exclusive access. In the second program we deallocate the data area. In the program (that only can run once), we first send a scope message (QMHSNDSM) to make sure that the "END"-program will be executed at normal or abnormal program end. After we call the allocate program. We loop around this call until the program will not fail anymore. Here an example (sorry it's old RPGIII): IP$SCOP IDS I I '*CSE' 1 10 P$ART I I 'LL0400CE *LIBL' 11 30 P$QPGM I 31 32 P$DATA I B 33 360P$SCDT I 37 40 P$MKEY I 41 50 P$ERR *--------------------------------------------------------- C Z-ADD1 P$SCDT C CALL 'QMHSNDSM' C PARM P$ART C PARM P$QPGM C PARM *BLANKS P$DATA C PARM P$SCDT C PARM *BLANKS P$MKEY C PARM *BLANKS P$ERR * * ALLOCATE DATA AREA FOR UNIQUE ACCESS C *IN99 DOUEQ*OFF C CALL 'LL0400CA' 99 C ENDDO Birgitta -----Ursprungliche Nachricht----- Von: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]Im Auftrag von Venkateshwar Gesendet: Mittwoch, 9. November 2005 12:37 An: rpg400-l@xxxxxxxxxxxx Betreff: Only one instance of program. Hi, Is there anyway by which I can ensure that only one instance of a program is running? This program generates a number and there is chance that it can be called by 2 programs to generate number and there is a chance both can get same number. Regards, Venky. Confidentiality Notice The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify the sender at Wipro or Mailadmin@xxxxxxxxx immediately and destroy all copies of this message and any attachments. -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l. -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l. Confidentiality Notice The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify the sender at Wipro or Mailadmin@xxxxxxxxx immediately and destroy all copies of this message and any attachments.
As an Amazon Associate we earn from qualifying purchases.
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.