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



On 03-Feb-2014 12:45 -0800, Gary Thompson wrote:
I have program clle_1 currently in pilot, and am reviewing
activation group design to get correct function with good
efficiency.

One concern is file updates made by program sqlrpgle_1 must be read
by programs sqlrpgle_2 and sqlrpgle_3.

clle_1 runs as a (almost) never-ending program, meaning it
runs in a loop for about 24 hours, ends and re-starts minutes later.

<<SNIP>>

My new activation group design:

Leave clle_1 set to *DFTACTGRP

Change sqlrpgle_1 from activation group QILE to *NEW
(to force updates to be "posted", assuming that with a *NEW
activation group, when sqlrpgle_1 returns with LR=*ON, file
updates "take effect" similar to FEOD ?)

Change sqlrpgle_2 from activation group *NEW to *CALLER,
Different than the *NEW activation group created by sqlrpgle_1,
for same reasons mentioned for sqlrpgle_1.

That is a combined total of some 1,400 activation group
create/delete steps per day.

All suggestions/comments gratefully welcomed . . .

IMO, definitely avoid CLLE_1 using DFTACTGRP(*YES); esp. given any invoked [esp. service] programs having ACTGRP(*CALLER).

I would create CLLE_1 with a named activation group, and create each of the other called programs named SQLRPGLE_# either to have ACTGRP(*CALLER) or to have a named activation group that could be either the same or different than the name chosen for CLLE_1. If the SQLRPGLE_# are created with *CALLER as their activation group, then creating the CLLE_1 with its named activation coming from ACTGRP(*NEW) is little different than an explicitly named activation for CLLE_1 [given CLLE_1 is the first program in the stack and the only place that program will appear in the stack; i.e. not called again\recursively]. Whether the system generates the name of the activation at run-time or whether the name is given explicitly at creation-time, is immaterial in that scenario. However whether that scenario matches the given scenario is unclear, for lack of a definition of how the application starts and re-starts.

The visibility of the changes to the data, as performed by the SQL, remains the same, irrespective the value of *INLR upon RETURN. The choice of whether to set *INLR=*ON should be based on the desired effects for the non-SQL processing of the RPGLE; e.g. if some non-SQL file opens would benefit from being able to use the same ODP rather than effecting a full-open on each of repeated invocations.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.