I posted the original email below to the RPG list a little over a week ago and go no responses so I’m trying this list.
I did some additional digging while waiting on a response and here is where I am at. Remember that I inherited this so don’t blame me when you see something stupid in my descriptions. 😊
Each program that is bound to the service program has it’s own binding directory. Don’t ask why they did this because I don’t know. For the most part, the only entry in the binding directory is the service program. The entry shows *SRVPGM and activation *IMMED.
The QSRVSRC source for the service program contains the line
which if I understand correctly, this causes the service program to be created with a signature of all zeros which it does have. Don’t ask why they did this because I don’t know.
Now here is where I am stuck.
I modified one of the functions and when I called it, I got the previous results, not the new expected results. I tried adding a DSPLY in the code and it didn’t display. I recompiled the calling program and the DSPLY displayed. I changed the service program again to change the DSPLY statement and when I ran it, I got the old DSPLY statement.
Thinking this might be caused by the previous version of the service program being moved to QRPLOBJ, I tried deleting the module and the service program and recreating both but the only way I can get the calling program to call the new version of the service program is to recompile the calling program. This confused me. Out of curiosity, I deleted the service program and the module and called the program expecting it to fail. It did not. This defeats everything I thought I understood about service programs.
What did I miss? Before anyone asks, this is proprietary source and I can’t post it.
From: smith5646midrange@xxxxxxxxx <smith5646midrange@xxxxxxxxx>
Sent: Monday, November 4, 2019 1:27 PM
To: 'RPG400-L' <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx>
Subject: Changing a service program
I apparently worked too many hours over the weekend because I am brain dead and can’t think through this. Either that or the drugs from my rotator cuff surgery are getting the better of me.
We have a service program that is used by a couple dozen RPGLE programs that call one or more functions in it and I need to modify one of those functions. It seems like I need to do something special when creating the new version of the service program so the other programs can call the new version of the function without generating an error but I just can’t remember how this all ties together. I don’t want to touch the other programs in any way to do this.
Thanks in advance for providing some extra brain power.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2022 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
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.