× 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 12-Sep-2014 14:15 -0500, Gqcy wrote:
On 9/12/2014 2:05 PM, Gqcy wrote:
in our QINTER subsystem, we have an entry:

Seq Nbr Program Library Compare Value
9999 PGMEVOKE QGPL *ANY

and that program does a RTVUSRPRF of INLPGM and INLPGMLIB
and then does a:

TFRCTL &INLPGM.&INLPGMLIB

program and entries were created back in 1987, I am sure it was
just migrated from s/38....

is this process redundant?
if I would remove the routing entry, would the signon process and
job start process work the same?

sorry,
Not _remove_ that 9999 routing entry, but change it to:

Seq Nbr Program Library Compare Value
9999 QCMD QSYS *ANY


So: CHGRTGE SBSD(TheSbsdLib/QINTER) SEQNBR(9999) PGM(QSYS/QCMD)

The effect of the user program PGMEVOKE [as described] is slightly different than what QCMD would effect as a routing program. The differences may not be noticed by any interactive user routed via that Routing Entry (RTGE), even if that change were made. Possibly, no user profile has their Routing Data (RTGDTA) [in their Job Description (JOBD)] that would effect anything other than Program To Call (PGM) being QCMD; in that case, no UsrPrf will notice any difference, because they already experience QCMD as a routing program.

The effects from ensuring QCMD will be the routing program as the catch-all, instead of the user program, are likely only positive [except possibly if the QDSIGNON allows, the change would allow users to start overriding\specifying the Initial Program]. One potential caveat to the currently defined routing program, is that as a catch-all, the routing program does not make any decision based on the job being activated as Interactive versus Batch [or ¿any other job type that uses the routing?]; the Retrieve Job Attribute (RTVJOBA) [or a similar API] for the Job Type (TYPE) indicator variable might be appropriate, given the general assumption that the INLPGM establishes only an interactive environment, to decide if appropriate to even invoke the initial program.

While the user-defined routing program currently does the calling of the Initial Program (INLPGM) just as does QCMD, though the program that is called [actually: program to which control is transferred] will only ever be defined by that INLPGM() attribute of the User Profile. That user-defined program however, does not similarly:
• CALL the initial program, as specified on the sign-in display, or as specified on the user profile if no value came from the Sign-on Display File (SGNDSPF) of the Subsystem Description (SBSD)
• establish\activate the Attention Program (ATNPGM); that can be added using Set Attention Program (SETATNPGM)
• establish the Special Environment (SPCENV); that can be done using Start S/36 Environment (STRS36) [¿only as the effective last request though?]
• set the Initial Menu (INLMNU); that can be done using Go To Menu (GO) [¿only as the effective last request though?]. Using QCMD also allows establishing the Initial Menu specified\overridden at the Signon screen if that capability is defined in that display file.

On a production system, I would ensure [via auditing] that the current catch-all [the /otherwise/] routing entry is not being used, before making that change. If currently the PGMEVOKE in QGPL is being used by anyone for their [interactive] routing, then I would verify with at least someone of those, that they will see no negative effects having made that change; /the change/ in this case, for testing purposes, instead of the Change Routing Entry (CHGRTGE) request to change the Subsystem Description (SBSD), would be done with a Change Job Description (CHGJOBD) request to limit the effect to just those users who would be testing the effects of the proposed change [in advance of the subsystem change], such as probably the request:
CHGJOBD JOBD(TheJobdLib/UsrPrfJobD) RTGDTA('QCMDI')

<http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/rzaks/rzaksintactvjbroutingcontrol.htm>
_Programs that control the routing step_
"To determine the best approach for a particular job, you must first determine which program should control the routing step.

_Using QSYS/CMD for interactive jobs_ - benefits [sic: ed: QSYS/QCMD]
...

_Calling a user program directly for interactive jobs_ - benefits
..."


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.