Chris

> > [1] Your presentation doesn't actually mention a SCHEDxx entry as an
> > alternative to or override for a PPT entry - tut! tut!.

> Erm... tut me no tuts! PPT entries are defined in SCHEDxx.

Erm. How about actually adding some value to the "correction" rather than 
merely highlighting an obvious contraction that became inaccurate as a 
consequence?

What I should have said - as, grey beard that I believe you are, you should 
have seen instantly - is the following:

"Your presentation doesn't actually mention a SCHEDxx PPT entry as an 
alternative to or override for a PPT module entry."

If you had taken a bit more trouble with your post, you might have offered 
something like this as the "correction" instead of just the sort of 
point-scoring 
beloved by "Dr No" - who has recently got himself taken of someone else's 
Christmas card list as well as confirming his absence from that of another of 
the "usual suspects".

Assuming you have been following the thread with the disingenuous 
subject "Really dumb IPL question" of which this subthread is a part, you 
would have seen that I got the point over with greater accuracy on 29 Sep 
2010 in the form of the following:

> ... > ... specific "attributes" set using an entry in the PPT module, 
> possibly 
overridden by a PPT entry in the SCHEDxx member of SYS1.PARMLIB, ...

The purpose of my comment this time and before was to point out all the 
places where these "attributes" associated with a program are to be found. 
Previously the poster had ignored the IEFSDPPT module PPT entries

>...> ... is to have its program controlled by the PPT (SCHEDnn member of 
PARMLIB) to set specific attributes ...

or, now I look at it again, may have had both the IEFSDPPT module and the 
SCHEDxx member in mind but was just not as clear as I would wish. I had 
assumed that, this time, the SCHEDxx member not being mentioned, that the 
IEFSDPPT module was being promoted to the detriment of the SCHEDxx 
member. The truth is more ambiguous since the term "PPT entry" as used in 
the presentation material can apply to both. Who knows, Edward may have 
had the SCHEDxx member in mind and have forgotten all about the IEFSDPPT 
module - possible but unlikely I expect.

Being presentation material without attached notes, it may also be that the 
PPT story was explained clearly but verbally during the presentation. If this 
is 
the way it was done I, of course, unreservedly remove my "tuts". 
Nevertheless I suggest that adding a line item in the presented page the first 
time PPT is mentioned along the lines of

* Either as an entry in the IEFSDPPT module of SYS1.LINKLIB[1] or an entry in 
the SCHEDxx member of SYS1.PARMLIB

is in order.

Not, of course, for your benefit or Edward's, it may be worth covering the 
point at some stage that the reason there are two places where 
these "attributes" can be specified - statically! - is because the MVS 
developers imagined that they didn't need to bother making something they 
could very well ram down the users' throats something with which they could 
easily mess. Wrong - as always. I remember well having not only to zap bits in 
the IEFSDPPT entries but also to fiddle with the object module size in order to 
add entries.[2] What a messy way of going about things - almost as bad as 
changing the "TCP/IP for MVS" "high-level-qualifier" in the early days of the 
product.

-

But you have managed some "added value" by pointing out that, in addition to 
being able *statically* to specify at least the CANCEL/NOCANCEL "attribute", 
you can specify "attribute(s?)" *dynamically*. Unfortunately I can't quite 
follow whether this is an usual or an unusual step to take and hence how 
common a problem it might be. I would expect that because of the esoteric 
nature of the programming involved it would be lie on the *unusual* side.

What this means for automation is that, in preparing to support the 
management of any particular program's address space, having found no 
MODIFY,(shutdown) or STOP option, you might well discover the appropriate 
way to manage shutting the program down is CANCEL or FORCE ARM by 
checking the IEFSDPPT module and the planned SCHEDxx member. However at 
the absolutely unavoidable testing stage, you might find that the developer 
has played the tricky card of setting NOCANCEL dynamically - or, there being 
no limit to tricky programming or programmers, of resetting to CANCEL!

-

> Note that if an address space is marked non-cancelable, there's usually a 
good reason.

The developer who passed the requirement on to the developers managing the 
IEFSDPPT module for a particular release of these days z/OS may have 
***imagined*** he - or she, the female of the species is equally likely to get 
it wrong - was asking them to set up the NOCANCEL bit for "a good reason". 
There is no guarantee whatsoever at all in this world that he or she actually 
understood what he or she was doing. It may be a good idea to set the 
requirement "in stone" in the IEFSDPPT module or it may not. It may actually 
have been better to have the possibility documented in the appropriate 
manual as a specification in the SCHEDxx PPT entry and actually - shock, 
horror! - let the user - belonging to the organisation actually *paying* for 
the 
product - decide.[3]

Of course, I have a particular example in mind: the Communications Server 
(CS) TN3270E server program, newly released from the confines of the main 
address space into its own address space at the time of z/OS V1R6 and 
imposed at the time of V1R9.

