On Nov 15, 2019, at 5:39 PM, smith5646midrange@xxxxxxxxx wrote:
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
STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*NO) SIGNATURE(*GEN)
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.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.