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



Programs and service programs both require Activation (
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/ilec/activa.htm)

Activation performs the following functions:
- Allocates and initializes the static data needed by the program or
service program
- Resolves imports to runtime addresses of the corresponding service
program exports.

There is overhead involved in activation.

However, true ILE program and service programs remain active till the
activation group ends. RPGIV programs with DFTACTGRP(*YES) end when the
program returns with LR=*ON.

By default, any service program needed are activated when the program
needing them is activated. However, IBM added an enhancement to the
BNDSRVPGM parameter... BNDSRVPGM(MYSRVPGM *DFER) that defers the activation
of a service program till a procedure in it is called. It's only an issue
when you've got lots of service programs being used.

From a performance standpoint, simply stay away from ACTGRP(*NEW).

When starting out..
PGMs
DFTACTGRP(*NO) ACTGRP(MYCMPNY)

SRVPGMs
ACTGRP(*CALLER)



Charles

On Thu, Feb 2, 2017 at 8:49 AM, Duane Scott <dscott@xxxxxxxxxxx> wrote:

Ok. Some clearer. But I sometimes need to sleep on things awhile when
there is nobody to hit me over the head with clear examples.

Situation: I have a single $ figure that would be obtained from one of
three files depending on several factors, say 3 or 4. I could use a
procedure to obtain the $ figure in a display program for the user benefit
and in a batch process that MAY need the $ figure on each of many records
but not all.

I can see a bind by reference being the best for the display program, but
would it also be best on the nightly process? Once invoked, would the
referenced procedure become part of the job or each instance of need be
"loaded" into the job and cause additional overhead during the run? (Does
this even make sense, or am I not seeing the picture at all?)

duane

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Bradley Stone
Sent: Thursday, February 02, 2017 10:15 AM
To: RPG programming on the IBM i (AS/400 and iSeries) <
rpg400-l@xxxxxxxxxxxx>
Subject: Re: Procedure Examples VR7.1

Duane,

Service Programs vs Modules is one of those things that is very dependent,
I feel, upon where and how it's used.

If I'm writing code for a shop for our custom software, I'll most likely
use service programs (bind by reference) for most of the functions.

If I'm writing code to be distributed (as I do as an ISV) for most of the
internal functions I use modules (bind by copy).

For functions I want to make available to customers I use service programs.

Even YAJL I'm now using as bind by copy. Scott and I ran into an issue
with my software vs Help systems using different versions of the service
program. I had anticipated this earlier and made the latest versions of my
software that use YAJL bind by copy. The customer installed the new
version of my software and things were honky dory again.

Never say never. Never say always.

Bradley V. Stone
www.bvstools.com
Native IBM i e-Mail solutions for Microsoft Office 365, Gmail, or any
Cloud Provider!

On Thu, Feb 2, 2017 at 8:25 AM, Duane Scott <dscott@xxxxxxxxxxx> wrote:

Whoa. Wait! Not understanding this concept.

I bow to the experts on this as I'm most assuredly not proficient, but
I need clarification and pictures and diagrams (yes, I'm that old).

I'm fairly understanding of how procedures work, but I've not been
able to sit down with someone who uses it in a working environment.
Can you elaborate on the "Bad, bad thing to do." (More specifically)
what is it that is bad and why?

Duane

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Alan Campin
Sent: Wednesday, February 01, 2017 4:53 PM
To: RPG programming on the IBM i (AS/400 and iSeries) <
rpg400-l@xxxxxxxxxxxx>
Subject: Re: Procedure Examples VR7.1

As you note, I use the Service program name. Obviously easy if you
know the service program name to find the module it is in and usually
a service program only has one member anyway and please never bind the
same module to multiple programs or service programs. Bad, bad thing
to do. Create service programs.
CONFIDENTIALITY NOTICE: This electronic message transmission is intended
only for the person or entity to which it is addressed and may contain
information that is privileged, confidential or otherwise protected from
disclosure. If you have received this transmission, but are not the
intended recipient, you are hereby notified that any disclosure, copying,
distribution or use of the contents of this information is strictly
prohibited. If you have received this e-mail in error, please contact NALC
Health Benefit Plan at 703-729-4677 and delete and destroy the original
message and all copies.
--
This is the RPG programming on the IBM i (AS/400 and 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.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.