I imagine - to some extent have heard from reliable sources - that what 
happened here is that, having "gone to town" on the possibilities for 
customising the TELNET statements - statements such as LUMAP - some 
customers with bulging wallets severely compromised the structural integrity 
of the table at which they were sitting opposite their IBM representatives 
regarding not having to process this mass of customisation every time they 
needed to restart the main CS address space - particularly in an emergency 
with end-users frustratedly pounding keyboards.

Unfortunately the CS IP developers imagined that this applied to *all* users of 
CS IP and so just copied the PPT "attributes" from the entry for CS IP main 
address space program to the entry for the TELNET address space program 
(the TN3270 server) - except the requirement for "all private area sort-term 
and long-term fixed pages assigned to preferred (nonreconfigurable and non-
V=R) storage frames" to which requirement it would appear some thought was 
actually given.

The "requirement" they did *not* consider sensibly was the 
NOCANCEL "attribute". For those customers with the sore fists it indeed made 
sense not to include the program for the newly liberated TELNET address 
space in the AUTOLOG list - an action usually undertaken for any server 
program since the beginning of recorded time - but what about the less vocal 
majority?

It's possible to divine what happened by checking the CS IP Configuration 
Guide.

In V1R6, the separate address spare for the TELNET program is introduced. 
Interestingly enough the imposed PPT entry (in IEFSDPPT, of course) is 
described as follows in the section 2.2.1.1.5, "Telnet in its own address 
space":

<quote>

The MVS default program property table (PPT) has the Telnet module set up 
as privileged, non-swappable, non-cancelable, running in key 6, and system 
task. These settings give Telnet the same priority as the TCP/IP stack. Either 
privileged or system task cause the started job to be assigned to the SYSSTC 
service class. The priority can be changed by assigning the job name to 
another service class within the STC subsystem.

</quote>

The equivalent text in V1R7 is expanded in a very interesting way. Can anyone 
detect a whiff of cordite?:

<quote>

The MVS default program properties table (PPT) has the Telnet module set up 
as privileged, non-swappable, non-cancelable, running in key 6, and system 
task. These settings give Telnet the same priority as the TCP/IP stack. Either 
privileged or system task cause the started job to be assigned to the SYSSTC 
service class. The priority can be changed by assigning the job name to 
another service class within the STC subsystem.

Tip: The default PPT entry sets the TN3270 server to non-cancelable. As a 
non-cancelable application, the TN3270 server should not be started 
automatically by a TCP/IP stack using the AUTOLOG function. If the TCP/IP 
stack is recycled, the following messages will be issued repeatedly:

N 0140000 SA6I     2005147 04:59:27.69 STC07087 00000084  EZZ0621I 
AUTOLOG FORCING IBMTNSI0, REASON: TCP/IP HAS BEEN RESTARTED
NR0000000 SA6I     2005147 04:59:27.71 STC07087 00000080  IEE838I 
IBMTNSI0          NON-CANCELABLE - ISSUE FORCE ARM

To prevent this, specify NOAUTOLOG on the PORT reservation statement as 
follows:

PORT      23 TCP TN3270D  NOAUTOLOG  ; TN3270 server

</quote>

Is there any mention of now dealing with the requirement of managing the 
TELNET address space some other way? Well, no!

Of course - trying now to be as polite as possible but under enormous strain - 
the ladies and gentlemen developers and authors appear to have understood 
that those customers who actually needed the separate address space 
because of their burgeoning generally TN3270 definition statements would not 
for a moment consider putting their new TELNET address space program in the 
AUTOLOG list. However did they try to understand those customers who are 
just "going with the flow" and who have tamely set up this new address 
space - like mountaineers climbing Mount Everest - simply because "it is there" 
quite reasonably assumed - either because their eyes glaze somewhat when 
faced with descriptions of a PPT entry or because they didn't appreciate the 
connection between "non-cancelable" and the AUTOLOG mechanism - that, 
just like all their other server address spaces since Noah found dry land[4], 
the new server should be set up in the AUTOLOG list - and NOAUTOLOG should 
*not* feature in the associated PORT statement entry?

In other words the remedy for customers who actually saw some merit in the 
traditional approach to the appearance of a new, independent, no 
longer "internal client" (INTCLIEN), server was ***NOT*** to suggest 
discontinuing the AUTOLOG means of automation but to get rid of the - in the 
case of this "less vocal majority" of customers - pesky <expletives deleted> 
NOCANCEL "attribute" and to create a SCHEDxx PPT entry - as follows:

PPT PGMNAME(EZBTNINI) CANCEL KEY(6) NOSWAP PRIV SYST

I hear myself saying to those responsible for that so-called "Tip": "There now, 
that wasn't too difficult, was it?"

Checking on following releases, the manual authors keep fiddling with 
this "Tip". One might just suppose that there is a some failure of 
communication - too many links in the chain perhaps - where there are 
complaints recorded regarding this topic and that the "Chinese whispers" 
distort the complaints such that the attempted corrections do not address the 
real problem - or issue!

