To those using the archives searching for information on SYSTCPD

Also to Edward Jaffe, Charles Mills and Marty French if they happen to notice 
this thread to which they contributed is still running

-

This thread started - and largely appeared to finish - in mid-December last 
(2009). I thought it had been swiftly dispatched after a few responses but a 
tangent kicked in - and an expression regarding the sovereignty of a territory 
populated by the visually impaired came to mind!

So I'm glad the thread has been resuscitated.

Ideally this topic and the following extended discussion should have taken 
place in the IBMTCP-L list. It might then have not needed to be such an 
extended discussion!

The tangent concerns the SYSTCPD DD-statement name and its relevance.

The point to establish is to explain the rather peculiar use of the concepts 
of "client" and "server" adopted by the original IBM product for support for IP 
communication and functions relating to IP, namely "TCP/IP for VM" back in 
the early '90s.

There is the traditional concept of a "client" and a "server" where a "client" 
function, often a human end user at a workstation, requests services of 
a "server" function, a "whatever" since the traditional "client" doesn't really 
care.

However, there is also a rather special "client" to "server" concept originally 
used by "TCP/IP for VM" and carried by inheritance through "TCP/IP for MVS" 
to the z/OS Communication Server (CS) IP component.

This "client" to "server" concept is the relationship between z/OS address 
spaces. There is a principle CS IP address space, the one often using the 
name TCPIP, and there are a number of other address spaces which in some 
way are subordinate to this principle address space. The principle address 
space is the "server" address space and the subordinate address spaces are 
the "client" address spaces.

Why do I postulate this structure? Well, let us examine the peculiar token 
name applied in the PORT statement list entry to the TN3270 "server" function 
in CS IP prior to the disengagement from the principle CS IP address space.[1] 
It was "INTCLIEN". What do you suppose that meant? Well, shall we 
try "internal client"? But, wait just a moment, we are talking about a "server" 
function here are we not? Well, yes we are - in the traditional "client-server" 
structure. However, in the "client-server" structure of the CS IP address 
spaces, the TN3270 "server" function is a "client" and, prior to the 
disengagement, was "internal" to the principle CS IP "server" address space.

Have you been keeping up at the back?

I'm sorry I guess that's my teacher's style showing through!

Talking of teaching, in order to emphasise this "client-server" address space 
structure I used to use the description "client data set" for what started out 
life in "TCP/IP for VM" as the TCPIP DATA file. I assume that this file must 
have been - and probably still is - required in all VM "machines" which are 
subordinate to the principle "TCP/IP for VM" machine called by default or 
possibly by design, TCPIP. In the "port" to MVS in "TCP/IP for MVS" the TCPIP 
DATA file became TCPIP.TCPIP.DATA for its default manifestation and is 
referenced in the manuals as the TCPIP.DATA file as a generic way of referring 
to it.

I find the term "client data set" only in my teaching notes from the mid-'90s 
so 
I guess it was never official IBM terminology.

There is a term mentioned in the CS IP Configuration Guide but actually rarely 
used and, where it is used, rather ambiguously.

<quote>

The ... program uses the following resolver directives (TCPIP.DATA 
statements):

</quote>

The following is a sentence used to introduce the term in the CS IP 
Configuration Guide and also in the UNIX System Services Planning manual.

<quote>

How and if the resolver uses name servers is controlled by TCPIP.DATA 
statements (resolver directives).

</quote>

It may be that the term "resolver directives" is supposed to concern only the 
statements in the file which refer to accessing name servers.

Since this is not clear, this file is a key file in the context of the revised 
resolver function and a name is needed which does not prejudice to which of 
its manifestations reference is being made, I shall continue to refer to this 
file 
as the "resolver directives".

[1] The possibility to disengage the TN3270 "server" function appeared in z/OS 
CS V1R6 and was imposed from z/OS CS V1R9.

-

The revised resolver function appeared in z/OS V1R2.

Prior to the introduction of the revised resolver function, the search order 
for 
the "resolver directives" file was as follows:

Environment variable - RESOLVER_CONFIG (if z/UNIX environment)
/etc/resolv.conf (if z/UNIX environment)
//SYSTCPD DD statement
x.TCPIP.DATA (where x is userid for the z/UNIX environment and 
userid/jobname/procname for the MVS environment) 
SYS1.TCPPARMS(TCPDATA)
TCPIP.TCPIP.DATA

Following the introduction of the revised resolver function, the search order 
for the "resolver directives" file is as follows:

Resolver address space setup file - GLOBALTCPIPDATA

plus the first of the following if statements are missing from 
GLOBALTCPIPDATA except those from the list below

