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



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


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.