In the next release, V1R8, the instruction to specify NOAUTOLOG on the PORT 
statement entry for the TELNET address space program has mysteriously 
disappears!

In V1R10, there is a "clarification" which is to change

"If the TCP/IP stack is recycled, the following messages will be issued 
repeatedly:"

to

"If the TCP/IP stack is recycled, the stack tries to cancel and restart all 
AUTOLOG applications. A non-cancelable application does not end and the 
following messages are issued repeatedly:"

-

Now, just to be clear, with the specification of the SCHEDxx PPT entry above 
which specifies precisely the same as the IEFSDPPT entry for program 
EZBTNINI with the sole exception of NOCANCEL changed to CANCEL, it is 
possible to support the address space running the TN3270E program just like 
server address spaces have always been supported using the AUTOLOG 
mechanism. QED.

Chris Mason

[1] I couldn't recall whether IEFSDPPT was a CSECT or a module (or possibly 
both) and whether it was to be found in SYS1.LINKLIB or elsewhere so I 
checked in the V1R12 bookshelf for "IEFSDPPT" and found the following very 
helpful section in the z/OS V1R1 Distributed FileManager Guide and Reference, 
SC26-7395-01, manual:

<quote>

3.4.3 Verifying PPT Entries for Distributed FileManager

To execute correctly, DFM must have entries in the system program property 
table (PPT). These entries are automatically included in the base PPT for your 
installation (system LINKLIB member IEFSDPPT). If the need arises to override 
this base PPT, you can add the entries to system PARMLIB member SCHEDxx 
(for example, SYS1.PARMLIB(SCHEDxx)). For a sample of the entries, see 
Appendix I, "PPT Entries for Distributed FileManager" in topic I.0. PARMLIB
(SCHEDxx) members for these sample entries should not be created without 
prior discussion with your IBM service representative. 

</quote>

[2] Wasn't that part of IMS installation long, long ago?

[3] Since we appear to be in the business of "amusement and reading 
pleasure", here's something I found while trying to check whether IEFSDPPT 
was a module or a CSECT:

z/OS V1R12 Communications Server, IP Messages: Volume 4 (EZZ, SNM), 
SC31-8786-13

<quote>

EZZ9299E RESOLVER INITIALIZATION FAILED - RC rc RSN rsn

...

Return code (decimal): 12

Reason code (hexadecimal): 00000000

Explanation: MVS PPT entry for EZBREINI is missing  or incorrect.

Corrective action: Ensure that IEFSDPPT was correctly installed, and that 
there have been no SET SCH=xx commands entered that would override it, 
and restart the Resolver.

</quote>

As is said in what where I sit is mainly an adjacent "geography":

"Vertrauen ist gut, Kontrolle ist besser!"

If it is possible to manipulate the PPT entry in storage dynamically, shouldn't 
the clever folk responsible for the CS IP Resolver simply have made good any 
damage they found? Perhaps it's necessary that there is already a control 
block in place which it seems logical might not be the case if no IEFSDPPT 
entry was defined or no SCHEDxx PPT entry was defined. However your logic 
snippet implies that there always is a "CSCB" with which to tinker. I guess 
another problem could be that it may not always be a good idea for the 
program to have the necessary authority to meddle.

[4] Actually it was probably a bit wet, but at least it was land.

On Wed, 6 Oct 2010 23:25:10 -0500, Chris Craddock 
<[email protected]> wrote:

>On Wed, Oct 6, 2010 at 9:45 PM, Chris Mason <[email protected]> 
wrote:
>
>> Edward
>>
>> I detect some failure properly to make an effort to understand the point
>> *I*
>> was trying to make!
>>
>> <snip>
>> [1] Your presentation doesn't actually mention a SCHEDxx entry as an
>> alternative to or override for a PPT entry - tut! tut!.
>>
>
>
>Erm... tut me no tuts! PPT entries are defined in SCHEDxx. In any case I
>submit for your amusement and reading pleasure the following brute-force
>alternative that doesn't require a PPT entry at all. It assumes certain
>things about the environment and current state that I won't bother to
>enumerate but suffice to say this, or something close to it is far more
>likely to be used by the ISV cognoscente. So the idea of rattling through
>the PPT would likely leave non-cancelable ISV products undiscovered.
>
>
>         L     R1,PSATOLD              -> Current TCB
>         USING TCB,R1                  TCB map
>         ICM   R1,7,TCBJSCBB       -> JSCB
>         USING IEZJSCB,R1           JSCB map
>         L     R1,JSCBCSCB           -> Current CSCB
>         USING CHAIN,R1              Map CSCB
>         NI    CHACT,255-CHCL      Mark this STC non-cancelable
>
>(there's another bit elsewhere that makes the address space non-forceable
>too, but I probably shouldn't elaborate on that) Note that if an address
>space is marked non-cancelable, there's usually a good reason. Issuing FORCE
>(with or without ARM) against an address space in that condition should
>rightly be seen as loading the gun and aiming it at your foot. If you're
>lucky you'll miss.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to