Environment variable - RESOLVER_CONFIG (if z/UNIX environment)
/etc/resolv.conf (if z/UNIX environment)
//SYSTCPD DD statement
x.TCPIP.DATA (where x is userid for the z/UNIX environment and 
userid/jobname/procname for the MVS environment) 
SYS1.TCPPARMS(TCPDATA)
Resolver address space setup file - DEFAULTTCPIPDATA
TCPIP.TCPIP.DATA

Statements which are specified only in GLOBALTCPIPDATA if 
GLOBALTCPIPDATA is used

DomainOrigin/Domain
NSInterAddr/NameServer
NSPortAddr
ResolverTimeOut
ResolverUDPRetries
ResolveVia
Search
SortList

The above is taken from my notes created shortly after the revised resolver 
function was introduced. It may be there have been minor changes since. If 
there have been major changes, I hope someone will care to point them out.

-

In addressing the individual posts, the first task is to thank Gary Ciampa for 
introducing me to a novel way of submitting jobs using FTP. It corresponds to 
the section "Steps for submitting a job and automatically receiving output" 
under "Interfacing with JES" in Chapter 4, "Transferring data using the File 
Transfer Protocol (FTP)" of the CS IP User’s Guide and Commands manual. It is 
*not* the technique I used to have my students use in their hands-on 
sessions but perhaps it has been introduced since I ran my classes.

>From Marty French:

> If you FTP-ing from a mainframe/mainframe or LPAR/LPAR, here is some JCL.

The JCL provided is suitable for any use of the CS IP traditional "client" "FTP 
in 
batch". You are likely to have fewer formatting problems if the FTP "server" is 
also z/OS or z/VM. This topic is covered in Appendix A, "Specifying data sets 
and files" in the CS IP User’s Guide and Commands manual.

> The SYSTCPD DD is the same one you have in your TCPIP started task JCL.

In principle - see above - the "TCPIP started task JCL" should be the *one* 
place SYSTCPD in particular and the "resolver directives" file in general is 
never needed. However, I see SYSTCPD is included as a DD-statement in the 
sample CS IP main address space started task procedure JCL in the CS IP 
Configuration Reference. I wonder if it was used for the TN3270 "internal 
client" prior to V1R9 and - an effect that has been mentioned in this thread - 
IBM authors/developers didn't realise that it no longer had a role! Note that 
the CS IP Configuration Guide does indicate that a SYSTCPD DD-statement 
might be needed by the separated TN3270 "server" procedure JCL.

>From Charles Mills:

> You don't (in my experience) need the SYSTCPD DD statement.

You may.

> ... SYSTCPD DD statement. I don't know what it does. It's not documented, 
AFAIK.

True it is not documented in the CS IP User’s Guide and Commands manual - 
where you later indicate you would like to have found it - but it is fully 
documented in the CS IP Configuration Guide.

>From Marty French:

> I thought the SYSTCPD DD statement allowed the FTP process to go to 
NSINTERADDR statement in the parms for IP address of the name server 
(which we have) and then append the DOMAINORIGIN name specified in the 
parms.

As indicated above, the SYSTCPD DD-statement is just one of the ways to 
find the "resolver directives".

> Since I'm new here what is 'AFAIK'.

Google is your friend. You just have to Google AFAIK. QED.

> ... SYSTCPD DD statement. I don't know what it does. It's not documented, 
AFAIK.

Come to think of it, Charles Mills could have Googled SYSTCPD and discovered 
with the first hit that it most certainly is documented!

>From Charles Mills:

> I happen to have the OS/390 2.10 and z/OS 1.2 FTP docs closest at hand 
and I get no hits in FTP for SVCFTPD 

You get one hit for SYSTCPD in the V1R11 edition of the CS IP User’s Guide 
and Commands manual. It is not a very helpful one since it is found in Chapter 
11, "Executing commands on a remote host".

> I am 99% sure I have had name-type addresses resolve correctly without it, 
but I must admit that currently I mostly use dotted addresses.

> You could be 100% sure since, as indicated above, the SYSTCPD DD-
statement is just one of the ways to find the "resolver directives".

> Perhaps it was a former requirement.

Being able to locate a "resolver directives" file always was, is and always 
will 
be a requirement for the "client" address spaces.

> JCL statements that once helped tend to never get removed.

Unless the file to which a JCL DD-statement refers is known to be "history" 
and is deleted - as might well have happened to the file referenced by the 
SYSTCPD DD-statement when your CS IP administrator implemented the 
revised resolver function following z/OS V1R2.

>From Marty French:

> We also run a TCP/IP print product called VPS TCP/IP from LRS software. 
We had to add the SVCFTPD DD statement to the started task to resolve 
printer addresses per their instructions, so I just assumed that this was the 
case with FTP JCL.

I assume you mean SYSTCPD rather than SVCFTPD!

