Chris > IBM does continue to "use" IEFSDPPT for some things that only take effect at IPL time. However that isn't terribly flexible or useful for anyone else, so I stand by the term "archaic".
We may have to leave our readers to decide whether something which stands a strong risk of being changed with each release of z/OS is "archaic" or not. > I don't know much about Communications Server in particular, ... This could be the source of a lot of misunderstanding. I will try to compensate for this deficiency where necessary. > ... but I do know a little bit about z/OS internals and systems management products in general. It's at the heart of my irritation in having NOCANCEL "imposed" that the Communications Server (CS) IP component has its own generally effective quite simple - some may say simplistic - bit of "systems management" support. > I can't comment about whether the CS components really need to run with NOCANCEL. We - at least I - am discussing a particular CS component, the actually misnamed TN32760E server program, misnamed because it also supports raw TELNET as well as 3270 TELNET. > I *can* comment on the technical reasons why a server address space might need to run that way. And your comments are well received. > I don't know whether the TN3270E server has those attributes or not. The TN3270E server acts as a cross-over point for a TCP connection - acting as a "listening" server - to an SNA session - acting as a secondary logical unit (LU). When supporting an appearance as a 3270 device to an application such as CICS or TSO using the VTAM API the data supported throughout is the 3270 data stream. This is a quite simple task to perform and these days - in sharp contrast to its early days - is supported by parameters controlling every last aspect of the operation of this cross-over point. There are only two APIs involved: the VTAM API is very straightforward and the TCP API is very straightforward. There are no references to other address spaces.[1] I am not aware of any parameters which indicate that anything very special is happening which could suggest any special use of MVS interfaces. For example, CICS requires a particular VTAM specification, SRBEXIT=YES, on the APPL statement which indicates striving for a performance advantage. It can't be guaranteed, but I would expect any striving for performance advantages by employing - let us call them - the more advanced MVS facilities could very well show up somewhere in the definitions for the TN3270E server. On balance, I deem it most unlikely that anything is to be found in the now separated TN3270E program logic other than straightforward use of the two APIs. > Do you? Questioned address already if not definitively answered. I think I'll see if I can't get it answered through some contacts I still have - and maybe the IBMTCP-L list - somewhat along the lines of "What MVS facilities does the TN3270E server use which could justify NOCANCEL?" - and hope the developers don't see or hear the blade falling! > Or more directly, do you know for sure that they don't? As above. > And does it really matter? Oh yes it most certainly does - or I wouldn't be spending anything like so much time discussing it and taking up so much or your valuable time as well - and that of and those still following with baited breath. This is where being familiar with the CS IP component is rather important. It's all in this paragraph from my earlier post: >...> 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? We are not talking about operators entering a CANCEL command here - as if they dare! We are talking about the AUTOLOG function in the CS IP component which is a crude but effective subsystem management function there to try to guarantee that a server program address space is always running to handle clients. The CS IP component checks that the TCP "listen" port is working. If it is not, there being no provision for individual instruction over how to shut down the server program in an address space - a deficiency you may say and I may even agree with you - a CANCEL command is used. This AUTOLOG function operates only when the name of the server started task procedure is present in the AUTOLOG statement list. Normally a customer will put any server started task procedure name in this list where the nature of the program, a server according to the traditional client-server model, is to take a client's request, get on with it and end the transaction. If the server is not "listening" on the TCP port which the clients use to initiate a transaction, it is a waste of (address) space! As such it needs to be flushed out of the system and set up afresh - according to the simple concepts behind the AUTOLOG list which customers have, by and large, found satisfactory for the best part of 20 years. Oh yes, it really matters! > ... but I can tell you that those big-gun decisions are never made by accident. I already explained that the "accident" was because there was a split of function and the decision needed to be made positively to make a change from NOCANCEL to CANCEL. It was an "If we can't see that it's broke, we ain't goin' to fix it!" lack of decision. That's an "accident". I believe your concept is that, there is only a decision to set NOCANCEL, the default being CANCEL. That may not be so in every case - as I explained - please take the trouble to read what I say very carefully. It all there already! > Giving users a "choice" between things they don't really understand isn't really being helpful to them. Supposing that the user isn't going to understand looks like the sort of overweening arrogance I suffered at the hands of Sterling so-called Commerce. It was absolutely beyond their comprehension that a mere user could actually - unimaginable shock, horror - know as much or more about the interface they were misusing as they - actually the support folk, not even the misguided developer him/herself - did. > But if making the wrong choice can lead to a system outage (or worse) why would you want to have the user make that choice? Quite clearly and obviously not. However, crediting the user with some intelligence that - shudder - might even exceed that of the developer him/herself and if an enterprising user has the opportunity to make the choice, it's as well to explain why such a choice should not be taken and even do what the CS IP Resolver component appears to be doing which is having a peek at the relevant bits and putting out a polite message about a wrong choice having been made - somehow. > The garden variety things that server address spaces tend to do are likely to result in dependencies between the server space and its clients. You've hit on a problem with terminology here and "TCP/IP for VM", its successor product "TCP/IP for MVS" and now the CS IP component, all assist with enriching that confusion. With these IP-based products running in VM and MVS, there are two "flavours" of the "client-server" model: 1. The traditional client-server model strongly in the IP context and less so in the SNA context involves a communication path between the client and the server over a communication medium - and may very well involve geographical separation. 2. The CS IP component - and the "TCP/IP for whatever" products - also operate a client-server model where there - ignoring recently introduced complications - is a single SERVER address space which controls what might be described as kernel functions such as driving interface, managing the routing table and supporting the APIs, especially in the latter case, operating TCP. There are now a number of CLIENT address spaces which depend on the SERVER address space. The TN3270E program operates as a server according to "flavour" 1 and a CLIENT according to "flavour" 2. It is actually because of this "flavour" 2 role that the TN3270E function used to be described as an "internal client" (INTCLIEN) before it was separated from the main CS IP address space. I'm not even sure that clarification was really necessary. Anyhow with that clarification mind, I hope you can see that there is nothing special in the relationship between the TN3270E server program and the main CS IP address space and that the server program needs only to use the documented API to be a TCP server. Do recall that, until UNIX System Services came along to cause the odd complication with some of these server functions, all the "TCP/IP for MVS" and CS IP component server address spaces and many still today are perfectly happy to be controlled through the AUTOLOG function and, also still today, the documentation steers the user to managing these server address spaces using the AUTOLOG function. > If you blow away the server you're very likely to leave the clients in a damaged state. What I have just explained means that the rest of your paragraph is irrelevant. According to "flavour" 1, the clients will suffer communication timeouts which you may be sure is "par for the course". According to "flavour" 2, the server is indeed vital but is *not* the server we have been talking about but the CS IP address space which I am perfectly happy can retain its NOCANCEL status until the crack of doom. > An impatient operator with an itchy trigger finger ... I am not concerned with real human operators with any sort of finger complaint. rather I refer to a generally handy piece of crude but well-tried automation which seems to fit the context in which it is used, namely that of the CS IP AUTOLOG component. > If I'm responsible for providing that functionality then minimizing the risk > of disaster seems to me not to be the arrogant thing to do, but rather the prudent thing to do. I'm unclear how I could have led you to consider I might have suggested otherwise. The arrogance is in not troubling to explain why something is necessary when you should be aware there are benefits to be had from not having that something. Or maybe there is no actual reason? Not in your case obviously since I'm sure you do not set restrictions lightly - but I mistrust the CS IP developers in the case of the TN3270E server and I'm pretty sure they got themselves into a corner and having dug a small hole, found themselves digging a bigger one - madly mixing metaphors! > Why are we even debating this? Because many a customer would be delighted to be able to use the well- regarded AUTOLOG function for the TN3270E server as well as for all his/her traditional server functions among which the newly liberated TN3270E server fits well. Please take the trouble actually to read my earlier posts. As I indicated in my previous post, there is a subset of customers who will want not to have operators cancelling the TN3270E address space because it just takes sooooo long to get started and it may not be necessary also to have a restart of the TN3270E server address space. The consideration here is not so damaging the system that an IPL is needed to resolve the mess but possibly to allow the user community to become productive more quickly following an unplanned failure of the main CS IP address space. For this subset of customers judicious setting of NOCANCEL in a SCHEDxx member PPT entry is the obvious solution. > Once again, I don't know anything about Communications Server. How much knowledge does a typical operator have about the inner workings of the CS address spaces or any other major functional area? Once again, we are not taking about operators who need a salve on their fingers but a systems programmer planning the installation of CS IP and its related bits and pieces who has been duped into imagining he/she cannot use a well-loved function by developers who have made a mistake - or I - and they - need to see an explanation of how a tame server function could be so "precious" that it needs "cancel" protection. Chris Mason [1] Actually the CS IP Resolver address space is used somehow through some private sort of API. That this cannot be any sort of problem is that it is used by many other "server" functions all of which can be chopped off at the knees at any time with no ill effects. On Tue, 12 Oct 2010 11:26:50 -0500, Chris Craddock <[email protected]> wrote: >On Tue, Oct 12, 2010 at 8:55 AM, Chris Mason <[email protected]>wrote: > >> > The archaic IEFSDPPT module is still valid, but for all practical >> purposes it is >> unusable. >> >> Unusable for all except IBM would be more accurate - although implied by >> your >> emphasis on "vendors". As far as I can tell from scanning the section in >> the >> description of the SCHEDxx member in the Initialization and Tuning >> Reference >> manual, IBM routinely specifies its real or imagined requirements in >> PPT "entries" in the IEFSDPPT module. That tends to challenge your use of >> the >> adjective "archaic". > > > >IBM does continue to "use" IEFSDPPT for some things that only take effect >at IPL time. However that isn't terribly flexible or useful for anyone else, >so I stand by the term "archaic". > > > >> I hope you took the time to appreciate my description of how the >> >Communications Server (CS) IP component developers and authors had got >> their undergarments in a twist over NOCANCEL in the case of the TN3270E >> server. >> > > >I don't know much about Communications Server in particular, but I do know a >little bit about z/OS internals and systems management products in general. >I can't comment about whether the CS components really need to run with >NOCANCEL. I *can* comment on the technical reasons why a server address >space might need to run that way. I don't know whether the TN3270E server >has those attributes or not. Do you? Or more directly, do you know for sure >that they don't? And does it really matter? > > > >> > It is not very common to make address spaces non-cancelable and the >> reasons for doing so are usually technically >> deep. >> >> ... or maybe the reasons are accidental because<snip> > > > >I can't speak for all software developers but I can tell you that those >big-gun decisions are never made by accident. At least not by the major >software vendors. There are too many folks looking over your shoulder and >second guessing everything you do. Not unlike ibm-main in that respect :-) > > > >> Again we have developer arrogance in not leaving it up to > >the user as to whether or not to allow the user to "advise" his/her >> operators >> over cancelling the address space by allowing CANCEL or NOCANCEL to be >> specified by means of the SCHEDxx member with a proper explanation of the >> advantages and disadvantages, including how they relate to the use of the >> AUTOLOG facility. >> > > >We're just going to have to disagree over this. Giving users a "choice" >between things they don't really understand isn't really being helpful to >them. Even if the choice is elaborately documented you've added something >extra that must be read and understood and actioned and most users don't >read everything we give them as it is. If making that choice is of no >consequence and it only adds a small amount of work for the user then "ok I >guess". But if making the wrong choice can lead to a system outage (or >worse) why would you want to have the user make that choice? I would prefer >that the software should "do the right thing" for me. You may consider it >arrogant and that's fine with me. I have more than enough scars already. > > > > >> Note that the main CS IP address is one thing and, who knows? - well I >> don't >> but, of course, the developers do - it may well be that the "tricks" the >> main >> CS IP address space gets up to are the same or similar to those you >> described >> in your "concrete" example. > > > >Perhaps so and as you say, you don't know. Nor do I. BTW> The "tricks" I was >referring too aren't especially tricky. The garden variety things that >server address spaces tend to do are likely to result in dependencies >between the server space and its clients. If you blow away the server you're >very likely to leave the clients in a damaged state. If it is necessary to >allow for restart and recovery for such a server space, then the clean way >is for the server to accept a STOP command. Upon receipt of that command the >server's internal tasks are all still running normally and they can go on >about the business of shutting down gracefully. If you use CANCEL or FORCE >that's no longer possible. All of the server's tasks are summarily abended >and all subsequent resource cleanup has to be co-ordinated through end of >task and/or end of memory routines. > >Trust me when I tell you that accomplishing that is enormously more complex >and risky. An impatient operator with an itchy trigger finger can ruin your >whole day. If I'm responsible for providing that functionality then >minimizing the risk of disaster seems to me not to be the arrogant thing to >do, but rather the prudent thing to do. Why are we even debating this? > > > >> I can imagine that there are a number of >> functions the main CS IP address space could perform which imply NOCANCEL >> is a "good idea". However the TN3270E server is just a TCP application with >> potentially - not necessarily - a mass of definitions to process on >> starting. It >> was the time which some customer definition sets needed to get up and >> running that prompted the separation of the TN3270 sever application - as >> it >> should have been from the very beginning when the University of Wisconsin >> put the "TCP/IP for VM" program together for IBM. >> > > >Once again, I don't know anything about Communications Server. How much >knowledge does a typical operator have about the inner workings of the CS >address spaces or any other major functional area? Avoiding the need for a >non-productive restart of a server address space seems to me to be an >equally valid reason to limit the opportunity for operators to blow things >away. I would not assume evil (or incompetent) intent. ---------------------------------------------------------------------- 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

