This post reminds me that a key feature of the product under discussion in 
the "Was" thread was described as being dependent on "TCP/IP". As always 
using the description "TCP/IP" rather than the more precise z/OS 
Communications Server IP component - subsequently to be abbreviated as CS 
IP - while clearly requiring the IP network layer leaves open the question of 
what the transport layer might be. It might be TCP or it might actually be UDP 
or - rather unlikely when the emphasis is on some business function as may be 
assumed here I think - possibly neither of the standard transport protocol is 
to 
be used.[1]

If the transport layer is TCP or - a bit curiously - UDP[2], the program under 
discussion simply needs to be specified as an entry in both the AUTOLOG 
statement list and the PORT statement list[3].

The consequences of this can be noted from these references:

>From the CS IP Configuration Guide:

<quote>

1.5.3.4 Setting up reserved port number definitions in PROFILE.TCPIP

...

AUTOLOG

Use AUTOLOG to list the procedure names that should start when the TCPIP 
address space starts. It is also used to supply a timeout value for detecting 
hung procedures at TCP/IP initialization time. The timeout value is the time 
TCP/IP should allow for a procedure to come down when, at startup, it is still 
active and TCP/IP is attempting to AUTOLOG the procedure again. A hung 
procedure is active to MVS, but is not listening on the socket that is reserved 
for it via the PORT statement. When AUTOLOG detects a hung task, TCP/IP 
checks every 10 seconds (until the timeout value has expired) to see if the 
procedure has come down. If the procedure comes down during one of these 
10 second intervals, it is restarted. If the procedure is still active when the 
time interval specified by the timeout value expires, then TCP/IP cancels and 
restarts the procedure.

The AUTOLOG statement shown in Figure 35 has a timeout value of five 
minutes. 

In the first AUTOLOG statement the FTP Server shows FTPD JOBNAME FTPD1. 
This means when the TCPIP address space starts, the FTPD procedure will be 
started via the MVS START FTPD command. Because FTPD forks a child 
process that actually listens on PORT 21, the autolog task verifies that FTPD1 
is listening on port 21.

Similarly, when the TCPIP address space starts, the autolog task starts the 
remaining 10 tasks.

Unless the tasks in the AUTOLOG list are in the PORT reservation list, the 
autolog task does not check for hung tasks every five minutes.

...

</quote>

And confirmation about starting with the main CS IP address space.

<quote>

1.2.22.8 Step 6: Start the TCP/IP address space

Enter the MVS START command from the operator's console to start TCP/IP, 
specifying the member name of your cataloged procedure. This will start the 
TCP/IP address space and any of the servers you have defined in the 
AUTOLOG statement in PROFILE.TCPIP. For example, if the procedure to start 
the TCP/IP address space was called TCP1 in your PROCLIB, you would enter:

     START TCP1

For information on updating the TCPIP cataloged procedure or configuration 
statements used to configure the TCPIP address space, see z/OS 
Communications Server: IP Configuration Reference.

</quote>

I had to go to Chapter 26 out of 33 down the table of contents before I found 
an old-fashioned "server" described which described the use of the AUTOLOG 
function in its simple original role, hence the reference to LPD.

<quote>

2.17.1.1 Step 1: Configuring PROFILE.TCPIP for LPD

If you want the LPD server started automatically when the TCPIP address 
space is started, include the name of the member containing the LPD server 
cataloged procedure in the AUTOLOG list in hlq.PROFILE.TCPIP. For example:

     AUTOLOG
       LPSERVE
     ENDAUTOLOG

To ensure that port TCP 515 is reserved for the LPD server, also add the name 
of the member containing the LPD cataloged procedure to the PORT statement 
in hlq.PROFILE.TCPIP. For example:

     PORT
       515 TCP LPSERVE

See the z/OS Communications Server: IP Configuration Reference for more 
information about the AUTOLOG and PORT statements.

</quote>

Why I was reminded of needing to place some stress on the use of the 
AUTOLOG function was the fact that the main CS IP address space is quite 
happy to use the CANCEL command to dispose of an errant address space 
whenever it feels it needs to - which might put some of this "CANCEL" 
discussion in perspective.

Chris Mason

[1] There is a post on the IBMTCP-L list from the same original poster which 
indicates we may be dealing with TCP here - CONNECT is mentioned - but it's 
not definite of course.

[2] The problem I have with UDP in the context of the AUTOLOG function is 
that, while the "listening" condition is a permanent feature of the TCP 
protocol 
when it is ready for work, in what I assume to be a typical UDP program there 
exist "windows" of time when there may not be an outstanding "read"-like call 
in place which I believe is what is regarded as the "listening" condition in 
the 
case of UDP. I would be nervous that the AUTOLOG "listening" test just might 
be performed in those "windows" of time after a "read"-type call has been 
satisfied and the next "read"-like call hasn't quite yet been reached.

[3] Assuming we are dealing with a service supported by TCP or UDP running 
in a CS IP environment, the relevant port number needs to be associated in 
the PORT statement list with a BIND parameter defining a VIPA as being the 
most usual way to dissociate the service from individual fallible "hardware" 
interfaces. I trust the documentation will at least allude to the principle 
behind 
this consideration. I didn't notice this in Linda Mooney's extensive list.

On Thu, 30 Sep 2010 16:13:11 -0400, Robert A. Rosenberg 
<[email protected]> wrote:

>At 10:04 -0500 on 09/29/2010, Tom Marchant wrote about Re: Really
>dumb IPL question:
>
>>On Tue, 28 Sep 2010 22:26:29 -0400, Robert A. Rosenberg wrote:
>>
>>>Shutting down a Started Task can be done in the way other STCs are
>>>controlled. ...   you can just use the Modify (F) or STOP (P)
>>>command . If MODIFY is good enough for TCP, TSO, etc, it should be
>>  >good enough for your RYO STC. It sounds like those Ops/Automation
>>  >types are brain dead and do not understand what they are doing.
>>
>>MODIFY and STOP only work if the code is written to recognize them.
>>Some products are not coded to work with a STOP command.  If not,
>>it is not the automation that is brain dead.
>>
>
>The assumption of my comment was the program was written to use STOP
>or MODIFY to signal the task to terminate. The quote that I was
>responding to (which was omitted from your reply) was to the effect
>that it was against the Ops/Automation types rules/procedures to use
>CANCEL (or STOP/MODIFY which use the same QEDIT interface) to signal
>the terminate order. We are not taking about pulling the rug out from
>under the task via FORCE here by sending a request for an orderly
>shutdown using standard interfaces. Note that I may be wrong about
>the ability to intercept the CANCEL and suppress it since you are
>going to do an orderly shutdown by treating as a STOP.
>
>The quote was:
>
>>Setting this up as a started task and then explaining to
>>Ops/Automation that the only way to stop it was to Cancel the
>>Started task was not fun (against their operational procedures) ....

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