What this means is that you should *understand* what you are doing. 
Whether or not you actually *needed* SYSTCPD depends on how your CS IP 
administrator has set up the resolver function in your installation.

CWCID: assuming that what applies to one CS IP "client address space" 
might/does apply to another CS IP "client address space" betrays nous.

>From Edward Jaffe

> SYSTCPD is needed only for special overrides, to use a specific (non-
default) stack in a multi-stack configuration, or when -- probably because of 
a sysprog that doesn't know any better -- the installation has not made the 
proper TCPDATA file available via the normal search sequence. I never use 
SYSTCPD. Things are set up here so it is not needed. However, any JCL we 
distribute to customers that uses FTP contains the following commented JCL 
statements:

> //*SYSTCPD DD DISP=SHR,DSN=... <- only needed for non-standard
> //*SYSFTPD DD DISP=SHR,DSN=... <- configurations.

It is unclear to me how the DEFAULT parameter - which is I assume what you 
mean by "default" here - on the SUBFILESYSTYPE TYPE(CINET) statement 
interacts with the TCPIPJOBNAME statement in the "resolver directives" file. It 
doesn't help that the UNIX System Services Planning manual, when given the 
chance in Chapter 19, "Setting up for sockets", "Resolver configuration 
files", "Resolver information" - yet another name for the TCPIP.DATA file, 
doesn't bother to provide any clarification either. Thus I would advise that 
for 
any "client address space" needing to select one of a number of CS IP 
instances, the appropriate TCPIPJOBNAME - by whatever means suits best - 
should be specified. That probably would be by means of a SYSTCPD DD-
statement.

There is also a discussion in the z/OS CS IP Configuration Guide in Chapter 
2, "IP configuration overview", "Considerations for multiple instances of 
TCP/IP", "Selecting a stack when running multiple instances of TCP/IP".

I can't be sure but I suspect you have not re-evaluated your philosophy 
regarding the "resolver directives" file since z/OS V1R2 when the resolver 
function was redesigned.

Your comment is far too narrow. It should be something on the lines 
of "according to your installation's design for the resolver function".

>From Charles Mills:

> Sure would be nice if IBM documented it, then.

This is a valid point. There should be an indication in the CS IP User’s Guide 
and Commands manual - which is designed for "users" after all - wherever JCL 
is offered for a "client" function that attention should be paid to the 
"resolver 
directives" file in terms of referring to the local installation's policy 
regarding 
the resolver function. This policy may well involve specification of SYSTCPD - 
or it may not.

> There should be an explicit explanation of SYSTCPD in the FTP client 
documentation if it is relevant to FTP, with perhaps a reference to the 
Configuration manual if more detail is wanted.

No. In the interests of having only one version of the documentation regarding 
the "resolver directives" file, it should be mentioned that the "user" should 
consult the appropriate authority in the installation in order to discover how 
the matter of the "resolver directives" file is resolved. As I explained above 
the "resolver directives" file applies also to address spaces other than 
"client" 
address spaces as "client" is usually understood. Thus it would be 
inappropriate to described the "resolver directives" file exclusively in the CS 
IP 
User’s Guide and Commands manual. It belongs where it is in the CS IP 
Configuration manuals.

Also, as you can tell from above, in general you always need all the detail 
but, 
for any one installation where the matter of the "resolver directives" file has 
been sorted out already, the "user" just needs the local information.

Incidentally, the "Joe Programmer" who asks for help in a list like this and 
gets 
bunged some JCL must expect that what is provided may depend on the way 
that installation works and may not be fully appropriate to the way his or her 
installation works. That's just logical - if you stop to think a moment!

> Especially since the BookManager search facility seems to be flawed: I get 
no hits for SYSTCPD when I search the IP bookshelf - although it's there as 
big as life (as you say) in the Configuration manual.

It works brilliantly for me! Of course, there is no "IP" bookshelf but there is 
a "Communications Server" bookshelf, the one I tried.

> IMHO one of the big problems facing the mainframe going forward is 
documentation which cannot be used effectively unless you ALREADY know all 
about whatever you are looking up.

I'm inclined to agree. It helps enormously to have "grown up" with the OS 
(PCP, MFT, MVT) ... z/OS library so that you noted the manual - particularly 
title - changes as they happened over the past 40 + years. I believe you are 
supposed to get the necessary orientation to any IBM technical territory by 
having attended the relevant education classes. If you haven't attended the 
classes relevant to the tasks you are asked to perform I guess that is 
your "suits" trying to avoid expense they regard falsely as unnecessary.

>From Edward Jaffe:

> SYSTCPD is not used by FTP, ...

It is - as indicated above.

> ... but its presence or absence in the JCL can make a tremendous difference 
in the outcome of the job. It defines site-wide, stack-wide, resolver-wide, 
settings that affect all TCP/IP clients and servers.

Hm, we're talking about an individual "client" address space corresponding to a 
job performing the "client" role in the traditional "client-server" setup. I 
don't 
see that making any difference to any address space except the one where it 
is specified - and I further don't see it having much of a performance impact - 
except perhaps with unusual configurations with many unresponsive name 
servers ...

What you describe could be used to refer to the data set identified by the 
GLOBALTCPIPDATA - if fully populated - baring the TRACE statements of 
course - or the DEFAULTTCPIPDATA statements in the RESOLVER procedure 
setup file or, indeed, the old TCPIP.TCPIP.DATA file as copied from the TCP/IP 
for VM ancestor.

> I would not expect to find a discussion of SYSTCPD repeated for each and 
every client or server supported by TCP/IP. That would be analogous to 
explaining JOBLIB/STEPLIB in the documentation for every mainframe 
application ever written.

Your reasoning is good, of course, this is Edward Jaffe territory, but be 
assured, all "client address spaces" need to refer to the "resolver directives" 
file - for example to convert "TCP" in the socket() call to protocol number 6. 
A 
batch FTP "client" job as described under "Submitting FTP requests in batch" 
in Chapter 4, "Transferring data using the File Transfer Protocol (FTP)" in the 
CS IP User’s Guide and Commands manual is one such "client address space".

> Most sites would never use SYSTCPD for the default stack.

There are a number of reasons for having individual subsets of "resolver 
directive" parameters. One that immediately springs to mind - actually it 
didn't 
but it should have! - is a way to set on the trace function - TRACE RESOLVER 
or TRACE SOCKET - for the "client address space".

Your emphasis on the "default" CS IP instance is distorted.

> It is a throw-back to very, very old IBM TCP/IP stacks and -- even then -- 
its use was discouraged.

Not really. When SYSTCPD was introduced, it was a relief for users as a way 
of avoiding having to create data sets allocated by having to have a userid as 
the first token. Again you have a very distorted view.

I invite you to scan the CS IP Configuration Guide and Reference manuals in 
order to see whether or not the use of the SYSTCPD DD-statement is 
discouraged.

Following the redesign of the resolver function, there should be a move within 
the installation to try to remove the need for SYSTCPD - and all those other 
ways of specifying the "resolver directives" file. To that extent SYSTCPD is 
a "throw-back" but this is only since z/OS V1R2, 2003. I guess some might 
describe 2003 as very, very old!

> For those shops that use it (whatever their reason), ...

And there are a number of such reasons.

> ... it is their responsibility to communicate their SYSTCPD DD requirements 
to their user community.

I think we may finally have some sort of agreement! It is necessary to consult 
your CS IP administration in order to know the resolver policy - perhaps it's 
part of the installation's specific documentation maintained by the CS IP 
administrator or the consultants who provide the CS IP administration service.

>From Charles Mills:

> I would counter that since there is only ONE manual (that comes to mind 
anyway) that documents ALL of the IP "utilities" (or commands as IBM calls 
them) that it would not hurt if a search on SYSTCPD in that book at least 
produced at least a reference to the appropriate manual. And I have 
communicated that thought to IBM.

No. You are wrong. It could be argued that the reason you are wrong is that 
you have confused "client" as it applies to the "client-server" relationship 
between address spaces with the "client" as it applies traditionally to 
the "client-server" relationship and describes the users of the CS IP User’s 
Guide and Commands manual. For that you are excused - although I'm not 
quite sure your confusion relates to an understanding approaching that level 
of advancement!

-

Chris Mason

On Tue, 13 Apr 2010 09:04:15 -0400, Shmuel Metz (Seymour J.) <shmuel+ibm-
[email protected]> wrote:

>In <00bc01c4e179$2373a390$67fea...@charlesnotebook>, on 12/13/2004
>   at 05:06 PM, Charles Mills <[email protected]> said:
>
>>IMHO one of the big problems facing the mainframe going forward is
>>documentation which cannot be used effectively unless you ALREADY know
>>all about whatever you are looking up.
>
>As opposed to the windows world where there often is no documentation.
>
>>How would anyone
>>answer the question "how do I do disk I/O from an assembly program"
>
>By asking for the relevant data, e.g., for what platform.
>
>>unless one already knew that the information would be found in "DFSMS
>>Macro Instructions for Datasets"?
>
>Only for systems related to z/OS, and even then it might not be the right
>answer. Just like on the PC; you need to ask the right question.
>
>--
>     Shmuel (Seymour J.) Metz, SysProg and JOAT
>     ISO position; see <http://patriot.net/~shmuel/resume/brief.html>
>We don't care. We don't have to care, we're Congress.
>(S877: The Shut up and Eat Your spam act of 2003)

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