Communication Server V2
Communication Server V2
Bill White
Octavio Ferreira
Teresa Missawa
Teddy Sudewo
Redbooks
International Technical Support Organization
September 2016
SG24-8361-00
Note: Before using this information and the product it supports, read the information in “Notices” on
page ix.
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
iv IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.7 FTP large data set access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
3.7.1 The extended address volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
3.7.2 FTP support for large format data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.7.3 Example of EAS-eligible data set allocation for FTP transfer . . . . . . . . . . . . . . . 201
3.8 Miscellaneous configuration settings of FTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
3.8.1 A single generic FTP server in a multiple stack z/OS image . . . . . . . . . . . . . . . 201
3.8.2 FTP network management interface with SMF . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.9 Problem determination for FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.10 Additional information sources for FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Contents v
6.3 Problem determination for INETD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
6.4 Additional information sources for INETD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
vi IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
9.2 TSO remote execution server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
9.2.1 Description of TSO remote execution server . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
9.2.2 Configuration tasks for TSO remote execution server . . . . . . . . . . . . . . . . . . . . 342
9.2.3 Activation and verification of TSO remote execution server . . . . . . . . . . . . . . . . 348
9.3 z/OS UNIX remote execution server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
9.3.1 Description of z/OS UNIX remote execution server . . . . . . . . . . . . . . . . . . . . . . 348
9.3.2 Configuration tasks for z/OS UNIX remote execution server . . . . . . . . . . . . . . . 349
9.3.3 Activation and verification of z/OS UNIX remote execution server . . . . . . . . . . . 350
9.4 REXEC TSO client command using user ID/password. . . . . . . . . . . . . . . . . . . . . . . . 353
9.4.1 Description of REXEC TSO with user ID and password . . . . . . . . . . . . . . . . . . . 353
9.4.2 Configuration of REXEC TSO with user ID and password . . . . . . . . . . . . . . . . . 353
9.4.3 Verification of REXEC TSO with user ID and password . . . . . . . . . . . . . . . . . . . 355
9.5 REXEC TSO client command using the NETRC data set. . . . . . . . . . . . . . . . . . . . . . 357
9.5.1 Description of REXEC TSO client using NETRC . . . . . . . . . . . . . . . . . . . . . . . . 357
9.5.2 Configuration of REXEC TSO client using NETRC. . . . . . . . . . . . . . . . . . . . . . . 357
9.5.3 Verification of REXEC TSO client using NETRC . . . . . . . . . . . . . . . . . . . . . . . . 360
9.6 REXEC UNIX client command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
9.6.1 Description of the REXEC UNIX client command . . . . . . . . . . . . . . . . . . . . . . . . 363
9.6.2 Configuration of the REXEC UNIX client command . . . . . . . . . . . . . . . . . . . . . . 364
9.6.3 Verification of the REXEC UNIX client command . . . . . . . . . . . . . . . . . . . . . . . . 365
9.7 Problem determination for z/OS remote execution facilities . . . . . . . . . . . . . . . . . . . . 366
9.7.1 Problem determination for TSO remote execution . . . . . . . . . . . . . . . . . . . . . . . 366
9.7.2 Problem determination for REXEC TSO with user ID and password . . . . . . . . . 366
9.7.3 Problem determination of REXEC TSO using NETRC . . . . . . . . . . . . . . . . . . . . 367
9.7.4 Problem determination for the REXEC UNIX client command . . . . . . . . . . . . . . 368
9.7.5 Recovery for server job table full condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
9.7.6 Diagnostic messages for debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
9.8 Additional information sources for remote execution and remote shell. . . . . . . . . . . . 370
Contents vii
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
D.1 SC30 files for LUNS and LUNR scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
D.1.1 SC30 TN3270A Server PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . 406
D.1.2 SC30 TN3270A Server PROFILE for LUNS and LUNR scenario . . . . . . . . . . . 406
D.1.3 SC30 TNLUNS30 backup LUNS PROC for LUNS and LUNR scenario . . . . . . 410
D.1.4 SC30 TNLUNS30 PROFILE for LUNS and LUNR scenario. . . . . . . . . . . . . . . . 411
D.1.5 SC30 TCPIPA stack PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . . . 411
D.1.6 SC30 TCPIPA stack PROFILE for LUNS and LUNR scenario. . . . . . . . . . . . . . 412
D.1.7 SC30 OMPROUTE PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . . . . 416
D.1.8 SC30 OMPROUTE STDENV file for LUNS and LUNR scenario . . . . . . . . . . . . 416
D.1.9 SC30 OMPROUTE CONFIG for LUNS and LUNR scenario . . . . . . . . . . . . . . . 416
D.2 SC31 files for LUNS and LUNR scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
D.2.1 SC31 TN3270B Server PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . 418
D.2.2 SC31 TN3270B Server PROFILE for LUNS and LUNR scenario . . . . . . . . . . . 419
D.2.3 SC31 TNLUNS31 primary LUNS PROC for LUNS and LUNR scenario . . . . . . 423
D.2.4 SC31 TNLUNS31 PROFILE for LUNS and LUNR scenario. . . . . . . . . . . . . . . . 423
D.2.5 SC31 TCPIPB stack PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . . . 424
D.2.6 SC31 TCPIPB stack PROFILE for LUNS and LUNR scenario. . . . . . . . . . . . . . 424
D.2.7 SC31 OMPROUTE PROC for LUNS and LUNR scenario . . . . . . . . . . . . . . . . . 429
D.2.8 SC31 OMPROUTE STDENV file for LUNS and LUNR scenario . . . . . . . . . . . . 429
D.2.9 SC31 OMPROUTE CONFIG for LUNS and LUNR scenario . . . . . . . . . . . . . . . 430
viii IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Notices
This information was developed for products and services offered in the US. This material might be available
from IBM in other languages. However, you may be required to own a copy of the product or product version in
that language in order to access it.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not grant you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, MD-NC119, Armonk, NY 10504-1785, US
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without
incurring any obligation to you.
The performance data and client examples cited are presented for illustrative purposes only. Actual
performance results may vary depending on specific configurations and operating conditions.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
Statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and
represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to actual people or business enterprises is entirely
coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. The sample programs are
provided “AS IS”, without warranty of any kind. IBM shall not be liable for any damages arising out of your use
of the sample programs.
The following terms are trademarks or registered trademarks of International Business Machines Corporation,
and might also be trademarks or registered trademarks in other countries.
AIX® IMS™ RACF®
C/370™ Language Environment® Redbooks®
CICS® Lotus® Redbooks (logo) ®
DB2® Lotus Notes® System z®
Domino® MVS™ Tivoli®
Global Business Services® NetView® VTAM®
HiperSockets™ Notes® z Systems™
IBM® Parallel Sysplex® z/OS®
IBM z Systems™ Print Services Facility™ z13™
IBM z13™ PrintWay™
PostScript, the Adobe logo, and the PostScript logo are either registered trademarks or trademarks of Adobe
Systems Incorporated in the United States, and/or other countries.
Inc., and Inc. device are trademarks or registered trademarks of Kenexa, an IBM Company.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
x IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
IBM REDBOOKS PROMOTIONS
Download
Android
iOS
Now
For more than 50 years, IBM® mainframes have supported an extraordinary portion of the
world’s computing work, providing centralized corporate databases and mission-critical
enterprise-wide applications. IBM System z®, the latest generation of the IBM distinguished
family of mainframe systems, has come a long way from its IBM System/360 heritage.
Likewise, its IBM z/OS® operating system is far superior to its predecessors in providing,
among many other capabilities, world-class and state-of-the-art support for the TCP/IP
Internet Protocol suite.
TCP/IP is a large and evolving collection of communication protocols that are managed by the
Internet Engineering Task Force (IETF), an open, volunteer organization. Because of its
openness, the TCP/IP protocol suite has become the foundation for the set of technologies
that form the basis of the Internet. The convergence of IBM mainframe capabilities with
Internet technology, connectivity, and standards (particularly TCP/IP) is dramatically changing
the face of information technology and driving requirements for even more secure, scalable,
and highly available mainframe TCP/IP implementations.
This IBM Redbooks® publication provides useful implementation scenarios and configuration
recommendations for many of the TCP/IP standard applications that z/OS Communications
Server supports.
For more specific information about z/OS Communications Server base functions, high
availability, and security, see the other volumes in the series:
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 1 Base
Functions, Connectivity, and Routing, SG24-8360
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 3 High
Availability, Scalability, and Performance, SG24-8362
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 4 Security and
Policy-Based Networking, SG24-8363
For comprehensive descriptions of the individual parameters for setting up and using the
functions described in this book, along with step-by-step checklists and supporting examples,
see the following publications:
z/OS Communications Server: IP Configuration Guide, SC27-3650
z/OS Communications Server: IP Configuration Reference, SC27-3651
z/OS Communications Server: IP System Administrator’s Commands, SC27-3661
z/OS Communications Server: IP User’s Guide and Commands, SC27-3662
This book does not duplicate the information in those publications. Instead, it complements
them with practical implementation scenarios that can be useful in your environment. To
determine at what level a specific function was introduced, see z/OS Communications Server:
New Function Summary, GC31-8771. For complete details, review the documents that are
listed in the additional information section at the end of each chapter.
Bill White is a Project Leader and Senior IBM z Systems™ Networking and Connectivity
Specialist at ITSO at Poughkeepsie, NY.
Octavio Ferreira is a Consulting IT Specialist with IBM Brazil. He has 34 years of experience
in IBM software support. His areas of expertise include z/OS Communications Server, SNA
and TCP/IP, and Communications Server on all platforms. For the last 15 years, Octavio has
worked in the Area Program Support Group. He provides guidance and support to clients and
designs networking solutions such as SNA-TCP/IP Integration, z/OS Connectivity, Enterprise
Extender design and implementation, and SNA-to-APPN migration. He has also co-authored
other ITSO publications.
Teddy Sudewo is an IT Specialist at IBM Indonesia, working with large bank customers. He
has over 3 years of experience with IBM z Systems and IBM Systems Storage hardware. He
holds a bachelor's degree in Electrical Engineering from Institut Teknologi of Sepuluh
Nopember, Surabaya, Indonesia. His areas of expertise include z Systems hardware, z/OS,
TCP/IP, encryption, STP, and storage products related to the IBM mainframe infrastructure.
He has written extensively about basic TCP/IP configurations, FTP TLS, FTP AT-TLS, and
zOSMF.
Sam Reynolds
Jerry Stevens
Doris Bunn
Sue Huang
Mike Stayton
IBM z/OS Communications Server Development, IBM Raleigh
xiv IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Thanks to the authors of the previous editions of this book
Finally, we want to thank the authors of the previous z/OS Communications Server TCP/IP
Implementation series for creating the groundwork for this series:
Rufus P. Credle, Mike Ebbers, Rama Ayyar, Octavio L Ferreira, Yohko Ojima, Mike Riches,
Maulide Xavier, Valirio Braga, WenHong Chen, Demerson Cilloti, Sandra Elisa Freitag, Gwen
Dente, Marco Giudici, Adi Horowitz, Michael Jensen, Gazi Karakus, Shizuka Katoh, Uma
Maheswari Kumaraguru, Sherwin Lake, Bob Louden, Garth Madella, Yukihiko Miyamoto,
Hajime Nagao, Shuo Ni, Carlos Bento Nonato, Gilson Cesar de Oliveira, Roland Peschke,
Joel Porterie, Marc Price, Frederick James Rathweg, Micky Reichenberg, Georg Senfleben,
Rutsakon Techo, Larry Templeton, Rudi van Niekerk, Thomas Wienert, and Andi Wijaya.
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our books to be as helpful as possible. Send us your comments about this book or
other IBM Redbooks publications in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an email to:
[email protected]
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface xv
Stay connected to IBM Redbooks
Find us on Facebook:
http://www.facebook.com/IBMRedbooks
Follow us on Twitter:
http://twitter.com/ibmredbooks
Look for us on LinkedIn:
http://www.linkedin.com/groups?home=&gid=2130806
Explore new Redbooks publications, residencies, and workshops with the IBM Redbooks
weekly newsletter:
https://www.redbooks.ibm.com/Redbooks.nsf/subscribe?OpenForm
Stay current on recent Redbooks publications with RSS Feeds:
http://www.redbooks.ibm.com/rss.html
xvi IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
1
Section Topic
Log messages to different files and to a How to configure syslogd to log messages to different
single file files, based on job name, and also send all messages to
a single file without regard to job name.
Starting two syslogd instances How to configure and run two instances of syslogd in
local mode and in network mode.
Figure 1-1 illustrates the relationship of syslogd to applications and to other hosts for which it
provides logging services. The syslogd running in local mode (syslogd -i) can collect
messages from local applications. It can then either record them into a local file for that
application or forward them to another remote host for logging.
The syslogd running in network mode (syslogd -n) accepts messages over the network from
other systems. It then either records them into a local file or forwards them to another remote
host for logging. If both types of syslogd are running, each can have its own configuration file,
or they can share a common configuration.
zUNIX zUNIX
Appl Appl TCP/IP
Local Log
Messages
z/OS UNIX System Service
syslogd -i syslogd -n
/etc/syslog.conf
zUNIX File
OPERLOG
System
z/OS System
Figure 1-1 The syslogd relationship to applications for which it logs information
A single instance of syslogd can process both local and remote messages, if wanted.
The syslogd accepts messages from applications or another syslogd on another host. It then
writes the messages to the proper files (on this host) or to the syslogd on yet another host, as
directed by the syslogd configuration file.
2 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
1.1.2 How syslogd works
You can start the syslogd through IBM MVS™ JCL or through a UNIX shell command. You
can stop it using the MODIFY (F) command from the MVS console or the UNIX kill
command to invoke the UNIX SIGTERM signal. When running, the daemon stores its process
ID in /etc/syslog.pid or /etc/syslog_net.pid (network-only mode).
When the daemon completes initialization, a message is written to the MVS console that
indicates the successful start.
The syslogd uses UDP packets for data transfer with the well-known port number 514.
RFC 3164 describes the syslogd protocol.
The syslogd can produce large amounts of output. To prevent a bottleneck during the
processing of messages that are necessary for logging, audit trails, and problem
determination, syslogd is a multithreaded application. Log messages for each unique
destination are written on a separate thread.
A number of implementation possibilities exist for syslogd logging schemes, such as:
Sending all messages to a single file
Sending messages to different files based on job name
Sending messages to different files and to a single file
Starting two instances of syslogd
Before starting, syslogd requires an /etc/syslog.conf configuration file that contains at least
a single logging directive. To tell syslogd to switch to a new file name, create a cron job that
sends a signal to syslogd informing it that a new day has started and that it should reread the
configuration file.
You can set up this configuration in a matter of minutes, and it is easy to understand.
However, sending all messages to a single file makes it difficult to follow what is occurring in a
single application over many hours. In addition, sending all messages to a single file does not
take advantage of the multithreaded design of the syslogd where each individual destination
is assigned a thread. With a single log file, all message processing occurs on a single thread.
Before starting, syslogd requires an /etc/syslog.conf configuration file that contains multiple
logging directives, one per application.
This configuration can make it easy to find messages that are related to a particular
application and follow the flow of events. This configuration also employs syslogd isolation by
only allowing particular applications to write to syslogd facilities that should be reserved for
system applications. However, this configuration makes it difficult to determine what is
occurring system wide across all applications, and requires each job name to be specified in
the syslog.conf file. Any job name that is not explicitly coded will not be saved by syslogd.
Because some applications can generate a large volume of output, it is possible for the UNIX
file systems that contains the UNIX files to fill up quickly. Semi-automatic archival
mechanisms already exist for syslogd. Some installations use their own REXX or UNIX shell
scripts to archive logs, swap out older log files for fresh log files, and then send a signal to the
syslogd so that the daemon rereads the configuration file and continues writing log records to
a new set of log files. Other installations rely on a script that is provided by IBM
(/usr/lpp/tcpip/samples/rmoldlogs) to perform the same tasks. This script depends on the
UNIX file names as defined in the syslog.conf rules to contain symbols for the date.
With either type of file management script, UNIX relies on an external process (the CRON
daemon) to send a SIGHUP signal to syslogd once per day. This signal causes syslogd to
close its UNIX files and open new files in the appropriate format. If the signal is sent just after
midnight, the new file is created if the file does not already exist. The use of CRON is
documented in z/OS UNIX System Services Planning, GA22-7800.
Before starting the instances, either create a separate configuration file for each instance of
syslogd or configure /etc/syslog.conf so it can be shared by both instances. The
/etc/syslog.conf file contains multiple logging directives (one per application). It also
contains /dev/operlog as a logging directive (one per host name or IP address), and one
additional directive identifying the file that will log all specific network messages in a single
location.
4 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: You can start a maximum of two instances of syslogd. If you start more than one
instance of syslogd on the same z/OS image, you must start one instance in local-only
mode and one instance in network-only mode.
Never run just one instance of syslogd in network-only mode. If an instance of syslogd is
not processing local system and application messages, then these messages are written
to the MVS console and might result in message flooding on the MVS console.
daemon Generally used by server processes. The FTPD server, the RSHD server, the
REXECD server, the SNMP agent, and the SNMP subagent use this facility
name to log trace messages.
local0-7 Names for local use. The z/OS UNIX Telnet server uses the local1 facility name
for its log messages.
kernel z/OS does not generate any log messages with the kernel facility, and it does
not accept log messages from local applications with the kernel facility.
However, syslogd on z/OS can receive log messages over the network from
other syslog daemons by using the kernel facility. The kernel facility can be used
in rules to direct these log messages to specific destinations.
Table 1-2 lists the facilities that z/OS Communications Server uses.
6 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Application syslogd record Primary syslogd Other syslogd facility
identification facility
Network security services (NSS) server NSSD local4 None
Network SLAPM2 subagent NSLAPM2 daemon None
OMPROUTE omproute user None
OPORTMAP server oportmap daemon None
OREXECD rexecd deamon auth
ORSHD rshd daemon auth
OTELNETD telnetd local1 auth
Policy Agent Pagent daemon None
POPPER popper mail None
PWCHANGE command pwchange daemon None
PWTOKEY command pwtokey daemon None
rpcbind rpcbind daemon None
SENDMAIL sendmail daemon None
Simple Network Time Protocol daemon sntpd daemon None
SNMP agent OSNMPD snmpagent deamon None
syslogd syslogd daemon None
TCP/IP subagent M2SubA daemon None
TFTP server tftpd user None
TIMED daemon timed user None
TN3270E Telnet Subagent TNSubA daemon None
Traffic Regulation Management TRMD daemon (used for local4 (used for IPSEC logging
Daemon (TRMD) IDS logging) and defensive filter logging)
Trap Forwarder daemon trapfwd daemon None
z/OS Load Balancing Advisor lbadv daemon None
z/OS Load Balancing Agent lbagent daemon None
The syslogd configuration file allows you to separate messages based on these parameters:
The user ID of the application generating the message
Job name of the application generating the message
Facility used by the application
Priority of the message generated by the application
Rule: Do not use the -d option for normal operations because the default logging level
produces large amounts of output. To control the amount of output if you specify this
option at startup, code a value for the SYSLOGD_DEBUG_LEVEL variable in the
syslogd environment variable file.
8 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Syslogd isolation
Syslogd isolation refers to a configuration of syslogd that allows only certain job names to
write log messages to particular syslogd destinations. The syslogd isolation feature is
enabled automatically when job names are included as a filter option in the syslogd
configuration file rules. When you use syslogd isolation, you also use multithreading for
syslogd. Recall that syslogd processes individual destinations on separate threads. If you use
one large syslogd destination file, you use only a single thread.
If you have not yet started working with Configuration Assistant, you might prefer to copy the
/usr/lpp/tcpip/samples/syslog.conf file to /etc/syslog.conf as a starting point. For
Example 1-1 to work, you do not need to copy the sample configuration file. However, the
sample configuration file includes several comments at the beginning of the file that explain
the syntax of the file. If you choose to copy the sample, delete the last four lines of the
configuration file, starting from the following line:
THIS EXAMPLE STATEMENT IS UNCOMMENTED
If the destination is a file, it can be optionally followed by the two options, -F and -D. These
parameters, described in “The syslogd parameters” on page 8, are used to specify the access
permission level when a new directory and file are created.
Use the following tasks to create a crontab entry that the CRON daemon can use to manage
syslogd:
1. Issue the OMVS command from the TSO Ready prompt.
2. From the z/OS UNIX shell, issue the export EDITOR=oedit command, and then issue the
crontab -e command.
3. Using the editor, add the lines that are shown in Example 1-2. Save the file, exit the editor,
and issue the exit command to return to Time Sharing Option (TSO).
Start syslogd
Syslogd must be started by a superuser. Most processes require that syslogd be running
before the initialization of other processes. Therefore, start syslogd before you initialize any
TCP/IP stacks. You can start syslogd by using one of the following methods:
Start syslogd from the UNIX shell command line.
This type of initialization uses the entire shell process and does not allow you to resume
other work in that shell. You must terminate the startup command with a final ampersand
(&).
Migration note: In prior releases, syslogd executed a UNIX fork() into a separate
child address space, and the terminating ampersand sent the syslogd process to the
background. This process allowed you to resume work in the shell. The current release
eliminates the UNIX fork() to allow APF authorizations to permit additional functions. A
fork() removes APF authorization from the child process.
As a result of this change, the trailing ampersand no longer frees the shell process. To
escape from the shell without terminating the running syslogd, you must invoke PF2 for
the OMVS subcommand prompt and enter quit, which returns you to MVS.
Example 1-3 The /etc/rc entry to start syslogd with new job name and no environment variables
export _BPX_JOBNAME='syslogd'
/usr/sbin/syslogd -c -i -u -D 0755 -F 0664 & 1
Note: If you start syslogd by using the z/OS UNIX shell command (such as from a user
session or particularly from /etc/rc), you must add an ampersand to the end of the
command to allow the command to run in the background, as shown at 1 in
Example 1-3. This is not a concern if you start syslogd from a cataloged procedure.
10 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If you choose to deploy environment variables with your syslogd, the /etc/rc script must
include UNIX exports of those variables, as shown in Example 1-4.
The variables in Example 1-4 are described in “Use a syslogd environment variable file”
on page 12.
If you need to enable debug mode when you initialize syslogd from the /etc/rc file or from
the UNIX shell command line, you must include the location of the output file. In
Example 1-5, the debug output was piped into a file named sysout.out.
Example 1-5 Syslogd startup with debug sending output to a UNIX file
/usr/sbin/syslogd -f /etc/syslog.conf -c -i -u -d > /var/syslog/sysout.out &
Example 1-6 uses several options 1, including the -c option that defines the location of the
syslogd configuration file. The lines that are labeled 2 and 3 show that output locations
were identified for debugging information, if we decide to start syslogd with the debug
option (-d). The PATHOPTS parameter on the statement permits the UNIX files to be
created if they are not yet built. You might want to route debugging to SYSOUT=* unless you
have a special reason to create an output file.
Important: You can use the _CEE_ENVFILE environment variable in the PARM field of
the JCL to point to a file that contains other environment variables. The file can be an
HFS, a zFS, or a z/OS MVS data set. When it is an MVS data set, the data set must be
allocated with RECFM=V.
Do not use RECFM=F because this setting allows padding of the record with blanks
after the environment variable value. When the variable represents a file name, the
padded value can cause a file-not-found condition because the padded blanks are
considered part of the name of the file in z/OS UNIX. If the standard environment file is
in MVS and is not allocated with RECFM=V, the results can be unpredictable.
12 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
locking, make sure that the debug level includes the values 32 and 64 when collecting
documentation.
A useful debug level to use for many types of debugging and when collecting
documentation is 91. This debug level excludes debugging information that gets written for
each log message sent to syslogd. However, you might need to use the default debug
level of 127 for certain types of problems.
4. SYSLOGD_PATH_NAME
Specifies the path name for the datagram socket. This value is overridden by the -p option
in the syslogd startup. However, you do not have to use this variable at all. It is included
only for the sake of completeness.
Example 1-10 shows the contents of one of the example log files.
However, because network syslogd messages are delivered through UDP, delivery of
messages is not guaranteed. Moreover, messages cannot be delivered to z/OS under some
conditions. The use of IPSEC should be considered for protecting the syslogd’s UDP port 514
when running in local or network-only mode. For more information, see IBM z/OS V2R2
Communications Server TCP/IP Implementation: Volume 4 Security and Policy-Based
Networking, SG24-8363.
Note: A maximum of two instances of syslogd can be started. However, if you are going to
start more than one instance of syslogd on the same z/OS image, then one instance must
be started in local-only mode and one instance must be started in network-only mode.
Never run just one instance of syslogd in network-only mode. If an instance of syslogd is
not processing local system and application messages, these messages are written to the
MVS console and might result in message flooding on the MVS console.
Proper planning is mandatory to ensure that the additional remote message traffic that
syslogd receives does not create performance issues or impede the ability for the local z/OS
syslogd to perform its processing.
14 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If you anticipate a high syslogd network message rate, consider configuring one network-only
instance and one local-only instance of syslogd.
Example 1-11 depicts hosts for which syslogd processes incoming syslogd messages. After
initialization, syslogd begins receiving remote messages. It first determines whether the
incoming messages match any of the specified configuration statements. In this example,
syslogd processes only the remote messages that have a source IP address associated with
the host wtc30 and network 10.42.105.0. It then logs these messages in the MVS operations
log. Only critical messages from host 10.43.110.15 are logged in to /tmp/otherlog.
Example 1-12 shows an entry in the configuration file that writes all messages with a priority
of crit and higher to the syslogd on host 192.168.1.9. The SYSLOGD in host 192.168.1.9
must be activated in network mode.
Tip: The parentheses in Example 1-11 denote that it is a remote host. The host can be
specified by IPv4 address, by IPv6 address, or by a name that resolves to an IPv4 or IPv6
address. The at sign (@) in Example 1-12 denotes that the host is a remote host.
Tip: If you intend to use *.* as a filter, then configure two separate configuration files (one
for each syslogd) because the wildcard *.* matches all host names and IP addresses.
In this example, the network-only mode syslogd does not send its log messages to another
syslogd. Therefore, define syslogd* as the job name in a configuration file of network-only
mode syslogd if you want to collect log messages of the network-only mode syslogd also.
To be able to send messages, the SYSLOGD in the remote server has to be started with
option -n and must have an entry that defines where to send its messages, as shown at
indicator 1 of Example 1-14.
16 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If you are going to manage syslogd archiving and restarts with the CRON daemon, you need
to create crontab entries for the CRON daemon. To create a crontab entry that the CRON
daemon can use to manage syslogd, complete the following steps:
1. Issue the command OMVS from the TSO Ready prompt.
2. From the z/OS UNIX shell, issue the command export EDITOR=oedit and then issue the
command crontab -e.
3. Using the editor, add the two lines shown in Example 1-15.
4. Save the file and exit the editor. These entries allow log files to be re-created daily.
When syslogd is started in the network-only mode, the syslogd stores its process ID in the
/etc/syslog_net.pid in addition to the /etc/syslog.pid file.
Starting syslogd
Issue the z/OS UNIX shell commands that are shown in Example 1-16.
To start syslogd every time z/OS UNIX starts, add the same lines to /etc/rc, as shown in
Example 1-17.
18 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
1.4 The syslogd functions
This section describes the syslogd operator commands, how to archive an active z/OS UNIX
log file in an MVS data set, and the syslogd browser function. This section includes the
following topics:
The syslogd operator commands
Description of syslogd automatic archival
The syslogd browser and search facility
Note: In prior releases, the job name of the syslogd contained an extra character because
of the UNIX forking function. This character no longer becomes part of the job name
because a fork() is no longer executed as part of syslogd initialization. For example, a
name that was SYSLOGD1 previously is now SYSLOGD. This change makes it easier to
issue operator commands because the job name is predictable. It also retains APF
authorizations that are otherwise lost when the fork() produces a child process in a
separate address space.
The syslogd automatic archival archives the contents of a z/OS UNIX log file to an MVS data
set. This function adds a fully automatic archival mechanism to syslogd, and also supports
on-demand archival if needed. The automatic archival function also reacts to “file full”
conditions on the syslogd log files. The MVS archival data set can either be a sequential data
set (where low-level qualifiers specify date and time) or a new generation in a generation data
group (GDG).
CLR The content of the file is never archived, but the file is cleared every time
an archive operation is performed for the destination. This file destination
is specified with the –X option.
HFS z/OS UNIX files based on use of the percentage symbol (%).
Note: If you use GDG data sets as an archive destination, the GDG base must already
exist. The following sample JCL creates a GDG base called USER1.SYSARCH:
//USER1X JOB MSGLEVEL=(1,1),MSGCLASS=D,NOTIFY=USER1
//GDGA EXEC PGM=IDCAMS
//*
//GDGMOD DD DSN=USER1.SYSARCH,
// VOL=SER=CPDLB1,
// UNIT=SYSALLDA,
// SPACE=(TRK,(0)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=6800,DSORG=PS),
// DISP=(,KEEP)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE GENERATIONDATAGROUP
System symbols can be included in parts of the target data set names. The space
requirements of the target data sets do not need to be determined because syslogd takes
care of that requirement. The syslogd retries previously failed archives automatically at the
next archive event.
You can monitor console messages for failed archives to correct any problems, and syslogd
eventually archives all previously failed files successfully. You can use an operator command
to display the utilization of the syslogd UNIX file systems.
20 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Figure 1-2 shows a file archive timeline.
1 2 3 4
USER1.ARCHIVE.IKED.Dxx.Txx
Record 1
Record 2
Record 3
Record 4
The timeline for an archive event for a single file follows these basic steps. In this example,
the log file is named iked.log.
1. The iked.log is open, and syslogd writes records to it.
2. The syslogd renames the open log file with a unique date and time suffix. The file is still
open so that syslogd can continue to write records to it.
3. The renamed file is closed, and the original itso.log file is reopened. The syslogd can
continue to write to the open iked.log file.
4. The renamed file is archived into a target data set, and the renamed file is deleted.
You can trigger the syslogd automatic archival by using one of the following methods:
At a specific point in time (for example, shortly after midnight).
When the utilization of one of the file systems to which the z/OS UNIX log files are written
exceeds a configurable threshold (file system percentage full).
Archive by using an operator command.
All eligible files are archived for the time of day and operator command triggers. A file system
threshold trigger causes files to be archived from largest to smallest until the threshold is
reached.
Important: You must specify the -c start option when using the automatic archival function
because syslogd must be able to create destination files dynamically.
Tip: For the file threshold trigger, syslogd attempts to reduce the space that is used by
archiving files until half of the configured threshold is reached. For example, if you
configure 80% as the threshold, syslogd archives files until the file system reaches 40%
utilization. A console message is issued if all eligible files are archived but the file system
utilization was not able to be reduced.
Each specified statement applies to the rules that follows it until another instance of this
statement is specified.
For more information about this parameter, see z/OS Communications Server: IP
Configuration Guide, SC31-8775.
22 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: You cannot specify -N or -X with the existing -D or -F parameters.
Note: You must precede the rule with a valid BeginArchiveParms statement that specifies
the data set name prefix.
The field 1 identifies the prefix of the data set name that is created by syslogd automatic
archival. ArchiveTimeofDay 3 sets the time of day that is chosen for archiving and
ArchiveThreshold 4 sets the percentage full at which to start archiving. The rules 2 that follow
each BeginArchiveParms/EndArchiveParms set apply to that data set prefix. The rule 4 is set to
the syslogd priority of none to separate the daemon logs from the log.
After you start the syslogd and the archive is done (either at the time of day chosen or when
the file full percentage is reached), an FSUM1260 message is displayed as shown in
Example 1-23.
Take into account that the total percentage of all listed files is less than 1% but that the file
system is shown as 3% full 1. In this case, the remaining 3% of the file system utilization
might consist of files that are not managed by syslogd. It is not possible to know because the
default MAX value of 5 2 is used. You can view all the files that syslogd manages if you
execute the command and override the default MAX value as follows:
F SYSLOGDB,DISPLAY,ARCHIVE,DETAIL,MAX=*
Suggestion: You can dedicate HFS or zFS file systems to syslogd to get the most benefit
from automatic archival based on file system utilization. Logs that reside in a temporary file
system (TFS) can take advantage of archival, but the percentage of file system usage is
irrelevant in a TFS scenario. As a result, automatic archival based on file system utilization
is not effective.
If you receive the FSUM1259 message, check for the cause of the error. Possible causes can
be a lack of space to perform the archive or a failed allocation because of a configuration
error. If a failure occurs, syslogd attempts to archive the file again when the next archive
trigger event occurs, but it is possible that all archive attempts will continue to fail. If all
attempts fail, the original UNIX file to be archived still exists in the UNIX file system, renamed
with a suffix of the form Dyymmdd.Thhmmss, and the target data set might also exist and contain
partial data. Examine the error messages in the syslogd destination output file for the daemon
facility to determine the files that failed, and manually recover or delete such files and the
associated partial archive data sets.
Example 1-25 shows that the syslogd did not have sufficient authority to create the requested
file and that the archive failed.
24 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The syslogd browser provides an easy-to-use interface to access the messages that syslogd
captures on a z/OS system. With the browser, you can access archived syslogd messages
when such archives are created by using the syslogd archive function. Archives based on
percentage symbols (%) are also supported, as long as such archive files remain in the
directory in which they were originally created.
The browser provides a search mechanism that allows you to search selected active z/OS
UNIX files or archives based on various search arguments. It also supplies a “guide-me”
function that allows you to enter syslogd rule criteria and that guides you to the active z/OS
UNIX file or files to which such messages go.
Table 1-6 Data sets for implementing the syslogd browser function
Library data set Definition
You can allocate ISPF and REXX libraries by using DD names in your TSO LOGON
procedure or TSO LOGON CLIST. z/OS CS delivers ISPF components for panels, messages,
and REXX programs. All components of the syslogd browser have member names that start
with EZASYxxx.
You can use the EZABROWS to start the REXX to start the browser, or you can copy
EZABROWS to a REXX library that is allocated to your TSO environment.
Note: You must customize the copied EZABROWS to identify high-level qualifiers of your
z/OS CS ISPF libraries.
You can add the syslogd browser option to any of your ISPF menu panels, or you can invoke
it from ISPF option 6 as follows:
EXEC ‘your.REXX.library(EZABROWS)’
If you have not done the allocation, use the EZABROWS command instead of the following
EZASYRGO command:
‘CMD(EZASYRGO) NEWAPPL(EZAS)’
Note: The browser can also use a z/OS UNIX staging file. A staging file is a transient
file. It holds the contents of an active log file that is no longer being written to while the
file is awaiting archiving to an MVS data set by the syslogd archive function. If the
archive to MVS data sets fails, the staging file remains in the UNIX file system, and
syslogd retries the archive later. An example staging file name might be
/var/syslog.log.D081211.T000057.
26 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Verifying the syslogd browser
In a few cases, the syslogd browser prompts for the names or data set names of the log files
that you want to browse. When prompted, enter the name using one of the following formats:
Enter a z/OS UNIX file name starting with a slash, for example /var/log/logfile.
Enter a fully qualified MVS data set name starting and ending with a single quotation mark
(standard TSO syntax), for example 'TCPIP.LOG.LOGFILE'.
Enter an unqualified MVS data set name starting with any other valid symbol or
alphanumeric character. The user’s TSO prefix (if defined) is prefixed to the data set
name. If no prefix is defined, the user ID is prefixed (standard TSO syntax) to
LOG.LOGFILE. For example, if the user’s prefix is USER1, then the resulting file name is
USER1.LOG.LOGFILE.
Enter file or data set name of syslogd configuration, or select one from below:
After accessing the syslogd browser ISPF panel shown in Example 1-27, you must define
several options. If you specify NO 1, you cannot access MVS data sets that are migrated. At 2,
you can specify the maximum number of hits that you want displayed as the result of a search
operation. You can also set this maximum on the search panel.
If you use z/OS UNIX file archives that are based on a file naming convention that uses
percentage symbols (%) for day, month, and year, the syslogd browser looks for archives in
the directory in which the active z/OS UNIX file resides. The display start date and time option
is used to control the display of the start date and time for each active file and each archive 3.
Set this option to NO if you do not need it and want to improve the performance of the syslogd
browser initialization.
The Display active files only option, shown at 4, controls whether the syslogd browser is
used for browsing the currently active syslogd files only or both active syslogd files and
archives. Set this option to NO if you know that you are browsing only the active syslogd files to
improve the performance of the syslogd browser initialization.
Select one of the following, or press END PF key to exit the syslogd browser
Line commands: B Browse, A List archives, S Search active file and archives,
SF Search active file, SA Search archives, I File/DSN info
Archive
Cmd Rule/Active UNIX file name Start Time Type Avail.
--- --------------------------------------------- ----------------- ---- ------
*.TRMD*.*.* Empty N/A FILE 0
/var/syslog/2010/09/30/trmd.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*.OMP*.*.* 30 Sep 2010 16:51 FILE 0
/var/syslog/2010/09/30/omp.log 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*.OMP*.*.err 30 Sep 2010 16:51 FILE 0
In the scrollable section (1), the display includes one entry per z/OS UNIX file destination for
which the active file is found. Each entry includes rule, active file name, date and time of the
first logged message in the active file, archive type, and number of available archives. For
each entry, several line commands are available to browse the active file, search at various
levels, and so on.
Guide me function
If you do not know which syslogd destination to search, you can use the guide me function (2)
to help identify the destination. User ID and job name are available if syslogd is started with
the –u option. You can enter the facility name and priority or select from lists if you enter a
question mark (?).
If you know your component (such as the z/OS load balancing advisor) but do not know to
which facility the component writes log messages, you can select the component to facility
name cross reference function. This function lets you view a list of components and to which
facility names they write.
28 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When exiting the guide me function panel, the destination view displays the destinations
that match the attributes that you entered in the guide me function marked with arrows (that is,
==>). In Example 1-29, the job name (1) has a value of OMP*, which points to the log file entry
2 under *.OMP* as shown in Example 1-30.
For a guide to which facility names the various z/OS components may use,
please select the following option:
The syslogd browser does not currently support the host specification
criteria that may be used for messages received from a remote syslogd.
Press ENTER to validate input, press END PF key to return to main panel where
matching syslogd rules will be identified with '==>'
The syslogd browser does not currently support the host specification
criteria that may be used for messages received from a remote syslogd.
Rule . . . . . . . . . . *.OMP*.*.err
Active file name . . . . /var/log/2010/09/30/omp.err
Current config file. . . /etc/syslog.conf
Press ENTER to select an entry, press END PF key to return to main panel
By entering an S for an entry at the destination view, the search interface opens, as shown in
Example 1-32. The search options govern the search operation. The resulting data set name
can be an existing data set. If it does not exist, it is allocated using the specified UNIT name,
which is initialized according to your corresponding ISPF allocation unit. After the search, you
can keep the resulting data set, delete it, or have a standard ISPF print panel displayed.
All search arguments are optional. A time value 1 must be accompanied by the corresponding
date. A date can be entered without a time. The default from time is 00:00:00, and the default
to time is 24:00:00. All specified search arguments are logically ANDed together.
If you enter specific search criteria and a message has no value for those criteria, the
message is considered a non-hit. For example, if you specify a user ID, but a message has no
user ID, that message is a non-hit, which might be the case if syslogd is not started with the
–u option,
For local messages, host name is the host name that is configured in TCPIP.DATA.
30 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
User ID . . . .==> z/OS user ID of logging process
Job name . . . .==> z/OS jobname of logging process
Rem. host name .==>
Rem. IP address ==>
Message tag . .==> omproute Enter ? for list 3
Process ID . . .==> z/OS UNIX process ID
String 1 . . . .==>
String 2 . . . .==>
String 3 . . . .==>
String 4 . . . .==>
Note: In some cases, message text case does matter 2. If you say NO to Case sensitive
and then search for a string of abc, messages with “ABC,” “abc,” “Abc,” and so on, are
considered hits. If you specify YES to ‘Case sensitive and then search for a string of abc,
only messages with the exact matching case “abc” are considered hits. Note that the case
sensitivity option only applies to the four free-form string fields.
If you need to limit your search to a specific component that is not easily isolated by job name,
try to find the message tag 3 that the component uses. By entering a question mark (?) in the
component tag field on the search panel, all known component tags display and you can
choose the one in which you are interested, as shown in Example 1-33. Remember that it is
optional for an application to include a component tag in logged messages. However, all
known z/OS applications that log to syslogd do include a message tag.
Case sensitive . . . NO
Max. number of hits . 5
Syslogd Config . . . /etc/syslog.conf
Searched files/DSNs . 6
File/DSN . . . . /var/log/2010/09/30/omp.err
File/DSN . . . . /var/log/2010/09/29/omp.err
Search Arguments:
From date . . . .
and time . . . .
To date . . . . .
and time . . . .
User ID . . . . .
Job name . . . .
Remote host name.
Remote IP addr. .
Message tag . . . omproute
Process ID . . .
String 1 . . . .
String 2 . . . .
String 3 . . . .
String 4 . . . .
In this command:
N1: Sets the debug level for main components
N2: Sets the debug level for BRIF driver component
By default, debug output goes to the terminal. You can redirect debug output to data sets.
The use of the syslogd browser is optional. It displays and searches syslogd messages that
are generated by z/OS. Most capabilities work with log messages that are received from other
platforms. Some inconsistencies might exist with the format of the actual messages, which
can confuse the browser when searching. Be sure that all syslogd log files referred to in the
syslogd configuration exist because data cannot be returned if any log file is missing.
When browsing syslogd files that are collected by a network syslogd from a remote system,
keep in mind the following considerations:
Make sure that this system has access to the z/OS UNIX file system of the other system.
If system symbols are used in the data set prefix option in the syslogd configuration file,
consider using the override option on the initial browser panel.
32 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Composition of a message logged by syslogd
To have all messages logged with your local time, set the TZ environment variable in the
CEEPRMxx PARMLIB member. When you do so, you need to define the TZ environment
variable for all three IBM Language Environment® option sets (CEEDOPT, CEECOPT, and
CELQDOPT), as shown in Example 1-34.
For local messages, host name is the host name that is configured in TCPIP.DATA.
In Example 1-35, for the time stamp 1, the month is always a 3-character English month name
followed by the day in the month. Note that syslogd never includes the year. Time of day is
always in 24-hour clock format. You can control the time value by using the TZ environment
variable.
Example 1-35 shows the host 2, the user ID 3, the job name 4, the TAG 5, the PID 6, and
text 7. The user ID and job name are available for local messages when syslogd is started
with the –u flag. The message tag is an optional character string that can be passed by the
logging application to identify the application or component that created this log message.
The field immediately following the date appears as a result of the -u parameter and identifies
the system and user ID 1 that started the job. The next field also appears as a result of the -u
parameter and identifies the job name 2. The next field after the job name is the beginning of
the message. As shown in Example 1-37, OMPB was started using the user name
WTSC30/TCPIP 1 and the syslogd configuration incorrectly used only the system identification
as the user name, which explains why the omp.debug file is empty.
For other problems, start syslogd with the -d parameter to enable a debug trace. Output from
the debug trace is sent to the stdout stream that is defined in your MVS JCL or in the UNIX
command line executable file. See examples of stdout and stderr output in Example 1-5 on
page 11, Example 1-6 on page 11, and Example 1-7 on page 12.
Warning: If you enable debugging, remember (from “Use a syslogd environment variable
file” on page 12) that the default debugging level of 127 produces copious amounts of
output. You might consider coding a lower value for the SYSLOGD_DEBUG_LEVEL
environment variable. You can specify this variable in the syslogd environment variable file
or with an export statement for syslogd initialization that is specified in /etc/rc.
Tip: For descriptions of security considerations that affect specific servers or components,
see z/OS Communications Server: IP Configuration Guide, SC31-8775.
34 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
2
Section Topic
Multiple TN3270E servers using LU A multiple TN3270E servers using LUNS and LUNR
name server and LU name requester implementation scenario in a sysplex environment,
including description, configuration, activation, and
verification.
TN3270E server in a single image using This section changes the basic scenario to use
SHAREACB SHAREACB configuration statement to reduce CSA
utilization
TN3270 support of TSO logon reconnect Description of TN3270 support of TSO logon reconnect.
Problem determination for the TN3270E Problem determination methods for TN3270E server
servers environments.
LPD client, NDB, NICS, RPC, Kerberos, Bind 4.9.3 (DNS/WLM server), Bind 9 (DNS server), DHCP
LPD server, MISC server, NCPRoute, server, TN3270ETelnet server, FTP server, FTP client, Telnet
SMTP server, Portmapper, NPF, SNMP query, server, X-Windows client, SNMP Agent, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail
Terminology: This chapter refers to the TN3270E Telnet server as the TN3270E server.
36 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Traditional Telnet and TN3270E differ in two main areas:
3270 terminal emulation uses block mode rather than line mode.
3270 terminal emulation uses the EBCDIC character set rather than the ASCII set.
The z/OS server is an EBCDIC character set based platform. Most other non-z/OS platforms
are ASCII character set based. Normal data transmission between these dissimilar platforms
requires character translation processes for each packet of data they exchange. TN3270
provides end-to-end 3270 data stream emulation capability. The client performs any
necessary conversion between ASCII and EBCDIC character sets. A set of enhancements to
the base TN3270 support called TN3270E is now widely used.
Note: The meaning of the E as used in TN3270E and in IBM terminal devices such as an
IBM-3279-2-E can be confusing. In both cases, the E represents extended capabilities.
However, there is no correlation between the extended capabilities of TN3270E and those
of an IBM-3279-2-E display station.
327x device types that end in E are terminals that support extended field attributes, such
as color and highlighting. TN3270E server support includes a number of important
enhanced capabilities over TN3270, which are described in greater detail in “TN3270E
functionality” on page 38.
In addition, the z/OS TN3270E server supports RFC 1647 TN3270 Enhancements (July
1994) and RFC 2355 TN3270 Enhancements (June 1998). However, it does not support
the RFC 1646 TN3270 Extension for LUname and Printer Selection (July 1994). If you
want to migrate from a channel-attached router or Communications Server for IBM AIX®,
Linux, and Windows to z/OS TN3270E server, the older version of the TN3270 emulator
software might need to be replaced.
For descriptions of security considerations that affect specific servers or components, see the
z/OS Communications Server: IP Configuration Guide, SC27-3650.
Each allocated LU is represented in VTAM by an APPL minor node, which has an ACB control
block, created in VTAM’s Private Storage. During the session establishment process, an
OPEN ACB command is issued by Telnet for every LU. For each OPEN ACB issued by the
TELNET process, VTAM allocates control blocks in ECSA. Environments with a large number
of Telnet clients consume significant extended common storage area (ECSA) and Private
storage.
z/OS Communications Server allows you to use a shared ACB for Telnet LUs as a way to
reduce ECSA usage. To get further information about using the SHAREACB option, see 2.5,
“TN3270E server in a single image using SHAREACB” on page 127.
Using TN3270E is a two-step process. First, the client connects through TCP/IP to the
TN3270E server that is listening on some TCP port (usually port 23). Then, the TN3270E
server allocates VTAM resources and establishes a logical session on behalf of the
connecting client.
These sections describe important functions that the z/OS TN3270E server supports:
TN3270E functionality
Connection security
Connection mapping
Connection and session management
Multilevel security compliance
Connection diagnostics
For complete details, see z/OS Communications Server: IP Configuration Guide, SC27-3650.
TN3270E functionality
Traditional Telnet (line mode, based on ASCII) is limited in functionality when connected to
z/OS mainframe SNA applications. Benefits can be achieved by implementing TN3270, and
even more by implementing TN3270E. Use TN3270E for all mainframe SNA application
connections unless the client simply does not support it.
z/OS
VTAM Application
DISPLAY PRINTER
Session Session
SNA Sense Support
TCP/IP
38 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When the client and the server have finally agreed on using TN3270E through negotiation
during the connection process, they negotiate the subset of TN3270E options. These options
include device-type and the following set of supported 3270 functions:
328x printer support
Device name specification
The passing of BIND information from server to client
Sysreq function
Contention resolution
SNA Sense Support
Connection security
The following are the important connection security functions:
Data overrun security
– Protects against a client hung in a send-data loop
– Protects against using large amounts of storage
– Limits the number of session requests that are received by a TN3270E server in a
10-second period
– Limits the number of chained RUs received without a corresponding end chain RU
– Avoids auto-reconnect loops upon client connect errors by keeping connection active
Network Access Control (NAC)
– Limits user access to certain IP security zones defined by the NETACCESS statement.
– Manages NAC user ID send and receive access for these security zones
– NAC user ID is based on the application’s address space information
Transport layer security
– Secures TN3270E connections with the Transport Layer Security (TLS) or Secure
Sockets Layer (SSL) protocol
– Enables installations to support both types of secure clients without knowing which
protocol the client is using
– SSLV2, SSLV3, and TLS supported (NOSSLV2 is the default.)
– Enables using Application Transparent Transport Layer Security (AT-TLS) to manage
secure connections for TN3270E.
In addition to native TLS support, the TN3270E server can use AT-TLS to manage secure
connections. TLS managed by AT-TLS (TTLSPORT) supports more security functions than
TLS managed by the TN3270 server itself (SECUREPORT).
Note: If you have security parameters in a PARMSGROUP statement that are mapped to
host names, you cannot emulate that mapping with AT-TLS.
If you are not using PARMSGROUP to map to host names, migrate to the use of AT-TLS as
a consistent solution for all of your TCP applications.
Be aware of these AT-TLS capabilities and requirements when planning AT-TLS support for
TN3270E:
Dynamically refresh a key ring.
Support new or multiple key rings.
See IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 4 Security and
Policy-Based Networking, SG24-8363, for complete details about implementing TLS and
AT-TLS security for the TN3270E server.
Note: The TN3270E client, activated through the TSO TELNET command, does not support
any SSL or TLS security protocols. Basic mode is the only method that is supported by the
TN3270E client.
TLS/AT-TLS recommendations
If possible, use AT-TLS as a consistent security solution for all of your TCP-based
applications. However, certain applications (such as FTP and Telnet) have already been
programmed to use the SSL/TLS toolkit directly and provide additional security functions such
as application-negotiated SSL/TLS and certificate-based user ID mapping.
However, if you do not need those additional functions, consider implementing FTP and
TN3270E with the full AT-TLS support. AT-TLS is the preferred method of implementing TLS
support to achieve a consistent solution for all of your TCP applications.
Connection mapping
When a client connection request is made, TN3270E must assign an LU name to represent
the client. Additionally, an unformatted system services table, an interpret table, a default
application, unique parameters, and network monitoring actions can optionally be assigned to
the connection. There are 11 mapping statements available in the BEGINVTAM block that
map objects to specified client identifiers within the port indicated on the BEGINVTAM block.
This robust mapping function gives you flexibility in supporting your organization’s
requirements for running TN3270E services on the z/OS platform.
40 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Session initiation management: Controls which default application the user connects to
when the session is initialized. It also provides control of whether the user should go back
to the default application login window or the Telnet Solicitor (USSMSG10) window when
the user has logged off the application.
Connection and session takeover: Assists with lost and disconnected sessions.
TSO logon reconnect: Enables the system to reconnect even when an old SNA session
exists. See 2.6, “TN3270 support of TSO logon reconnect” on page 130.
Queuing sessions: Assists with session manager applications.
Disconnect on session error: Determines type of session termination.
Bypass RESTRICTAPPL with CERTAUTH: Client certificate is used to derive a user ID.
Allow printer sessions with RESTRICTAPPL: Enables printers to establish a session with
an application defined as a RESTRICTAPPL because printers cannot submit a user ID
and password.
The option of keeping the ACB open for an application that needs to INQUIRE for status.
Express Logon Feature (ELF): TN3270E uses the client certificate to resolve the user ID
and IBM RACF® product generates a temporary password, a passticket. ELF requires a
secure connection with level 2 client authentication, a client that supports ELF, and RACF
passticket setup.
Cleanup on idle connections: Use the PROFILEINACTIVE parameter statement with a
specified time-out value to drop connections that are associated with a non-current profile
that do not have an SNA session.
1 Exceptions exist. Some session managers “close dest” to set up an end-to-end session between the TN3270 SLU
and the application PLU. In this case, the CV64 is passed to the PLU at the final destination. Other types of session
managers maintain two sessions: One in which they act as the PLU to the TN3270 SLU, and one where they are
the SLU to the application PLU. In this case, the CV64 is not passed to the VTAM with the application PLU.
Session 1 Session 2
TN3270 S CINIT P S CINIT P Target
L L ISM L L
Server U CV64 U U CV64 U App.
TN3270 Client
Note: The session manager has an SNA API available to propagate the CV64 information.
IBM Session Manager 2.2.05 and later support this new function.
For more information about preparing for TCP/IP networking in a multilevel secure
environment and NAC, see z/OS Communications Server: IP Configuration Guide,
SC27-3650.
Connection diagnostics
In addition to general diagnostic tools such as CTRACE and dumps, which are described in
z/OS Communications Server: IP Diagnosis Guide, GC31-8782, and IBM z/OS V2R2
Communications Server TCP/IP Implementation: Volume 1 Base Functions, Connectivity,
and Routing, SG24-8360, several TN3270E-specific diagnostic tools are available:
Debug messages: TN3270E-specific debug messages can be turned on or off to diagnose
TN3270E problems. Several types of debug messages are available:
– Summary messages indicate important status changes.
– Detail messages indicate that a problem was detected.
– General messages indicate an important event.
– Trace messages show data to and from the client, and to and from VTAM.
– Flow messages show entry into modules and exit from modules.
– MSG07 enables TN3270E to send a message to the client indicating an error occurred
and what the error was.
The ABENDTRAP command can be used to set up an abend based on the variables
specified.
Optional SMF recording is controlled by using the SMFINIT and SMFTERM statements.
TESTMODE causes the profile syntax to be checked without making the profile active.
Several displays are available that provide summary and detail information.
TCP/IP Packet Trace using the system’s CTRACE facility (SYSTCPDA).
TCP/IP Socket Data Trace using the system’s CTRACE facility (SYSTCPDA).
TCP/IP Component Trace using the system’s CTRACE facility (SYSTCPIP).
42 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
For detailed examples, see 2.7, “Problem determination for the TN3270E servers” on
page 131.
Note: The TN3270E server running within the TCP/IP stack is no longer supported.
If you are migrating from a previous release that supported running the TN3270 server within
the stack’s address space, you must migrate the TN3270E server to its own address space.
Migration tip: You can prepare the TN3270E profile configuration to facilitate moving it
from running within the TCP/IP stack to running external to the stack by completing the
following steps:
1. Place all the TN3270-related statements into a separate configuration member. For
example, you could call it PROFTELN. Remove all TN3270-related statements from the
TCP/IP stack configuration member (such as PROFSTAK).
2. Point the TN3270 task’s //PROFILE DD to the TN3270 profile member, PROFTELN. It
contains TN3270-related statements only.
3. Remove the INCLUDE statement for the PROFTELN member in your PROFSTAK, if
you used the statement previously. Insert a TCPIPJOBNAME statement into the
TELNETGLOBALS block to achieve the stack affinity with the TCP/IP stack that this
Telnet server ran with before. See the explanation of TCPIPJOBNAME in z/OS
Communications Server: IP Configuration Reference, SC27-3651.
4. Change INTCLIEN to the TN3270E server’s procedure name on the port reservation
statements along with the NOAUTOLOG keyword. Remove NACUSERID (which was
required for Network Access Control of Telnet connections when Telnet ran in the
TCP/IP address space). NACUSERID is optional, not required.
5. Use the TESTMODE parameter when you validate the new TN3270 profile to report the
latent errors, then correct them. When no errors are reported, remove the TESTMODE
parameter.
See Appendix B, “Sample files provided with TCP/IP” on page 385, for sample files available
for use with the TN3270E server.
z/OS
TCP/IP VTAM SNA Applications
Address
Space TN3270
Server
TN3270 LU2
Server LU1/3
Client
Figure 2-4 TN3270E Telnet server running in an MVS image
As shown in Figure 2-4, you can run one or multiple TN3270E servers in a single-image
system, each in its own address space. This section describes the implementation of one
TN3270E started task. In the same way, you can set up multiple separated TN3270E servers
in one LPAR.
The TCP/IP stack started task name is TCPIPB. The TN3270E started task name is
TN3270B on system SC31.
44 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Customize the VTAM APPL major node for the TCP/IP LU names
You can find a sample VTAM APPL major node in SEZAINST(IVPLU). See z/OS
Communications Server: IP Configuration Guide, SC27-3650 for an in-depth description of
how to prepare the VTAM LU definitions for the TN3270E server. Pay attention to the values
that are coded for the following keywords on the VTAM APPL statement:
SESSLIM=
EAS=
PARSESS=
Some SNA applications do not issue CLSDST when their LOSTERM exit is driven. This
situation can create a hang condition for the TN3270E LU that has issued a CLOSEACB and
is waiting for an UNBIND RESPONSE from the application.
Note: Code LOSTERM=IMMED on all target (PLU) applications that will have an SNA session
with TN3270E to avoid CLOSEACB hang conditions. Code EAS=1 to minimize common
service area (CSA) storage use. Code PARSESS=NO for parallel sessions should not be used
with Telnet LUs. Code SESSLIM=YES because Telnet server LUs do not support multiple
concurrent sessions.
These LU names represent each TN3270E client IP connection. It is this VTAM LU that logs
on to a selected VTAM application. The TN3270E server uses application LUs that are
defined in VTAM application (APPL) major nodes to represent clients, by making them look
and act the same as VTAM terminal LUs. These APPL definition members must be made
available to VTAM by being in one of the data sets that is specified with the VTAMLST DD
statement in the VTAM started JCL. Add the APPL definition members into the ATCCONxx
member of VTAMLST to ensure that the TN3270E Telnet server applications are activated
when VTAM is started,
You can enter an APPL statement for each LU, or you can use a model APPL statement. Use
a model statement to avoid all the clerical effort of maintaining a large list and to minimize
storage utilization. The storage for that APPL and its ACB are allocated only when the LU is in
use. For more information about coding techniques for the model APPL statement, see z/OS
Communications Server: SNA Resource Definition, SC31-8778. The example model
statement uses an asterisk (*) in the name as a wildcard. You can also use system symbolics
to assist when multiple systems are involved and you want them to share the VTAMLST and
the same member within that VTAMLST. Example 2-1 shows one technique for using system
symbolics.
Example 2-1 Sample APPL model major node used in the example scenario
BROWSE SYS1.VTAMLST(@TCPLUS) - 01.01 Line 00000000 Col 001 080
TCPLUS&SYSCLONE. VBUILD TYPE=APPL
&SYSNAME.B* APPL AUTH=NVPACE, X
EAS=1, X
PARSESS=NO, X
SESSLIM=YES, X
MODETAB=ISTINCLM
The &SYSCLONE value (30, 31, and 32 in the test environment) is used to generate the label
on the VBUILD statement. The &SYSNAME value (SC30, SC31, SC32 in the test
environment) is used to generate the actual APPL model name.
Example 2-2 VTAM APPL names resulting from activating major node using system symbolics
SC30BB01 thru SC30BB99 when TN3270 DEFAULTLUS specify SC30BB01..SC30BB99
SC30BS01 thru SC30BS99 when TN3270 DEFAULTLUS specify SC30BS01..SC30BS99
and
SC31BB01 thru SC31BB99 when TN3270 DEFAULTLUS specify SC31BB01..SC31BB99
SC31BS01 thru SC31BS99 when TN3270 DEFAULTLUS specify SC31BS01..SC31BS99
Add the VTAM APPL major node to the VTAM startup configuration
To activate the application definition major node automatically, include it in ATCCONxx. If
multiple TN3270E servers are used (for example, multiple TCP/IP stacks in a sysplex
environment), and if you do not use LU name server (LUNS) to coordinate LU name in a
sysplex, ensure that each server uses unique LU names. Otherwise, the second server that
uses the same LU name will not be able to establish a session. Either the OPEN ACB request
will fail or the cross-domain session request will fail.
Note: Use the LUNS to centralize LU name allocation and avoid duplicate LU name
assignments among the group of TN3270E servers known as LU name requesters
(LUNR). See 2.4, “Multiple TN3270E servers using LU name server and LU name
requester” on page 95 for a detailed description od LU name server and LU name
requester.
Shortly after a connection request is accepted, the mapping statements are used by TN3270
to map, or assign, as many of the objects to the client as possible. The set of assigned objects
is used for the duration of the connection. These mappings are accomplished by performing
the following processes:
Mapping objects to client identifiers
Application name mapping
46 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
USS and interpret table mapping
LU name mapping: Generic or specific
Printer name mapping: Generic or specific
Connection parameters mapping
Connection monitoring mapping
The NULL set of clients is defined as that group of clients for which no explicit mapping
statement applies. Mapping statements that do not require an assignment to a specific client
ID can be used to set the default assignments for the NULL client group by simply omitting the
client ID from the statement. The following mapping statements can omit the client ID:
DEFAULTAPPL
PRTDEFAULTAPPL
LINEMODEAPPL
USSTCP
INTERPTCP
The following additional statement names imply a mapping association to the NULL client
group:
DEFAULTLUS/SDEFAULTLUS
DEFAULTLUSSPEC/SDEFAULTLUSSPEC
DEFAULTPRT/SDEFAULTPRT
DEFAULTPRTSPEC/SDEFAULTPRTSPEC
These uniquely named groups do not require mapping because their names imply it.
For complete details about mapping objects to client identifiers, see that topic in z/OS
Communications Server: IP Configuration Guide, SC27-3650. A complete statement syntax is
shown in z/OS Communications Server: IP Configuration Reference, SC27-3651. These two
books provide comprehensive discussions and examples related to mapping. We do not
intend to duplicate the discussions or examples in this book. However, the following
discussion might help you comprehend the text in the books that are referenced.
There are 15 object types that can be mapped to 10 client ID types. Nine object types can be
mapped to the NULL client ID. Therefore, the total number of unique mapping combinations
that is supported is 159. It is not practical to attempt to show an example of each one of these
mappings. However, this section describes a methodology that you can use to define a valid
mapping strategy. Obviously, the scenario that yields the least amount of clerical effort in
customizing a TN3270 configuration file is the one that does not require any explicit mapping
assignments. In many cases, a TN3270E server can assign all connecting clients to an LU
name from the DEFALUTLUS pool, and force them all to the same DEFAULTAPPL or to the
same USSTCP table. If this configuration meets your organization’s needs, then customizing
the TN3270 profile data set will be minimal effort for you.
If you do need to establish some level of mapping assignments, avoid defining unnecessary
mapping just because the capability is there. Extra mappings require more clerical effort that
must be maintained in the future. Establish only those mappings that are required, and keep it
simple. With this thought in mind, the example uses only a few mapping statements, objects,
and client IDs to illustrate the mapping capabilities.
However, groups must be defined before referring to them in a mapping statement, which
applies to both object groups and client ID groups. A few terms are defined in Table 2-1.
Object group A list of objects of the same object type having something in common
Client group A list of Client IDs of the same client type having something in common
This is not a requirement, but it does help the management and readability of the definitions.
By arranging the definitions in a consistent order, you help document the environment. Others
who later have to maintain the configuration will be able to more easily understand your
design.
Some objects must be specified as the only object being mapped to a client ID or client ID
group. They cannot be specified in a group. These object types are VTAM APPLs, USS
tables, and interpret tables, and are specified in the DEFAULTAPPL, PRTDEFAULTAPPL,
LINEMODEAPPL, USSTCP, and INTERPTCP statements. However, the remaining object
types can be specified in a group. This includes defining them as the only member of a group.
Any single client ID can be specified as the only member of a client ID group.
48 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Tip: To establish a consistent grouping methodology, consider using the technique
described here. Where the rules allow, use all group definitions, even for single objects and
client IDs that you need to map. The mapping statements will then always refer to group
names (where the syntax permits), and not to single objects or clients. Even if the group
consists of only a single item, your mapping statements will be consistent.
This technique offers an additional advantage. If you ever have to add an object or a client
ID to the existing mapped single item, its group is already defined, and you avoid the
inconvenience of creating a group and changing the mapping statement to point to it. You
can just add to the existing group.
The PROFILE data set (usually a PDS member) contains all the necessary statements to
define the TN3270 environment to the server. z/OS Communications Server: IP Configuration
Guide, SC27-3650, describes how to use the statements to accomplish the support that your
environment requires. The statements, their parameters, and statement syntax are discussed
in z/OS Communications Server: IP Configuration Reference, SC27-3651.
For the example scenario, A new profile in TCPIPB.TCPPARMS named TELNB31A was
created.
In a common INET (CINET) environment, TN3270 is, by default, associated with all running
stacks. If another stack is started while TN3270 is active, the current LISTEN for the port is
canceled and reissued automatically to include the new stack. If association with one stack is
wanted for control purposes or for functionality support, specify TCPIPJOBNAME.
Note: If multiple TN3270 SNMP subagents initialize to the same agent, the agent forwards
all data requests to the first subagent that connected, and all other initializations are
queued. If the first subagent ends, the next subagent in the queue then receives all data
requests. This is probably not the way you would want it to work.
Port reservation
Note: When you migrate your TN3270E server from running within your stack task to its
own address space, then you need to update your SAS, MICS, or other data reduction
programs that use the started task procedure name to identify records.
With the TN3270E server within the stack, the programs are accustomed to seeing the
stack task name. Now, with the change to its own address space, there will be a new name
in the field, and the code might have to be changed.
Reserve a TN3270 port in TCP/IP stack with its procedure name because INTCLIEN is not
supported anymore.
Note: If the TN3270 port is reserved, it must be reserved by specifying the stand-alone
TN3270 procedure name on the PORT reservation statement:
PORT 23 TCP TN3270B NOAUTOLOG
50 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
A portion of the TN3270 configuration profile data set is shown in Example 2-5. See
Appendix C, “Configuration files: TN3270E stand-alone scenario” on page 393 to review the
complete profile.
For complete listings of the started task procedures and profiles used for this scenario, see
Appendix C, “Configuration files: TN3270E stand-alone scenario” on page 393.
The procedure name must be added to the RACF STARTED class and have a user ID
associated with it as follows:
RDEFINE STARTED TN3270*.* STDATA(USER(TCPIP))
SETROPTS RACLIST(STARTED) REFRESH
Coding the started task name using the wildcard format enables you to run multiple TN3270
started tasks without having to define each one separately. Their names are all spelled
TN3270x, where x is the qualifier. They can all be assigned to the same user ID.
Use an existing superuser ID, or define a superuser ID to associate with the job name by
adding a user ID to RACF and altering it to superuser status as follows:
ADDUSER TCPIP
ALTUSER TCPIP OMVS(UID(0) PROGRAM (’/bin/sh’) HOME(’/’))
In this example, the user ID name is TCPIP, but any name can be used. You can combine
these two RACF commands into one command by putting the OMVS parameter on the
ADDUSER command line. The add and alter commands are performed separately in case
the user ID already exists. If the add fails, the alter still succeeds.
If setting up a superuser ID is not desirable, you can instead permit the user ID to the
BPX.SUPERUSER class by using the following steps:
1. Add the user to RACF:
ADDUSER TCPIP
2. Permit the user ID:
a. Create a BPX.SUPERUSER FACILITY class profile:
RDEFINE FACILITY BPX.SUPERUSER
b. If this is the first class profile, activate the FACILITY class:
SETROPTS CLASSACT(FACILITY) SETROPTS RACLIST(FACILITY)
c. Permit the user to the class:
ALTUSER TCPIP OMVS(UID(23) PROGRAM (’/bin/sh’) HOME(’/’))
PERMIT BPX.SUPERUSER CLASS(FACILITY) ID(TCPIP) ACCESS(READ)
In this example, the user ID is TN3270 and the UID is 23. The UID can be any nonzero
number. UID 23 was used to match the well-known Telnet port number.
d. Refresh the FACILITY class:
SETROPTS RACLIST(FACILITY) REFRESH
52 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: The default PPT entry sets the Telnet server to non-cancelable. As a non-cancelable
application, the TN3270E 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 are
issued repeatedly:
EZZ0621I AUTOLOG FORCING TN3270B, REASON: AUTOLOGGING SCHEDULED
IEE838I TN3270B NON-CANCELABLE - ISSUE FORCE ARM
Specify the customized profile data set name on the PROFILE DD entry in the JCL. The data
set must be fixed and blocked with a record length of 56 - 256. The block size must be evenly
divisible by the record length. Normally, the profile member is placed into a PDS that has a
record length of 80, and blocked accordingly.
Specify the customized tcpdata data set name on the //SYSTCPD DD statement in the JCL.
The JCL for the started task is shown in Example 2-6. Note the use of system symbolics.
Note: TN3270B uses non-reusable address spaces. For information about how to start
TN3270E by using a reusable address space ID (REUSASID), see IBM z/OS V2R2
Communications Server TCP/IP Implementation: Volume 1 Base Functions, Connectivity,
and Routing, SG24-8360.
Telnet help commands are used to see the format of any Telnet DISPLAY or VARY command.
Each help command shows the options that are available at the next level of detail. For
54 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
example, if you issue D TCPIP,tnproc,HELP, you see that you can issue help for either STOR,
TELNET, LUNS, or XCF. If you then issue D TCPIP,tnproc,HELP,TELNET, you see all the
display Telnet options that are available.
The Telnet STOR command displays the current and maximum storage usage status and
identifies the service level of Telnet modules in the previous release, as shown in
Example 2-8.
Contrasted with the TCPIP STOR command output, the Telnet STOR command displays the
storage usage status for CTRACE. TCPIP CTRACE storage resides in a separate data space
and is not part of the storage display. However, Telnet CTRACE resides in Telnet’s private
address space. If only the total POOL value is shown, the CTRACE amount obscures the
amount of storage that is used by Telnet processes. Therefore, before the data is presented,
the CTRACE amount is subtracted from the total POOL amount and presented on its own
line.
The CTRACE amount appears large because Telnet always allocates a 256 MB block of
storage to support the largest CTRACE BUFSIZE amount. This storage is not wrapped until it
is completed with data. You will never use real storage resources for more than the amount
you define on the CTRACE BUFSIZE parameter.
When you forget to state the Telnet server procedure name on the V TCPIP,tnproc,OBEYFILE
command to update your profile, the EZZ0209I message is issued. This message indicates
that the Telnet server configuration statements are ignored in TCP/IP instead of being
processed by the default TCP/IP stack.
Note: When you migrate your TN3270E server from running within your stack task to its
own address space, you will probably need to update your operational procedures and
automation.
New connections are associated with the current profile and use the mappings and
parameters that are defined by that profile. Even if a VARY TCPIP,,OBEYFILE command
updates the port, existing connections remain associated with the same profile. The
statements of non-current profiles remain in effect and continue to support all connections
that were established when the non-current profile was the CURRent profile. When all
connections associated with a non-current profile end, the parameter and mapping structure
storage for the non-current profile is released, leaving only a small anchor block that is used
for profile displays. At this point, the profile is considered INACTIVE.
You can better manage this release of unproductive storage by implementing the parameter
ProfileInactive in the TelnetGlobals, TelnetParms, or Parmsgroup statement. If the default
of 1800 seconds is used, connections that use noncurrent profiles will be dropped after being
without a SNA session for at least 30 minutes. ProfileInactive controls how long a
connection can stay connected without an SNA session when associated with a non-current
profile.
Use the OBEYFILE command to validate the new profile and also to activate the new profile.
The OBEYFILE command is entered the same either way. The TESTMODE statement makes
the difference between validation and actual activation. The OBEYFILE command is shown in
Example 2-10.
56 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 2-11 shows the resulting messages from the OBEYFILE command when the
TESTMODE statement is included in the TN3270 profile.
Example 2-11 Messages issued when TESTMODE is included in the TN3270 profile
V TCPIP,TN3270B,OBEYFILE,TCPIPB.TCPPARMS(TELNB31A)
EZZ6044I TN3270B PROFILE PROCESSING BEGINNING FOR FILE 610
TCPIPB.TCPPARMS(TELNB31A)
EZZ6045I TN3270B PROFILE PROCESSING COMPLETE FOR FILE
TCPIPB.TCPPARMS(TELNB31A)
EZZ6018I TN3270B PROFILE TESTMODE COMPLETE FOR PORT 23 1
EZZ6038I TN3270B COMMAND OBEYFILE COMPLETE
In this example, message EZZ6018I 1 indicates that the TESTMODE scan has been
performed and no activation of the profile occurred.
Example 2-12 shows the resulting messages from the OBEYFILE command when the
TESTMODE statement was removed from the TN3270 profile.
Example 2-12 Messages issued when TESTMODE is removed from the TN3270 profile
V TCPIP,TN3270B,OBEYFILE,TCPIPB.TCPPARMS(TELNB31A)
EZZ6044I TN3270B PROFILE PROCESSING BEGINNING FOR FILE 594
TCPIPB.TCPPARMS(TELNB31A)
EZZ6045I TN3270B PROFILE PROCESSING COMPLETE FOR FILE
TCPIPB.TCPPARMS(TELNB31A)
EZZ6018I TN3270B PROFILE UPDATE COMPLETE FOR PORT 23 1
EZZ6038I TN3270B COMMAND OBEYFILE COMPLETE
In this example, message EZZ6018I 1 indicates that the profile has been activated and the
TN3270 server is listening on the specified port.
Note: You can specify the TESTMODE statement in the initial startup profile. However, the
result is that no port is opened and that clients cannot connect. It is as though no profile
statements existed in the initial profile.
If the stack is running in IPv6 or if the FORMAT LONG configuration statement is specified,
then tabular style displays are used in a format that uses a second line to display the data
when a client ID appears on the line. The displays are in the single-line format if the stack is
running in IPv4 and the FORMAT LONG configuration statement is not specified. To ensure
uniformity in the displays, if the second line format is in effect, then any IPv4 address is
displayed on the second line even if the data would fit on a single line.
To conserve space in the examples, we used the SHORT format for all the example displays.
Most of the Telnet DISPLAY commands are grouped into one of the following categories:
D TCPIP,tnproc,PROF,....
D TCPIP,tnproc,CLID,....
D TCPIP,tnproc,OBJ,....
D TCPIP,tnproc,CONN,....
Note: Profile, connection, and port-related displays contain a port description line that
identifies the port for the preceding lines of data.
All commands that contain the PROFILE= parameter are considered part of the profile group
because the commands categorize (and display) the information based on what profile it is
contained in. All of these commands search all profiles that match the PROFILE= search
criteria. After a match is found, the other parameters are used to determine what is displayed
for the profile.
Example 2-13 Display PROF, SUM shows profile summary for all profiles
D TCPIP,TN3270B,PROF,SUM
EZZ6060I TN3270B PROFILE DISPLAY 768
PERSIS FUNCTION DIA SECURITY TIMERS MISC
(LMTGCAK)(OATSKTQSSHRT)(DRF)(PCKLECXN2)(IPKPSTS)(SMLT)
------- ------------ --- --------- ------- ----
LM***** **TSBTQ***RT ECF BB******* *P**ST* SDD*
----- PORT: 23 ACTIVE PROF: CURR CONNS: 0
------------------------------------------------------------
FORMAT LONG
58 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
TCPIPJOBNAME TCPIPB
TNSACONFIG DISABLED
DEBUG TASK EXCEPTION CONSOLE
DEBUG CONFIG EXCEPTION CONSOLE
DEBUG CONFIG TRACEOFF
14 OF 14 RECORDS DISPLAYED
A profile detail report (Example 2-14) shows the port settings and includes a legend to help
interpret the abbreviated settings.
Example 2-14 Display PROF, DET shows profile detail for all profiles
D TCPIP,TN3270B,PROF,DET,MAX=*
EZZ6080I TN3270B PROFILE DISPLAY 776
PERSIS FUNCTION DIA SECURITY TIMERS MISC
(LMTGCAK)(OATSKTQSSHRT)(DRF)(PCKLECXN2)(IPKPSTS)(SMLT)
------- ------------ --- --------- ------- ----
******* **TSBTQ***RT EC* BB**D**** *P**STS *DD* *DEFAULT
------- -----------T --- --------- ------- ---- *TGLOBAL
LM----- ---S-------- --F -B--*---- *---ST* S--- *TPARMS
LM***** **TSBTQ***RT ECF BB******* *P**ST* SDD* CURR
PERSISTENCE
LUSESSIONPEND
MSG07
...
FUNCTIONS
...
TN3270E
SNAEXTENT
...
DIAGNOSTICS
DEBUG CONN EXCEPTION CONSOLE
DEBUG CONN TRACEOFF
FULLDATATRACE
SECURITY
PORT 23
CONNTYPE BASIC
KEYRING TTLS/**N/A**
CRLLDAPSERVER NONE/TTLS/**N/A**
ENCRYPTION **N/A**
CLIENTAUTH **N/A**
NOEXPRESSLOGON
NONACUSERID
NOSSLV2
TIMERS
...
MISCELLANEOUS
...
----- PORT: 23 ACTIVE PROF: CURR CONNS: 0
------------------------------------------------------------
FORMAT LONG
TCPIPJOBNAME TCPIPB
...
Example 2-15 Display PROF, BASIC, SUM shows profile summary for basic profiles
D TCPIP,TN3270B,PROF,PROF=BASIC,SUM
EZZ6060I TN3270B PROFILE DISPLAY 787
PERSIS FUNCTION DIA SECURITY TIMERS MISC
(LMTGCAK)(OATSKTQSSHRT)(DRF)(PCKLECXN2)(IPKPSTS)(SMLT)
------- ------------ --- --------- ------- ----
LM***** **TSBTQ***RT ECF BB******* *P**ST* SDD*
----- PORT: 23 ACTIVE PROF: CURR CONNS: 0
------------------------------------------------------------
FORMAT LONG
TCPIPJOBNAME TCPIPB
TNSACONFIG DISABLED
DEBUG TASK EXCEPTION CONSOLE
DEBUG CONFIG EXCEPTION CONSOLE
DEBUG CONFIG TRACEOFF
14 OF 14 RECORDS DISPLAYED
The profile report can be limited to SECURE ports only, as shown in Example 2-16. Because
no secure ports are defined in this profile, no entries are listed.
Example 2-16 Display PROF, SECURE, SUM shows profile summary for secure profiles
D TCPIP,TN3270B,PROF,PROF=SECURE,SUM
EZZ6060I TN3270B PROFILE DISPLAY 794
FORMAT LONG
TCPIPJOBNAME TCPIPB
TNSACONFIG DISABLED
DEBUG TASK EXCEPTION CONSOLE
DEBUG CONFIG EXCEPTION CONSOLE
DEBUG CONFIG TRACEOFF
8 OF 8 RECORDS DISPLAYED
Example 2-17 Display CLID, SUM shows clientID summary for all profiles
D TCPIP,TN3270B,CLID,SUM
EZZ6082I TN3270B CLIENTID LIST 796
USERID
NO CLIENT IDS
HOSTNAME
NO CLIENT IDS
IPADDR
NO CLIENT IDS
USERGRP
60 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
NO CLIENT IDS
HNGRP
NO CLIENT IDS
IPGRP
NO CLIENT IDS
DESTIP
NO CLIENT IDS
LINKNAME
NO CLIENT IDS
DESTIPGRP
NO CLIENT IDS
LINKGRP
NO CLIENT IDS
NULL
NULL
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
26 OF 26 RECORDS DISPLAYED
All CLIENTID types are listed for reference. If a CLIENTID type is not defined, then NO CLIENT
IDS are indicated.
A ClientID detail report shows how many connections are associated with which client ID
groups, as shown in Example 2-18.
Example 2-18 Display CLID, DET shows clientID detail for all profiles
D TCPIP,TN3270B,CLID,DET
EZZ6081I TN3270B CLIENTID DISPLAY 802
CLIENT ID CONNS OBJECT OBJECT ITEM
NAME USING TYPE NAME SPECIFIC OPTIONS
------------------ ------ --------- -------- ---------- --------
NULL
NULL
1 DEFAPPL SC31TS --------
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
10 OF 10 RECORDS DISPLAYED
The ClientID report can be limited to BASIC ports only, as shown in Example 2-19.
Example 2-19 Display CLID, BASIC, SUM shows clientID summary for basic profiles
D TCPIP,TN3270B,CLID,PROF=BASIC,SUM
EZZ6082I TN3270B CLIENTID LIST 808
USERID
NO CLIENT IDS
HOSTNAME
NO CLIENT IDS
IPADDR
NO CLIENT IDS
USERGRP
NO CLIENT IDS
HNGRP
NO CLIENT IDS
IPGRP
The ClientID report can be limited to SECURE ports only. Because no SECURE ports are
defined in the profile, message EZZ6057I indicates that there are no entries to list, as shown
in Example 2-20.
Example 2-20 Display CLID, SECURE, SUM shows client ID summary for secure profiles
D TCPIP,TN3270B,CLID,PROF=SECURE,SUM
EZZ6082I TN3270B CLIENTID LIST 813
EZZ6057I NO QUALIFYING MATCHES
3 OF 3 RECORDS DISPLAYED
The object summary report shows any objects that might be defined in the profile and what
their assignments are, as shown in Example 2-21.
Example 2-21 Display OBJ, SUM shows object summary for all profiles
D TCPIP,TN3270B,OBJ,SUM
EZZ6084I TN3270B OBJECT LIST 819
ARAPPL
SC* NVAS* TSO* *
DEFAPPL
SC31TS
PRTAPPL
NO OBJECTS
LINEAPPL
NO OBJECTS
MAPAPPL
NO OBJECTS
USS
NO OBJECTS
INT
62 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
NO OBJECTS
LU
NO OBJECTS
LUGRP
*DEFLUS*
SLUGRP
NO OBJECTS
APPLLUG
NO OBJECTS
PRT
NO OBJECTS
PRTGRP
NO OBJECTS
SPRTGRP
NO OBJECTS
PARMSGRP
*DEFAULT *TGLOBAL *TPARMS
MONGRP
NO OBJECTS
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
36 OF 36 RECORDS DISPLAYED
All OBJECT types are listed for reference. If an OBJECT type is not defined, then NO
OBJECTS is indicated.
The object detail report indicates how many connections there are for each object group, as
shown in Example 2-22.
Example 2-22 Display OBJ, DET shows object detail for all profiles
D TCPIP,TN3270B,OBJ,DET
EZZ6083I TN3270B OBJECT DISPLAY 821
OBJECT CONNS CLIENT ID CLIENT ID ITEM
NAME USING TYPE NAME SPECIFIC OPTIONS
---------- ------ --------- ---------------- ---------- --------
ARAPPL
SC* 1
-A------
NVAS* 0
-A------
5 ----Q---
TSO* 0
-A-D----
* 0
-A------
DEFAPPL 0
-I------
DEFAPPL
SC31TS 1 NULL NULL
--------
LUGRP
*DEFLUS* 1
--------
PARMSGRP
*DEFAULT -------NO MAPPING---------
The object report can be limited to basic or to secure ports. Because no secure ports are
defined in this profile, message EZZ6057I indicates that there are no entries to list, as shown
in Example 2-23.
Example 2-23 Display OBJ, SECURE, SUM shows object summary for secure profiles
D TCPIP,TN3270B,OBJ,PROF=SECURE,SUM
EZZ6084I TN3270B OBJECT LIST 825
EZZ6057I NO QUALIFYING MATCHES
3 OF 3 RECORDS DISPLAYED
Example 2-24 Display CONN shows all connections to the Telnet server
D TCPIP,TN3270B,CONN,MAX=*
EZZ6064I TN3270B CONN DISPLAY 852
EN TSP
CONN TY IPADDR..PORT LUNAME APPLID PTR LOGMODE
-------- -- ---------------------- -------- -------- --- --------
00000347 ::FFFF:10.1.100.221..4271
SC31BB02 SC31TS03 TAE SNX32702
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
9 OF 9 RECORDS DISPLAYED
The connection report can be limited to basic ports only, showing only basic connections, as
shown in Example 2-25.
Example 2-25 Display CONN, BASIC shows the basic connections only
D TCPIP,TN3270B,CONN,PROF=BASIC,MAX=*
EZZ6064I TN3270B CONN DISPLAY 855
EN TSP
CONN TY IPADDR..PORT LUNAME APPLID PTR LOGMODE
-------- -- ---------------------- -------- -------- --- --------
00000347 ::FFFF:10.1.100.221..4271
SC31BB02 SC31TS03 TAE SNX32702
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
9 OF 9 RECORDS DISPLAYED
64 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The connection report shows secure ports and secure connections, as shown in
Example 2-26.
The CONNECTION display command with the CONN= parameter and SUM parameter gives
a summary look at one single connection, as shown in Example 2-27.
Example 2-27 Display CONN, CONN=, SUM shows summary information for one connection only
D TCPIP,TN3270B,CONN,CONN=00000347,SUM
EZZ6064I TN3270B CONN DISPLAY 862
EN TSP
CONN TY IPADDR..PORT LUNAME APPLID PTR LOGMODE
-------- -- ---------------------- -------- -------- --- --------
00000347 ::FFFF:10.1.100.221..4271
SC31BB02 SC31TS03 TAE SNX32702
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
9 OF 9 RECORDS DISPLAYED
The CONNECTION display command with the CONN= parameter and DET parameter gives
a complete look at one single connection, as shown in Example 2-28.
Example 2-28 Display CONN, CONN=, DET shows detail information for one connection only
D TCPIP,TN3270B,CONN,CONN=00000347,DET
EZZ6065I TN3270B CONN DISPLAY 877
CONNECTED: 17:11:14 09/28/2010 STATUS: SESSION ACTIVE
CLIENT IDENTIFIER FOR CONN: 00000347 SECLABEL: **N/A**
CLIENTAUTH USERID: **N/A**
HOSTNAME: NO HOSTNAME
CLNTIP..PORT: ::FFFF:10.1.100.221..4271
DESTIP..PORT: ::FFFF:10.1.1.20..23
LINKNAME: VIPA1L
PORT: 23 QUAL: NONE
AFFINITY: TCPIPB
STATUS: ACTIVE BASIC
ACCESS: NON-SECURE
PROTOCOL: TN3270E DEVICETYPE: IBM-3278-2-E
TYPE: TERMINAL GENERIC
OPTIONS: ETET---- 3270E FUNCTIONS: BSR----
NEWENV FUNCTIONS: --
LUNAME: SC31BB03
APPL: SC31TS01
USERIDS RESTRICTAPPL: **N/A** EXPRESSLOGON: **N/A**
LOGMODES TN REQUESTED: SNX32702 APPL SPECIFIED: SNX32702
MAPPING TYPE: CONN IDENTIFIER
OBJECT ITEM SPECIFIC OPTIONS
LUMAP GEN: NL (NULL)
>*DEFLUS* --------
DEFLT APPL: NL (NULL)
The CONNECTION display command with the LUNAME= parameter and SUM parameter
gives a summary look at the connection assigned to that LU name, as shown in
Example 2-29.
Example 2-29 Display CONN, LUNAME=, SUM shows summary information for one LU name only
D TCPIP,TN3270B,CONN,LUNAME=SC31BB03,SUM
EZZ6064I TN3270B CONN DISPLAY 883
EN TSP
CONN TY IPADDR..PORT LUNAME APPLID PTR LOGMODE
-------- -- ---------------------- -------- -------- --- --------
00000347 ::FFFF:10.1.100.221..4271
SC31BB03 SC31TS01 TAE SNX32702
----- PORT: 23 ACTIVE PROF: CURR CONNS: 1
------------------------------------------------------------
9 OF 9 RECORDS DISPLAYED
The CONNECTION display command with the LUNAME= parameter and DET parameter
gives you a complete look at the connection assigned to that LU name. Because the single
example is only one connection, using either the CONN= or the LUNAME= parameter results
in displaying the same connection.
66 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Use VARY to quiesce, resume, and stop a TN3270 port
Telnet VARY commands enable the operator to change the state of TN3270 ports, and enable
or disable the use of certain TN3270 ports:
VARY TCPIP,tnproc,QUIESCE on a port to block any new connection requests but allow
existing connections to continue activity.
VARY TCPIP,tnproc,RESUME on a port to end the QUIESCEd state and allow new
connection requests.
VARY TCPIP,tnproc,STOP on a port to end connections on the port, and close the port, and
discard all information for that port as though it were never defined.
VARY TCPIP,tnproc,OBEYFILE to start, restart, or change a port by updating the TN3270
profile.
To verify the QUIESCE command, use a display profile command as shown in Example 2-31.
If a client attempts to connect while the port is quiesced, the request is rejected, as shown in
Example 2-32. The connection request is directed toward the quiesced port by using the TSO
TELNET command.
To verify the RESUME command, a display profile command is shown (Example 2-34).
An example of the STOP command is shown in Example 2-35. The client connection that was
active is forced off and messages show the adverse effect on the connection. All connections
on port 23 would be terminated.
To verify the STOP command, a display profile command is shown in Example 2-36.
68 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Using the OBEYFILE command to restart port 23 is shown in Example 2-37.
To verify that port 23 is again defined and active, a display profile command is shown
(Example 2-38).
To show a list of inactive TN3270 LUs before any are inactivated, use the Display INACTLUS
command as shown in Example 2-39.
To show a list of inactive TN3270 LUs, use the Display INACTLUS command, as shown in
Example 2-43. Because SC31BB26 was reactivated, it no longer shows as an inactive LU.
User1
User2
LU1 Application
LU2 z/OS TSO
X Telnet
User1
LU1 User2
Generic
LU2
The check client connection function sends a TIMEMARK value to every pre-existing
connection that is associated with the client identifier of the new connection that is being
established. If a response is not received, the connection is ended. This process is useful
when you have a generic request configuration with many clients on a single workstation.
Neither specific nor generic takeover ends an existing SNA session. An alternate method,
using the keepalive function with ScanInterval and Timemark, creates high processor burden.
The check client connection method creates much less burden.
70 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The CheckClientConn statement has the following syntax:
CheckClientConn sec,maxconn
Tip: This parameter is important if you are using a proxy server. A proxy server causes
all client connections to appear as though they were coming from the same client IP
address. A large maxconn setting might be needed in this situation.
Example 2-44 shows the definition for clients with a maximum of 60 Telnet connections.
Example 2-45 displays the profile before adding the CheckClientConn statement. The default
setting is indicated.
Example 2-46 displays the profile after adding the CheckClientConn statement. The default
setting is indicated.
The LU exit assigned USS table takes precedence over a mapped USS table.
72 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Important: An unformatted system services assignment for a TN3270E connection must
be without SimClientLU. The LU name must be assigned during TN negotiation before the
first USSMSG10 window is sent. Non-TN3270E connections are not assigned an LU name
until the application name is chosen. By then, the first USSMSG10 window has already
been sent to the client.
The parameter list has been expanded to accommodate the USS table names. Attempting to
write these names into a down-level parameter list results in storage overlays.
Existing functions are not changed by this function. You must change your LU exit to use this
function.
Important: To keep storage usage low in your system, minimize the number of unique
USS tables loaded, the number of unique 3270/SCS pairs created, and the number of
active profiles.
An easy way to review potential symbols is with the MVS command D SYMBOLS to display the
potential symbols that might be used in MSG10. Example 2-47 illustrates usage of system
symbols.
Example 2-47 USS table source code with SYSNAME and SYSR11
MSG10 DC AL2(MSG10E-MSG10S)
MSG10S EQU *
DC X'F5C31140401D40' ERASE/WRITE,WCC,SBA R1C1,
DC C'WTSC30 You are connected to a non-SNA terminal - - - '
DC X'11C1501DE4'
DC CL50' '
DC CL30' '
DC CL50'System Name: &&SYSNAME. '
DC CL30'z/OS Release: &&SYSR11. '
DC CL50' '
DC CL30' '
......................................
Note: Notice the double ampersand (&) on the symbolic name. This notation is necessary.
This function can be useful for diagnostic information. For example, including the LPAR name
can be helpful in many situations. The system symbol support is not present in the native
VTAM USS support. Any system symbol coded on a shared table is not converted by VTAM.
The symbol name is displayed if the table is used for VTAM USS processing.
You can specify how long to wait after receiving an UNBIND. This setting allows TN3270 to
redrive setup if a session manager does not bind within a specified time after the previous
session‘s unbind. It eliminates the need for the user to disconnect/reconnect in some error
cases. QSession is the associated parameter on the RESTRICTAPPL or ALLOWAPPL
statements.
74 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 2-49 shows the options for Allow/Restrict Appls.
Generally, use the Telnet SMF SNA termination record to collect “Life of Session” data.
Multiple SNA sessions are possible during the Life of a single connection and the data is
reported through Telnet SMF SNA session termination record (Type 119/subtype 21). The
following items are collected:
Transaction count
Round trip and IP response time totals
With this data, you can calculate some useful session information, including:
Averages for round trip, IP, and SNA response times
Variance and standard deviation for round trip, IP, and SNA response times
Sliding window data is not reported because data is collected at the end of each session.
The MonitorGroup and MonitorMap parameters in the BEGINVTAM block must be in place for
Telnet to capture performance data.
Telnet SMF 119 SNA sessions termination records have changed with this release. Part of
the Telnet section of the TCP connection termination record has a reason code. If the
connection was closed by the TN3270E server, the record contains the associated reason
code. For more information, see Appendix C, SMF type 119 records in z/OS Communications
Server: IP Configuration Reference, SC27-3651.
Note: Remember to configure Monitoring in the profile and create a MonitorGroup to map
the group to clients by using the MonitorMap statement. You do not need to set up
TNSACONFIG if SNMP is not being used.
Access to these SMF records is allowed if the user ID associated with the network
management application is permitted (read access) to this resource profile. In addition, to use
this service, it should be enabled on the stack by using the NETMONITOR SMFService statement
in PROFILE.TCPIP.
Important: Existing SMF119 Telnet SNA session termination records (subtype 21) usually
change with each release. Check the latest documentation for the most current SMF
record formats, which can be found in z/OS Communications Server: IP Configuration
Reference, SC27-3651.
76 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
2.3 Multiple TN3270E servers in a multiple image environment
This section provides an overview of executing multiple TN3270E servers in a sysplex
environment with a server on each LPAR. This environment is illustrated in Figure 2-7.
SC30 SC31
z/OS z/OS
TN3270A TN3270B
Client
Figure 2-7 TN3270E server within the sysplex
In Figure 2-7, clients connect to the Distributed DVIPA address of the TN3270E server. Based
on installation policies, the Sysplex Distributor (SD) then directs connections to the best
available TN3270E server.
Sysplex distribution, working with Workload Manager, provides intelligent, policy-based load
balancing between the stacks and between the TN3270E servers.
For more information about the advantages of high availability and workload balancing, and
how to implement appropriate scenarios, see the following publications:
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 3 High
Availability, Scalability, and Performance, SG24-8362
z/OS Communications Server: IP Configuration Guide, SC27-3650
The following topics discuss how to implement multiple TN3270E servers in the sysplex:
Multiple TN3270E servers within the sysplex
Configuration of multiple TN3270E servers within the sysplex
Activation and verification of multiple TN3270E servers in the sysplex
Only the additional required sysplex distribution configuration statements for the stack and for
the TN3270E server are described in this section.
Each system uses one TCP/IP stack. The TCP/IP stack started task name is the same on
both systems (TCPIP).
Each stack has one TN3270E server that is associated with it. The TN3270E server started
task name is TN3270A in SC30 and TN3270B in SC31. Stack affinity is established for the
server by using the TCPIPJOBNAME statement within the TELNETGLOBALS block. The
example uses system symbolics in the started task JCL to provide uniqueness where
necessary.
Figure 2-7 on page 77 shows that each system (SC30 and SC31) has the following started
tasks:
TCPIPA and TCPIPB
TN3270A and TN3270B
The two stacks are designed to back up each other. The two TN3270E servers also back up
each other. Although it is not a requirement for a backup stack to distribute connections
identically to the method of the primary stack, the example stacks are designed to do so. So
when the primary stack fails, or otherwise relinquishes its distributor responsibilities, the
backup stack continues to distribute connections to the TN3270E servers in identical fashion
as the primary.
Note: Implementing multiple, redundant TCP/IP stacks and TN3270E servers increases
the effort that is required of systems personnel to maintain equivalent configurations
across all participating systems. That increased effort should not be underestimated or
overlooked.
Planning and design are also more complex and involve multiple departments. Mainframe
systems and networking personnel must be aware of the physical network requirements.
Requirements for IP subnets and IP addresses are increased by introducing sysplex
distributed Dynamic VIPAs and Dynamic XCF. Operations must be made aware of changes
that sysplex distribution, multiple stacks, and multiple server applications introduce to the
environment. Automation and scheduling changes are also most likely to be required.
78 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Stack dependencies for multiple TN3270E servers within the sysplex
Because sysplex distribution is used in this scenario, all the functionality that a TCP/IP stack
needs to support SD is required, including:
The hardware and software required for the coupling facility and XCF communication.
XCFINIT=YES in VTAM, DYNAMICXCF in TCP/IP.
An IP subnet and host IP addressing assigned to the XCF interfaces.
If IBM HiperSockets™ are implemented, HiperSockets used by XCF must be consistent.
Most of the parameters within GLOBALCONFIG, IPCONFIG, TCPCONFIG, and
UDPCONFIG should be set the same on all participating stacks.
The multiple stacks must have Distributed Dynamic VIPA definitions added to support
distribution to the multiple TN3270E servers.
The VIPADYNAMIC block must be coded in the backup stack in such a way that it distributes
connections in a similar manner as the primary. The example scenario uses an identical
process.
The introduction of sysplex distribution adds the requirement for a new IP subnet for the
Distributed Dynamic VIPAs (if Dynamic VIPA has not already been implemented).
If these parameters differ, clients could experience differences between their sessions, and
even random connection failures.
Note: Use an LUNS to centralize LU name allocation and avoid duplicate LU name
assignments among the group of Telnet servers known as LUNRs. See 2.4, “Multiple
TN3270E servers using LU name server and LU name requester” on page 95 for more
information about LU name server and LU name requester.
If LU name server is not used for multiple TN3270E Telnet servers, the system
administrator must ensure that the LU names used are unique for each server.
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405 for the started task procedures used for this
scenario.
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405, for the stack profile used for this scenario.
80 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Customize a second TN3270E server started task procedure
This second started task is for running the second TN3270E server. It can be modeled after
the first server started task. You can use system symbolics to provide unique names for the
stacks’ configuration profile data sets when you define the started task procedure.
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405, for the started task procedures used for this
scenario.
Note: Use an LUNS to centralize LU name allocation and avoid duplicate LU name
assignments among the group of Telnet servers known as LUNRs. See 2.4, “Multiple
TN3270E servers using LU name server and LU name requester” on page 95 for a
detailed description about LU name server and LU name requester.
If the LU name server is not used for multiple TN3270E Telnet servers, the system
administrator must ensure that the LU names that are used are unique for each server.
This scenario uses different LU names for each TN3270E server. For a complete description
and examples of setting up a TN3270E server, see 2.2.2, “Configuration of the TN3270E
server” on page 44.
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405, for the basic TN3270E server profiles used for this
scenario.
82 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Enable the backup stack to support sysplex functions
Add statements to the backup stack that enable sysplex support. The statements that are
added to the backup stack are shown in Example 2-52.
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405 for the started task procedures used for this
scenario.
Additional statements must be added to support the Dynamic XCF interfaces and the
Dynamic VIPA interfaces. Example 2-54 shows the additional OMPROUTE statements for the
primary stack.
Example 2-54 OMPROUTE additional statements to support D-XCF and DVIPA: for primary stack
;
Global_Options Ignore_Undefined_Interfaces=yes;
;
; ************************************************************
; *Dynamic VIPA requirements
; * Although VIPA interfaces are not participating in the OSPF
; * protocol, they must be defined as an OSPF_INTERFACE so
; * they will be advertised to the default router.
; *Do not specify name for dynamically created interfaces
; * (* wildcard for ip address is to allow dynamics to work....
; * however this means that any address in the 10.1.8.*
; * network that may be found on the stack will be
; * matched to this interface statement...be cautious....
; * the 10.1.8.* subnet should be dedicated to D-VIPA use.
; ************************************************************
; Dynamic vipa VIPADEFINE
ospf_interface ip_address=10.1.8.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; ************************************************************
; *XCF Interfaces Created dynamically via DYNAMICXCF stmt in TCPIP
; *XCF Interfaces are point-to-multipoint interfaces
; *XCF Interfaces should not be advertised via OSPF, they are internal
; * to the stack, and therefore external to OSPF
; *Do not specify name for dynamically created interfaces
; * (* wildcard for ip address is to allow dynamics to work....
; * however this means that any address in the 10.1.7.*
; * network that may be found on the stack will be
; * matched to this interface statement...be cautious....
; * the 10.1.7.* subnet should be dedicated to XCF use.
84 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; *
; *Another way to accomplish all this is to just code the following stmt:
; * Global_Options Ignore_Undefined_Interfaces=yes;
; *
; ************************************************************
interface ip_address=10.1.7.*
subnet_mask=255.255.255.0
mtu=65535;
Example 2-55 shows the additional OMPROUTE statements for the backup stack.
Example 2-55 OMPROUTE additional statements to support D-XCF and DVIPA: for backup stack
;
Global_Options Ignore_Undefined_Interfaces=yes;
;
; ************************************************************
; *Dynamic VIPA Range requirements
; * Although VIPA interfaces are not participating in the OSPF
; * protocol, they must be defined as an OSPF_INTERFACE so
; * they will be advertised to the default router.
; *Do not specify name for dynamically created interfaces
; * (* wildcard for ip address is to allow dynamics to work....
; * however this means that any address in the 10.1.8.*
; * network that may be found on the stack will be
; * matched to this interface statement...be cautious....
; * the 10.1.8.* subnet should be dedicated to D-VIPA use.
; ************************************************************
; Dynamic vipa VIPADEFINE
ospf_interface ip_address=10.1.8.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
; ************************************************************
; *XCF Interfaces Created dynamically via DYNAMICXCF stmt in TCPIP
; *XCF Interfaces are point-to-multipoint interfaces
; *XCF Interfaces should not be advertised via OSPF, they are internal
; * to the stack, and therefore external to OSPF
; *Do not specify name for dynamically created interfaces
; * (* wildcard for ip address is to allow dynamics to work....
; * however this means that any address in the 10.1.7.*
; * network that may be found on the stack will be
; * matched to this interface statement...be cautious....
; * the 10.1.7.* subnet should be dedicated to XCF use.
; *
; *Another way to accomplish all this is to just code the following stmt:
; * Global_Options Ignore_Undefined_Interfaces=yes;
; *
; ************************************************************
interface ip_address=10.1.7.*
subnet_mask=255.255.255.0
mtu=65535;
See Appendix D, “Multiple TN3270E Telnet servers and sysplex distribution using the
LUNS and LUNR scenario” on page 405 for the basic OMPROUTE server profiles used for
this scenario.
For complete details about the NETSTAT command, see z/OS Communications Server: IP
System Administrator’s Commands, SC27-3661.
All verification tasks for a stand-alone TN3270E server apply. See 2.2.4, “Verification of the
TN3270E server” on page 54.
Complete these additional tasks to verify multiple TN3270E servers within the sysplex:
1. Start the second (backup) stack on the second system.
2. Start the second TN3270E server on the second system.
3. Use TELNET CONN displays to show TN3270 connections.
4. Use NETSTAT VCRT to show dynamic VIPA connection routing table.
5. Use NETSTAT VDPT to show dynamic VIPA destination port table.
6. Use NETSTAT VIPADCFG to show current dynamic VIPA configuration.
7. Use NETSTAT VIPADYN to show current dynamic VIPA and VIPAROUTE.
The LU naming convention includes the system name as part of the LU name. This
configuration helps determine to which system the connection is made.
86 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 2-56 shows a display of the connections on SC30, and Example 2-58 shows
CONN=E2 from SC31 (10.1.1.20) mapped to TSO on SC30, with an LU name of SC30BS02.
The S indicates the LU pool for secure port 992 as expected.
A display of the connections on SC31 in Example 2-57 and Example 2-59 on page 88 show
CONN=6E from SC32 (10.1.2.30) mapped to TSO on SC30, with an LU name of SC31BS03.
The S indicates the LU pool for secure port 992 as expected. The connection summary report
for SC30 is shown in Example 2-56.
Example 2-58 shows detailed information about one single connection on SC30.
88 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
APPL: SC30TS02
USERIDS RESTRICTAPPL: **N/A** EXPRESSLOGON: **N/A**
LOGMODES TN REQUESTED: SNX32702 APPL SPECIFIED: SNX32702
MAPPING TYPE: CONN IDENTIFIER
OBJECT ITEM SPECIFIC OPTIONS
LUMAP GEN: NL (NULL)
>*DEFLUS* --------
DEFLT APPL: DG GENERALUSER
SC30TS --------
USS TABLE: **N/A**
INT TABLE: **N/A**
MONGROUP: DG GENERALUSER
SNAANDIP --------
PERIOD: 120 MULT: 5
S/W AVG LOC AVG SUM R/T SSQ R/T ST DEV
======= ======= ======== ============ =======
SNA: 0 0 0 0 0
IP: 0 0 0 0 0
TOTAL: 0 0 0 0 0
COUNT: 0 0
BUCKET1 BUCKET2 BUCKET3 BUCKET4 BUCKET5
1 2 3 4 NO LMT
0 0 0 0 0
PARMS:
PERSIS FUNCTION DIA SECURITY TIMERS MISC
(LMTGCAK)(OATSKTQSSHRT)(DRF)(PCKLECXN2)(IPKPSTS)(SMLT)
------- ------------ --- --------- ------- ----
******* **TSBTQ***RT EC* BB**D**** *P**STS *DD* *DEFAULT
------- -----------T --- --------- ------- ---- *TGLOBAL
-M----- ---S-------- --F SSS------ *---ST- S--- *TPARMS
*M***** **TSBTQ***RT ECF SSS*D**** *P**STS SDD* TP-CURR
PARMSGROUP: DG GENERALUSER
*------ ------------ --- -B------- ------- ---- NOSSL
*M***** **TSBTQ***RT ECF SBS*D**** *P**STS SDD* <-FINAL
51 OF 51 RECORDS DISPLAYED
For each table entry that represents an established dynamic VIPA connection or an affinity
created by the passive-mode FTP, the DETAIL suboption additionally displays the policy rule,
action information, and routing information. For each entry that represents an affinity created
by the TIMEDAFFINITY parameter on the VIPADISTRIBUTE profile statement, it displays the
preceding information plus the affinity-related information.
Example 2-60 shows the connections at the time the VCRT command was issued. Notice that
the distributing stack knows about all of the connections because it is managing them.
Notice that the non-distributing stack shows only the connections that have been distributed
to it, as shown in Example 2-61.
If the DETAIL suboption is specified, the output contains policy action information, target
responsiveness values, and a WQ value (on a separate line). If DETAIL is not specified, the
output does not contain policy action information or target responsiveness and WQ values.
Example 2-62 shows the port table entries at the time of issuing the VDPT command. SC30
is currently the distributor, so it shows the ports being distributed and whether there is a ready
listener on the port.
Note: The TOTALCONN field indicates the total number of connections there have been
since the distribution started for the port. It does not represent the current number of
connections.
90 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
DESTXCF: 10.1.7.11
TOTALCONN: 0000000000 RDY: 001 WLM: 01 TSR: 100
FLG: ROUNDROBIN
DEST: 10.1.8.21..23
DESTXCF: 10.1.7.21
TOTALCONN: 0000000000 RDY: 001 WLM: 01 TSR: 100
FLG: ROUNDROBIN
DEST: 10.1.8.21..992
DESTXCF: 10.1.7.11
TOTALCONN: 0000000006 RDY: 001 WLM: 01 TSR: 100
FLG: ROUNDROBIN
DEST: 10.1.8.21..992
DESTXCF: 10.1.7.21
TOTALCONN: 0000000005 RDY: 001 WLM: 01 TSR: 100
FLG: ROUNDROBIN
...
Examples of VIPADCFG showing configuration information are shown next. The primary
distributor shows VIPA DEFINE, RANGE, DISTRIBUTE, and ROUTE sections, as shown in
Example 2-64.
The backup stack shows VIPA BACKUP, RANGE, DISTRIBUTE, and ROUTE sections, as
shown in Example 2-65.
92 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Use NETSTAT VIPADYN to show current dynamic VIPA and VIPAROUTE
VIPADYN displays the current dynamic VIPA and VIPAROUTE information from the
perspective of the stack on which the command is entered. Two suboptions are available to
filter the output:
DVIPA: Displays the current dynamic VIPA information only
VIPAROUTE: Displays the current VIPAROUTE information only
Example 2-66 shows SC30, NETSTAT VIPADYN with FTP and TN3270 DVIPA addresses.
Example 2-67 shows SC30, NETSTAT VIPADYN,DVIPA, with filters on DVIPA only.
Example 2-68 shows SC30, NETSTAT VIPADYN,VIPAROUTE with filters on VIPA ROUTE
only.
Example 2-69 shows SC31, NETSTAT VIPADYN with FTP and TN3270 DVIPA addresses.
Example 2-70 shows SC31, NETSTAT VIPADYN,DVIPA with filters on DVIPA only.
94 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 2-71 shows SC31, NETSTAT VIPADYN,VIPAROUTE with filters on viparoute only.
For more detailed information about the description and configuration of LU name server and
LU name requester, see z/OS Communications Server: IP Configuration Guide, SC27-3650.
Telnet A
LUNR
LU
VTAM CICS
Table A
Telnet 1
LUNS
Sess LUCICS
Mgr
Telnet B
LU
LUNR
Table A+B
LU
Table B
In most cases, all LU groups are defined at the LU name requester. Existing LU group
definitions are considered local groups. A new set of LU group definitions define the shared
LU groups. The shared LU group definitions are sent to the LU name server. It is possible to
define a mixture of shared and local LU groups. Only the connections that are mapped to
shared LU groups use the LU name server services for LU assignment. If a connection maps
to a local LU group, the Telnet server assigns the LU name directly from its pool, as it always
has.
Shared LU groups
New LU group objects are used at the LU name requester to indicate that the set of LU
names in that group need to be coordinated by the LU name server. These object types are
called shared LU groups. Shared LU group definitions can be the same on multiple Telnet
servers. The shared LU group definitions are sent to the LU name server for central
management of LU names. If there is no active LU name server, the LU name requester waits
and the profile remains in PENDING state until an LU name server becomes active.
Example 2-72 shows the six statements that are used for defining shared LUs.
96 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: Shared LUs are defined only in the LU name requester.
Non-shared LU groups
Existing non-shared LU groups continue to be supported. Assignment of LU names from
non-shared LU groups is managed locally on the Telnet server where the LU group is defined.
Other Telnet servers in the sysplex remain unaware of non-shared LU name assignments. LU
names in non-shared LU groups still must be administered manually to prevent duplicate
client assignment. LU names should not be defined in both shared and non-shared LU name
groups. Otherwise, duplicate LU assignments are still possible between non-shared and
shared LU name groups.
Note: Non-shared LUs can be defined on the TN3270 LU name requester, the LU name
server, or both.
Figure 2-9 shows a client connection that is accepted at TelnetA and maps to SLUGRP1.
TelnetA LUNR
LU Table A
LU Table B
The LU name request to the LU name server includes the LU name requester name, TelnetA,
and the LU group name SLUGRP1. The LU name server searches only TelnetA-SLUGRP1
for a possible LU allocation and makes sure that LU is not allocated to any other connection
across all LUNRs. Assume that LU1 is allocated and another client connection is accepted at
TelnetB and maps to SLUGRP2. The LU name request to the LU name server includes
The shared LUs are defined at the LU name requester, and their definition is sent to the LU
name server over an IP connection. The LU name requester must know the IP address of the
LU name server and the port number of the LU name server administrative listener. The LU
name requester owns all the LU definitions and sends the LU group definitions to the LU
name server. Depending on the number of defined LUs during system startup, considerable
volume of data can flow between the LU name server and the LU name requester.
A TN3270E Telnet server that joins an XCF group cannot display the status of all of the
members in that group and is called an XCF Telnet server. An XCF Telnet can define shared
LU groups for use on a Telnet port.
A TN3270E Telnet server that joins an XCF group and is configured to coordinate LU name
assignments is called an XCF LU name server Telnet server.
Any Telnet server can be configured to participate in any combination of these roles. An LU
name requester Telnet can have ports that use only shared LU name groups or a mixture of
shared and non-shared LU name groups. An LU name server Telnet can also be an LU name
requester Telnet, or it might be a dedicated LU name server Telnet.
Running Telnet as only an LU name server in its own address space has the following
advantages:
Telnet port server functions do not compete with the LU name server for resources within
the address space.
You can separate Telnet roles, which makes problem diagnosis easier.
You can stop and restart the Telnet port servers without stopping the Telnet LU name
server.
You can set the Telnet LU name server priority to a different priority than that of Telnet port
servers.
A sysplex can have only one active LU name server. However, to avoid a single point failure,
define one or more backup LU name servers in the sysplex. You can configure an LU name
server as a primary or a backup LU name server. When the primary LU name server starts, it
determines whether there is already an active LU name server in the XCF group. If there is
not, that primary LU name server attempts to become the active LU name server. If there is
already an active LU name server, the primary LU name server becomes a standby LU name
server. If several Telnet servers that are designated as a primary LU name server are started
concurrently, then the first server to connect becomes the active LU name server and the
others become standby servers.
When a backup LU name server starts, if there is no active LU name server in the XCF group,
the backup LU name server has a JOINED state and waits for the active LU name server.
After the primary LU name server starts and becomes the active LU name server, the backup
LU name server can change the state from JOINED to STANDBY and acts as a standby LU
name server. When the active LU name server fails, the standby LU name server becomes
the active LU name server.
98 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When you define the LU name server and LU name requester, consider the following notes:
A TN3270E can be defined as a dedicated LU name server.
A TN3270E can act simultaneously as an LU name server and LU name requester.
You can define non-shared LUs in an LU name server.
An LU name requester can support both shared and unshared LU groups.
You can only define shared LUs in an LU name requester.
Telnet D
LUNR
Telnet A
Telnet 1
LUNR LU
LUNS Active
Table D
LU
Table A LU
Table A+B+C+
D+E
Telnet E
LUNR
Telnet B
LUNR
LU
Table E
LU XCF
Table B
Telnet 2 Telnet F
Telnet C LUNS Standby LUNR
LUNR
LU
LU Table F
Table C
The green (Telnet 1 and Telnet 2) are the primary and standby LU name server. Telnet 1 is the
active LU name server in the group and Telnet 2 is the standby LU name server. Telnet 2
takes over automatically as the active LU name server in the group if the current active LU
name server in fails.
The purple (Telnet A, Telnet B, and Telnet C) servers are all members of a Telnet XCF group.
The three Telnet servers (A, B, and C) are all serving the same port on the same IP address
with identical LU group definitions and mapping statements.
The blue (Telnet D and Telnet E) LUNRs each serve different Telnet ports with different
shared LU group definitions and mapping statements.
The red (Telnet F) server has not joined the group and is serving another Telnet port with its
own LU group definitions and mapping statements. It has no communication with the group.
The LU name server ensures that LU names defined in shared groups are assigned to only
one LU name requester at a time, regardless of whether the Telnet F server has joined a
group.
When the standby LU name server takes the role of the primary LU name server, the
administrative connection establishes a socket connection with the standby LU name server.
Note: A coupling facility is not needed to implement a TN3270E LU name server and LU
name requester
Several independent Telnet XCF groups can be created concurrently by defining multiple
Telnet XCF group names, or subplexes, in the sysplex. You might want to create multiple XCF
groups to isolate internal client and external client Telnet XCF groups. All the LU name
requester members of a group must be able to create TCP connections to the LU name
server. All the members of a group should be in the same VTAM NETID.
XCFGROUP statement
The XCFGROUP statement determines whether the TN3270E server joins the XCF group
and the roles it carries out (LU name server, LU name requester, or both).
100 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
>>-+-------------------------------------------------------------------------------------+--<<
| .------------------------------------------------------------. |
| v | |
'-XCFGROUP-+-+-------------------------------------------------------+--+-ENDXCFGROUP--'
| |
| .--JOIN---. .-XCFMONITOR 60-. |
+-+---------+-----+----------------+-+----------------+-| XCF Group
| '--NOJOIN-' '-SUBPLEX suffix-' '-XCFMONITOR sec-' |
| |
| .-PRIMARY----RANK 255----. |
+-LUNS--ipaddr port-+------------------------+----------+
| | .--RANK 255--. | |
| +-PRIMARY-+------------+-+ |
| | '--RANK num--' | | LUNS
| | .--RANK 1--. | |
| '-BACKUP--+------------+-' |
| '--RANK num--' |
| .-RECOVERYTIMEOUT 60-. .-CONNECTTIMEOUT 60-. |
+-+---------------------+---+--------------------+------+ LUNR
'-RECOVERYTIMEOUT sec-' '-CONNECTTIMEOUT sec-'
Figure 2-11 XCFGROUP statement for LU name server and LU name requester
The TN3270E server must join the XCF group and specify LU name server-specific
parameters to be an LU name server. These parameters are the IPADDR and port specifying
where this Telnet listens for LU name requester connection requests when it becomes the
active LU name server.
PRIMARY specifies that this Telnet becomes the active LU name server at job initiation if no
active LU name server exists. If you specify more than one TN3270E server as primary, both
TN3270E servers enter to LU name server START state with an LU name server count of 1
and use that count to compete for the sysplex enqueue. The TN3270E that wins the race
moves to ACTIVE with an LU name server count of 1. The second LU name server loses and
moves to STANDBY.
BACKUP specifies that this Telnet moves to LU name server STANDBY state at job initiation.
SC30 SC31
SDEFAULTLUS:
Communcation between LUNS/LUNR SHLU01-SHLU04
through XCF local group; SLUGRP:
Level 3 Switch SHRGRP99
LUNR request LU name assignment SH99LU01-SH99LU04
from active LUNS;
10.1.100.221 10.1.100.222
Figure 2-12 TN3270E server within the sysplex using LU name server and LU name requester
This scenario is based on the TN3270E servers within the sysplex that is described 2.2,
“TN3270E server in a single image” on page 44.
In addition to the configuration tasks for every TN3270E server instance described in 2.3.2,
“Configuration of multiple TN3270E servers within the sysplex” on page 80, the following
tasks are necessary to configure multiple TN3270E servers within sysplex using LU name
server and LU name requester:
1. Customize primary and backup LU name server started task procedure.
2. Customize primary and backup LU name server configuration profile data set.
3. Define system security for LU name server started task.
4. Customize TN3270E server configuration profile for LU name requester.
5. Define APPL major node for shared LUs.
Specify the customized profile data set name on the PROFILE DD entry and the customized
tcpdata data set name on the SYSTCP DD statement in the JCL.
102 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The JCL for the primary LUNS started task is shown in Example 2-73.
Example 2-73 JCL for the LU name server primary server: TNLUNS31
BROWSE SYS1.PROCLIB(TNLUNS31) - 01.02 Line 00000000 Col 001 080
Command ===> Scroll ===> CSR
********************************* Top of Data *********************************
//TNLUNS31 PROC PARMS='CTRACE(CTIEZBTN)',
// PROFILE=LUNS&SYSCLONE.,TCPDATA=DATAB&SYSCLONE.
//TNLUNS EXEC PGM=EZBTNINI,REGION=0M,PARM='&PARMS'
//STEPLIB DD DISP=SHR,DSN=SYS1.LOCAL.VTAMLIB
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//SYSOUT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//PROFILE DD DISP=SHR,DSN=TCPIPB.TCPPARMS(&PROFILE.)
//SYSTCPD DD DISP=SHR,DSN=TCPIPB.TCPPARMS(&TCPDATA.)
The JCL for the backup LU name server started task can be modeled after the primary LU
name server started task. The JCL for backup LU name server started task is shown in
Example 2-74. You can also use same JCL for both started task procedures if possible, using
system symbolics to provide unique names for configuration files.
Example 2-74 JCL for the LU name server backup server: TNLUNS30
//TNLUNS30 PROC PARMS='CTRACE(CTIEZBTN)',
// PROFILE=LUNS&SYSCLONE.,TCPDATA=DATAA&SYSCLONE.
//TNLUNS EXEC PGM=EZBTNINI,REGION=0M,PARM='&PARMS'
//STEPLIB DD DISP=SHR,DSN=SYS1.LOCAL.VTAMLIB
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//SYSOUT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//PROFILE DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&PROFILE.)
//SYSTCPD DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&TCPDATA.)
Telnet SUBPLEX
The SUBPLEX suffix can be used to modify the name of the XCF group to join. If your
environment has one or more of the following characteristics, then you need to partition the
sysplex into Telnet subplexes:
If the sysplex is partitioned into TCP/P subplexes that do not have connected routes to
each other, then partition the sysplex into Telnet subplexes along the same TCP/IP
boundaries.
If your sysplex is partitioned into VTAM subplexes and the VTAMs are in different
networks, then partition the sysplex into Telnet subplexes along the same VTAM network
boundaries.
If you use several Telnet ports, each with a large set of shared LU names that do not
overlap and if you load balance these ports across several Telnet servers, you might want
to partition the sysplex into Telnet subplexes along the Telnet port boundaries. Subplexes
reduce the shared LU name management workload on the LU name server and provide
operational independence of the LU name server.
Example 2-75 Primary LU name server configuration profile data set: TCPIPB.TCPPARMS(LUNS31)
TELNETGLOBALS
TCPIPJOBNAME TCPIPB 1
XCFGROUP
JOIN XCFMONITOR 60 2
LUNS 10.1.1.20 4444 3
PRIMARY 4
RANK 101 5
ENDXCFGROUP
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
ENDTELNETGLOBALS
104 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 2-76 defines the backup LUNS configuration profile data set.
Example 2-76 Backup LU name server configuration profile data set: TCPIPA.TCPPARMS(LUNS30)
TELNETGLOBALS
TCPIPJOBNAME TCPIPA 1
XCFGROUP
JOIN XCFMONITOR 60
LUNS 10.1.1.10 4444 2
BACKUP 3
RANK 99 4
ENDXCFGROUP
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
ENDTELNETGLOBALS
This discussion assumes that RACF is the security subsystem that is used. If another security
product is used, see its documentation for equivalent setup instructions.
The procedure name must be added to the RACF STARTED class and have a user ID
associated with it. Use the same user ID TN3270 as other TN3270E Telnet servers for LU
name server started task. The definition statement is as follows:
RDEFINE STARTED TNLUNS*.* STDATA(USER(TCPIP))
SETROPTS RACLIST(STARTED) REFRESH
Coding the started task name by using the wildcard format enables you to run multiple LU
name server started tasks without having to define each one separately. Their names are all
spelled TNLUNSx, where x is the qualifier. They can all be assigned to the same user ID.
A portion of the TN3270E configuration profile data set is shown in Example 2-77.
Note: A profile can have either DEFAULT or SDEFAULT defined, but not both.
106 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
An LU name server Telnet can also be an LU name requester Telnet. You can use a portion of
the configuration statement that is shown in Example 2-78 to define the combined LUNS and
LUNR that are running in the same Telnet server.
Example 2-78 Configuration profile for LUNS and LUNR running in same Telnet server
TELNETGLOBALS
TCPIPJOBNAME TCPIPA
XCFGROUP
JOIN XCFMONITOR 60
LUNS 10.1.1.10 4444 1
BACKUP
RANK 99
RECOVERYTIMEOUT 60
CONNECTTIMEOUT 60
ENDXCFGROUP
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
....
ENDTELNETGLOBALS
BEGINVTAM
PORT 23
SDEFAULTLUS
SHLU01..SHLU04
ENDSDEFAULTLUS
SLUGROUP
SHRGRP99 SH99LU01..SH99LU04
ENDSLUGROUP
Define the APPL major node for the shared LUs as shown in Example 2-79.
The actual name that is assigned for a connection is determined by the TN3270E server
mapping rules and is assigned at the time of connection negotiation.
For complete details about the Telnet command, see z/OS Communications Server: IP
System Administrator’s Commands, SC27-3661.
Note: If you are running the Telnet server on multiple systems, ensure that all systems can
function in a sysplex. You do not need a coupling facility, but the systems must have at
least an XCF group connection. Make sure the VIPA address that is used by the LU name
server is reachable and that the routing table is correct if you are using a dynamic routing
method.
To verify the environment of LU name server and LU name requester within the sysplex,
complete these steps:
1. Start the primary and backup LU name server.
2. Start the LU name requester Telnet servers and show the LU name server and LU name
requester status.
3. Start Telnet sessions and verify the LU name server LU management functions.
4. Control the LU name server and perform the planned LU name server takeover.
Example 2-80 shows the initialization messages that display when the LU name server starts.
108 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
In this example, the numbers correspond to the following information:
1. The LU name server joined in the XCF group. The default group name is EZZTLUNS. A
suffix from one to four characters can be specified in the SUBPLEX suffix operand. The
suffix is right-aligned and overlays the end of the default name.
2. The LU name server is waiting to connect to a previously active LU name requester that is
using shared LUs or that is not aware of the new LU name server. The primary LU name
server becomes the active LU name server when there is no active LU name server found.
3. The primary LU name server becomes the active LU name server.
Use the display command to check the LUNS XCF group status, as shown in Example 2-81.
Example 2-81 Display XCF group information for primary LU name server
D TCPIP,TNLUNS31,XCF
EZZ6089I TNLUNS31 XCF GROUP DISPLAY 993
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60 1
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: 10.1.1.20..4444 2
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC31 TNLUNS31 1 P101 ACTIVE STANDBY 3
9 OF 9 RECORDS DISPLAYED
Now, start the backup LUNS TNLUNS30 on system SC30, as shown in Example 2-82.
Note: When a backup LU name server starts first, it has a JOINED state and waits for the
active LU name server. After the primary LU name server starts and becomes the active
LU name server, the backup LU name server can change the state from JOINED to
STANDBY and act as the standby LU name server.
Example 2-83 Display XCF group information for primary and secondary LU name server
D TCPIP,TNLUNS30,XCF
EZZ6089I TNLUNS30 XCF GROUP DISPLAY 640
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: 10.1.1.20..4444 1
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC30 TNLUNS30 1 B 99 STANDBY STANDBY 2
SC31 TNLUNS31 1 P101 ACTIVE STANDBY 3
10 OF 10 RECORDS DISPLAYED
Start the LU name requester Telnet servers and show the LU name
server and LU name requester status
Before starting LU name requester Telnet servers, activate the APPL major node for the
shared LU in the systems. Issue a VTAM command to activate the major node on each
system where you will use shared LUs. The following command was used in the example
environment:
V NET,ACT,ID=@TCPSLUS
Check the LU status to make sure that it activates successfully, as shown in Example 2-84.
The status of the major node is ACTIVE, and the minor nodes are in CONCT status if no
sessions have been established.
Then, start the LUNR Telnet servers with the MVS START command, as shown in
Example 2-85.
110 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
EZZ6044I TN3270B PROFILE PROCESSING BEGINNING FOR FILE 242
TCPIPB.TCPPARMS(TELNB31C)
EZZ6045I TN3270B PROFILE PROCESSING COMPLETE FOR FILE
TCPIPB.TCPPARMS(TELNB31C)
EZZ6091I TN3270B JOINED XCF GROUP EZZTLUNS 1
EZZ6041I TN3270B SNMP SUBAGENT INITIALIZATION COMPLETE
*EZZ6092I TN3270B LUNR PROFILE PENDING
EZZ6003I TN3270B LISTENING ON PORT 992
EZZ6093I TN3270B LUNR ACTIVE 2
EZZ6003I TN3270B LISTENING ON PORT 23
RO SC30,S TN3270A,PROFILE=TELNA30C
...
IEE252I MEMBER CTIEZBTN FOUND IN SYS1.IBM.PARMLIB
EZZ6001I TN3270A SERVER STARTED
EZZ6044I TN3270A PROFILE PROCESSING BEGINNING FOR FILE 109
TCPIPA.TCPPARMS(TELNA30C)
EZZ6045I TN3270A PROFILE PROCESSING COMPLETE FOR FILE
TCPIPA.TCPPARMS(TELNA30C)
EZZ6041I TN3270A SNMP SUBAGENT INITIALIZATION COMPLETE
EZZ6091I TN3270A JOINED XCF GROUP EZZTLUNS 1
*EZZ6092I TN3270A LUNR PROFILE PENDING
EZZ6003I TN3270A LISTENING ON PORT 992
EZZ6093I TN3270A LUNR ACTIVE 2
EZZ6003I TN3270A LISTENING ON PORT 23
Use the display command to check the LUNS and LUNR XCF group status, as shown in
Example 2-86.
There is no connection between active LU name server TNLUNS31 and standby LU name
server TNLUNS30. They use XCF group services to change the member information from
each other. Each member of the group receives notification from XCF when another member
joins or leaves the group and when any member updates its member user status field. Telnet
uses the XCF member status field to communicate this information:
The roles each member is playing in the group
The state of each member’s LU name requester and LU name server
The instance count of the LU name server each member currently recognizes as the
controlling LU name server in the group
Various status and problem flags to which other members might need to respond
112 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Start Telnet sessions and verify the LU name server LU management
functions
Note: In preparation for the examples in this section, we connected several clients from
workstation 10.1.100.221 and 10.1.100.222 to the Dynamic VIPA 10.1.8.21. The
distribution method for 10.1.8.21 port 23 is set to ROUNDROBIN for the test to show the
result of LU assignment by LU name server.
Based on the LUMAP statement in Telnet server configuration profile, clients from workstation
10.1.100.221 use shared LU group SHRGRP99, and the LU name is SH99LU01 to
SH99LU04. Clients from workstation 10.1.100.222 use the default shared LU definition, and
the LU name is SHLU01 to SHLU04. These LU names are assigned by the active LU name
server, which ensure that only one LU name requester uses the LU name.
Example 2-88 shows the connections on TN3270A. Because the example uses the
ROUNDBOBIN distribution method, the client connects these two TN3270 Telnet servers one
by one. The LU name server assigns the LU name for each client connection to ensure that it
does not use duplicate LU names (1 and 2).
When all the LU names in the LU pool are used, no connection can be established. Location
3 in Example 2-88 on page 113 is where the LU name server cannot assign the LU name to
connection 00000F79. Figure 2-13 also shows the error message in the PCOM of the
workstation.
The DISPLAY LUNS OBJECT command shows summary or detail information about LU
groups and where an LU name is being used. The LUNS keyword is required, and the object
type can be SLUGRP, SPRTGRP, or LUS. The difference between the Classic Telnet
OBJECT display and the LUNS OBJECT display is the lack of mapping information. The LU
name server does not know about mapping statements and does not display Client Identifier
114 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
information. Example 2-91 shows output for the DISPLAY LUNS OBJECT command for
object type LUS.
Example 2-91 DISPLAY LUNS OBJECT command for object type LUS
D TCPIP,TNLUNS31,LUNS,OBJ,TYPE=LUS
EZZ6085I TNLUNS31 LUNS OBJECT 307
OBJECT CONNS
NAME USING OPTIONS
---------- ------ --------
SLUGRP
*DEFLUS* 0 --S-----
SHRGRP99 1 --S----- 1
----- PORT: 23 SC30 TN3270A PROF: 0001 CONNS: 3 2
------------------------------------------------------------
SLUGRP
*DEFLUS* 0 --S-----
SHRGRP99 1 --S-----
----- PORT: 23 SC31 TN3270B PROF: 0001 CONNS: 3
------------------------------------------------------------
15 OF 15 RECORDS DISPLAYED
Example 2-92 shows the output of the DISPLAY LUNS OBJECT command for object type
SLUGRP.
Example 2-92 DISPLAY LUNS OBJECT command for object type SLUGRP
D TCPIP,TNLUNS31,LUNS,OBJ,TYPE=SLUGRP,ID=SHRGRP99
EZZ6085I TNLUNS31 LUNS OBJECT 311
OBJECT CONNS
NAME USING OPTIONS
---------- ------ --------
SLUGRP
SHRGRP99 1 --S----- 1
SLUGRP: SHRGRP99
LU STATUS 4 LUS TOTAL
SH99LU01..SH99LU04..FFFFFFFN 4 LUS 2 IN USE 2
-SH99LU01 -SH99LU02 3
----- PORT: 23 SC30 TN3270A PROF: 0001 CONNS: 3
------------------------------------------------------------
SLUGRP
SHRGRP99 1 --S-----
SLUGRP: SHRGRP99
LU STATUS 4 LUS TOTAL
SH99LU01..SH99LU04..FFFFFFFN 4 LUS 2 IN USE
-SH99LU01 -SH99LU02
----- PORT: 23 SC31 TN3270B PROF: 0001 CONNS: 3
------------------------------------------------------------
21 OF 21 RECORDS DISPLAYED
The Where-Used option has additional information about the LU version. In addition to showing
where an LU name is used within a profile, it also shows the status of the LU name. See
Example 2-93.
116 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Inactivate and activate LU names in the LU name server LU table
You can use the VARY LUNS INACT and ACT commands to inactivate and activate LU
names in the LUNS LU table. The commands are similar to classic Telnet VARY INACT and
ACT commands. The difference is that you must specify the LU name server instead of Telnet
after the Telnet proc name to direct the command to the LUNS LU table instead of the classic
or LUNR LU table. See Table 2-2 for the RACF user profile for these VARY LUNS INACT and
ACT commands.
Example 2-95 inactivates shared LU SH99LU03 in shared LU group SHRGRP99 (1). With the
DISPLAY TCPIP,tnproc,LUNS,INACTLUS command, you can see the inactive LUs in the LUNS
LU table (2). The client cannot use this LU name to establish connection with TN3270 Telnet
server.
D TCPIP,TNLUNS31,LUNS,INACTLUS
EZZ6062I TNLUNS31 LUNS INACTLUS 400
INACTIVE LUS
SH99LU03 2
4 OF 4 RECORDS DISPLAYED
Note: You cannot use the VARY LUNS INACT command to inactivate an LU name that is
in use.
Control the LU name server and perform the planned LU name server
takeover
VARY commands support the LU name coordination function. The LUNS
QUIESCE/RESUME pair is used to remove a standby LU name server from recovery
contention or allow the LU name server definitions to be updated by an OBEYFILE. The
LUNS START command causes the current standby LU name server to become ACTIVE
LUNS. The VARY LUNS INACT and ACT commands inactivate and activate LU names in the
LUNS LU table. See “Inactivate and activate LU names in the LU name server LU table” for
details about these commands.
V TCPIP,tnproc,LUNS,START MVS.VARY.TCPIP.TELNET.LUNS.START
V TCPIP,tnproc,LUNS,QUIESCE MVS.VARY.TCPIP.TELNET.LUNS.QUIESCE
V TCPIP,tnproc,LUNS,RESUME MVS.VARY.TCPIP.TELNET.LUNS.RESUME
V TCPIP,tnproc,LUNS,INACT,luname MVS.VARY.TCPIP.TELNET.LUNS.INACT
V TCPIP,tnproc,LUNS,ACT,luname MVS.VARY.TCPIP.TELNET.LUNS.ACT
Use MVS START command to start TNLUNS31 again. Because TNLUNS30 is the active LU
name server, TNLUNS31 acts as the standby LU name server although it has higher rank
level. Example 2-96 shows the output of the D TCPIP,tnproc,XCF command.
Use the V TCPIP,tnproc,LUNS,START command for the planned LU name server takeover and
change the standby LU name server to active LU name server, as shown in Example 2-97.
Example 2-97 Planned LU name server takeover through LUNS START command
SC31 TSU04198 V TCPIP,TNLUNS31,LUNS,START
SC31 STC04321 EZZ6038I TNLUNS31 COMMAND START COMPLETE
SC31 STC04321 *EZZ6095I TNLUNS31 LUNS CONN PENDING
SC31 STC04321 *EZZ6094I TNLUNS31 LUNS REBUILD PENDING
SC31 STC04270 *EZZ6094I TN3270B LUNR REBUILD PENDING
SC30 STC04308 *EZZ6094I TN3270A LUNR REBUILD PENDING
SC30 STC04320 EZZ6096I TNLUNS30 LUNS STOPPED
SC31 STC04321 EZZ6093I TNLUNS31 LUNS ACTIVE
SC31 STC04270 EZZ6093I TN3270B LUNR ACTIVE
SC30 STC04308 EZZ6093I TN3270A LUNR ACTIVE
Example 2-98 shows the LUNS and LUNR XCF group information after the LU name server
takeover.
118 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
In this example, the numbers correspond to the following information:
1. The active LU name server listens for the LU name requester connection request from
port 4444, static VIPA 10.1.1.20 on system SC31.
2. TNLUNS30 changes from ACTIVE mode to STANDBY mode.
3. TNLUNS31 changes from STANDBY mode to ACTIVE mode.
You can use the V TCPIP,tnproc,LUNS,QUIESCE command to change the LU name server
from the STANDBY and JOIN states to the QUIESCE state. An LU name server in QUIESCE
state is ineligible to participate in recovery scenarios or to be started by the VARY START
command. Also, an LU name server must be in QUIESCE state to make a configuration
change by using the VARY TCPIP,tnproc,OBEYFILE,datasetname command. See
Example 2-99.
D TCPIP,TNLUNS30,XCF
EZZ6089I TNLUNS30 XCF GROUP DISPLAY 471
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: 10.1.1.20..4444
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC30 TNLUNS30 3 B 99 QUIESCE STANDBY 2
SC30 TN3270A 3 ACTIVE L
SC31 TNLUNS31 3 P101 ACTIVE STANDBY
SC31 TN3270B 3 ACTIVE L
12 OF 12 RECORDS DISPLAYED
V TCPIP,TNLUNS30,O,TCPIPA.TCPPARMS(LUNS30) 3
EZZ6044I TNLUNS30 PROFILE PROCESSING BEGINNING FOR FILE 489
TCPIPA.TCPPARMS(LUNS30)
EZZ6045I TNLUNS30 PROFILE PROCESSING COMPLETE FOR FILE
TCPIPA.TCPPARMS(LUNS30)
EZZ6038I TNLUNS30 COMMAND OBEYFILE COMPLETE
D TCPIP,TNLUNS30,XCF
EZZ6089I TNLUNS30 XCF GROUP DISPLAY 506
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: 10.1.1.20..4444
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC30 TNLUNS30 3 B 99 STANDBY STANDBY
SC30 TN3270A 3 ACTIVE L
SC31 TNLUNS31 3 P101 ACTIVE STANDBY
SC31 TN3270B 3 ACTIVE L
12 OF 12 RECORDS DISPLAYED
Now, stop all LU name server Telnet servers with the MVS STOP command. When the last
LU name server is stopped, LU name requester Telnet servers lose contact with the LU name
server and are in rebuild pending status. The EZZ6094I message is non-scrollable until the
LU name requester completes recovery with a new LU name server, as shown by 1 in
Example 2-101.
Example 2-102 XCF group information for Telnet servers without LU name server
D TCPIP,TN3270A,XCF
EZZ6089I TN3270A XCF GROUP DISPLAY 597
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: **N/A** 1
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC30 TN3270A 4 RECOVER C RL 2
120 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
SC31 TN3270B 4 RECOVER C RL 2
10 OF 10 RECORDS DISPLAYED
The existing client connections are not affected by the LU name server failure, but the new
client connection cannot be established successfully and the request remains in pending
status. The client connect requests are accepted by the LU name requester, but when the LU
name requester tries to request the LU name from the LU name server, this request is
pending and waits until the LU name server starts. The D TCPIP,tnproc,CONN command
shows the connection status when you try to start a new session from the workstation, as
shown in Example 2-103.
Use the connection ID to display the detail information for the new connection, as shown in
Example 2-104.
Use the MVS START command to start the LU name server again. When the LU name server
starts and joins the XCF group, it receives updated information from all LUNRs, rebuilds the
shared LU table, and becomes the active LU name server.
When the LU name requester cannot communicate with the LU name server, client
connections are stuck in negotiation. If the LU name requester can reestablish its connection
to the LU name server within the CONNECTTIMEOUT period, these client connections can
be established, as shown in Example 2-105.
122 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
In this example, the number corresponds to the following information:
1. The pending connection 00001984 is established successfully.
2.4.4 Scenario: LU name server automated takeover when active name server
fails
In this section, you stop the active LU name server (LUNS) to see how the standby LU name
server takes over the active LU name server role. When an active LU name server fails, the
following sequence of events automatically occurs:
1. All the LU name servers that are in standby mode examine the list of LU name servers that
are in standby mode.
2. The standby LU name server that has the highest configured rank, regardless of whether
that LU name server was started as a primary or backup LU name server, becomes the
active LU name server automatically.
If several standby LU name servers have the same rank, then all those servers attempt to
take over. The race winner becomes the new active LU name server and the others return
to standby.
Before stopping the active LU name server, display the current LUNS and LUNR status, and
shared LU status, as shown in Example 2-106.
Example 2-106 Command output for LUNS and LUNR status and shared LU status
D TCPIP,TNLUNS31,XCF
EZZ6089I TNLUNS31 XCF GROUP DISPLAY 157
GROUP NAME: EZZTLUNS CONNECTTIMEOUT: 60
XCFMONITOR: 60 RECOVERYTIMEOUT: 60
LUNS LISTENER: 10.1.1.20..4444 1
LUNS--------------- LUNR----------
MVSNAME TNNAME PDMON CTR RANK STATE STATUS STATE STATUS
-------- -------- ----- --- ------------------- --------------
SC30 TNLUNS30 11 B 99 STANDBY STANDBY 2
SC30 TN3270A 11 ACTIVE L 3
SC31 TNLUNS31 11 P101 ACTIVE STANDBY 4
SC31 TN3270B 11 ACTIVE L 3
12 OF 12 RECORDS DISPLAYED
D TCPIP,TNLUNS31,LUNS,OBJ,TYPE=LUS
EZZ6085I TNLUNS31 LUNS OBJECT 186
OBJECT CONNS
NAME USING OPTIONS
---------- ------ --------
SLUGRP
*DEFLUS* 1 --S-----
SHRGRP99 2 --S-----
----- PORT: 23 SC30 TN3270A PROF: 0001 CONNS: 3 5
------------------------------------------------------------
SLUGRP
*DEFLUS* 2 --S-----
SHRGRP99 1 --S-----
----- PORT: 23 SC31 TN3270B PROF: 0001 CONNS: 3 5
------------------------------------------------------------
15 OF 15 RECORDS DISPLAYED
Issue the MVS STOP command to stop the active LU name server. Example 2-107 shows the
results.
124 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3. TNLUNS30 takes over and is waiting for critical LUNRs to complete the rebuild.
4. TNLUNS30 becomes the active LU name server. TN3270A and TN3270B become the
active LU name requester.
The LUNS and LUNR XCF group information during the automatic takeover is shown in
Example 2-108.
After the recovery and the LUNS and the LUNR are active, XCF group information is shown in
Example 2-109.
The display command output of the LUNS object and TN3270 Telnet server connections are
the same as before. The takeover procedure is transparent to existing client connections. See
Example 2-110.
Example 2-110 Command output for share LUNS and Telnet server connection after takeover
D TCPIP,TNLUNS30,LUNS,OBJ,TYPE=LUS
EZZ6085I TNLUNS30 LUNS OBJECT 414
OBJECT CONNS
NAME USING OPTIONS
---------- ------ --------
SLUGRP
*DEFLUS* 1 --S-----
SHRGRP99 2 --S-----
----- PORT: 23 SC30 TN3270A PROF: 0001 CONNS: 3
------------------------------------------------------------
SLUGRP
*DEFLUS* 2 --S-----
SHRGRP99 1 --S-----
----- PORT: 23 SC31 TN3270B PROF: 0001 CONNS: 3
------------------------------------------------------------
15 OF 15 RECORDS DISPLAYED
D TCPIP,TN3270B,CONN
EZZ6064I TN3270B CONN DISPLAY 350
EN TSP
CONN TY IPADDR..PORT LUNAME APPLID PTR LOGMODE
-------- -- ---------------------- -------- -------- --- --------
00000055 ::FFFF:10.1.100.221..1312
SH99LU04 SC31TS03 TAE SNX32702
00000057 ::FFFF:10.1.100.222..1583
SHLU01 SC31TS04 TAE SNX32702
0000005E ::FFFF:10.1.100.222..1585
SHLU03 SC31TS05 TAE SNX32702
----- PORT: 23 ACTIVE PROF: CURR CONNS: 3
------------------------------------------------------------
13 OF 13 RECORDS DISPLAYED
126 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
2.5 TN3270E server in a single image using SHAREACB
This section describes the steps to modify the single image scenario that was created in 2.2,
“TN3270E server in a single image” on page 44 to implement SHAREACB statement to
reduce the amount of CSA storage allocated by TN3270e server.
To configure the Telnet server to enable LUs to share an ACB, specify SHAREACB in the
TELNETGLOBALS statement block. Replace any predefined (static) VTAM APPL definitions
that are being used to represent Telnet LUs with corresponding model application program
definitions. The latter are required when using the SHAREACB function.
z/OS
TCP/IP VTAM SNA Applications
Address
Space
APPLA
Shared
ACB
TN3270
APPLB
Server
Client
As shown in Figure 2-14, with SHAREACB option defined, all Telnet connections establish
their sessions with SNA applications through a single shared ACB.
The scenario uses the TCP/IP stack TCPIPB in LPAR SC31. The TN3270E started task
name is TN3270B.
Customize a VTAM APPL model major node for the TCP/IP LU names
You can find a sample VTAM APPL major node in SEZAINST(IVPLU). For an in-depth
description of how to prepare the VTAM LU definitions for the TN3270E server, see z/OS
Communications Server: IP Configuration Guide, SC27-3650.
To use a VTAM shared ACB control block, you must create a model APPL statement. For
further considerations about how to configure a model APPL major node, see z/OS
Communications Server: SNA Resource Definition, SC31-8778.
Created a member in the SYS1.VTAMLST, TN3270B. The example model statement uses an
asterisk (*) wildcard character in the name, as shown in Example 2-111.
The &SYSCLONE value (30, 31, and 32 in the test environment) is used to generate the label
on the VBUILD statement, and the &SYSNAME value (SC30, SC31, SC32 in the test
environment) is used to generate the actual APPL model name.
A portion of the TN3270 configuration profile data set is shown in Example 2-112.
Example 2-112 TN3270B configuration profile (TN3270B) for Shared ACB utilization
===> Scroll ===>
TELNETGLOBALS
TCPIPJOBNAME TCPIPB
SHAREACB 1
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
...
TELNETDEVICE IBM-3278-2-E SNX32702,SNX32702
TELNETDEVICE IBM-3278-2 SNX32702,SNX32702
;
ENDTELNETGLOBALS
...
BEGINVTAM
PORT 23
DEFAULTLUS
128 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
SC&SYSCLONE.B01..SC&SYSCLONE.B99 2
ENDDEFAULTLUS
...
ENDVTAM
...
Change these statements in the config file that is shown in Example 2-112:
The SHAREACB parameter is part of the TELNETGLOBALS/ENDTELNETGLOBALS
statement block as seen in 1.
Change the DEFAULTLUS statement block to define the range of LUs that you created in
the Model APPL major node in VTAM as seen in 2.
These are the only changes you must do on the TN3270E server to use the shared ACB on
VTAM to reduce the common and private storage utilization.
For complete detailed listings of the started task procedures and profiles used for this
scenario, see Appendix C, “Configuration files: TN3270E stand-alone scenario” on page 393.
Message IST2348I shows that the LU created from the model APPL is using Share ACB 1
With TSO logon reconnect, in the case where a TN3270 client loses a TCP connection with
the TN3270 server but the SNA session remains active, you can recover from a lost TN3270
connection and reconnect from another TN3270 connection. You can also use logon
reconnect to take over a perfectly healthy TSO session from another TN3270 connection. If
you share TSO user IDs with others, others can take over your TSO session while you are
working.
130 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When you reconnect from another session, select the Reconnect option on the bottom of the
TSO logon panel, as shown in Figure 2-15.
When you reconnect, the IKT00300I message displays. Then the window of the previous
session displays. The previous session disconnects. The reconnected TN3270 connection
then continues from where the previous connection was, even in the middle of an ISPF edit.
Note: Use the LU name server to centralize LU name allocation and to ensure that there
are no duplicate LU name assignments among the group of Telnet servers, LU name
requester. For more information, see 2.4, “Multiple TN3270E servers using LU name
server and LU name requester” on page 95.
The default PPT entry sets the TN3270E server to non-cancelable. As a non-cancelable
application, the server should not be started automatically by a TCP/IP stack using the
AUTOLOG function. If the TCP/IP stack is recycled, these messages are issued repeatedly:
EZZ0621I AUTOLOG FORCING TN3270B, REASON: TCP/IP HAS BEEN RESTARTED
CANCEL TN3270B,A=0075
IEE838I TN3270B NON-CANCELABLE - ISSUE FORCE ARM
Message generation is controlled with the DEBUG statement. The statement can be specified
in TELNETGLOBALS, TELNETPARMS, or PARMSGROUP. A connection must have the
DEBUG statement mapped to it for messages to be generated. Whenever a DEBUG
message is generated, a CTRACE entry is also generated.
The format of the DEBUG statement is shown in Example 2-116. The parameters can involve
subparameters, which are do not show in the examples. For details of the complete syntax,
see the DEBUG statement description in z/OS Communications Server: IP Configuration
Reference, SC27-3651. For comprehensive suggestions on the use of the DEBUG
statement, see z/OS Communications Server: IP Configuration Guide, SC27-3650.
As shown in Table 2-3, the DEBUG statement has two parameters: The level of tracing and
the destination for trace messages. The two parameters can be specified in any combination.
Note that the table does not imply a one-to-one relationship.
DETAIL
TRACE
FLOW
PROFILE
132 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: You can specify the PROFILE parameter only in TELNETGLOBALS. It has no effect
on the other DEBUG statements.
If DEBUG messages are being used primarily for problem diagnosis, the VARY
TCPIP,,OBEYFILE command can be used to keep the number of messages low. Start TN3270
initially without DEBUG coded. When a problem appears, issue a VARY TCPIP,,OBEYFILE
command for a TN3270 profile that includes the DEBUG statement. Only new connections to
the new profile will produce messages. After data is obtained, issue another VARY
TCPIP,,OBEYFILE command for a TN3270 profile that omits the DEBUG statement or specifies
DEBUG OFF.
If the client identifier of the client that has the problem is known (perhaps the client’s current
IP address), include DEBUG in a PARMSGROUP statement. Then, using PARMSMAP, map
that group to the client. Debug messages for only that client will be issued. After data is
obtained, issue another VARY TCPIP,,OBEYFILE command for a TN3270 profile that omits the
DEBUG statement or specifies DEBUG OFF.
An example of the profile statements and OBEYFILE command for activating this trace is
shown in Example 2-117. Assume the profile member name for turning the trace on is
TELNDBON. To avoid changing anything else in the current profile (TELNB31A), TELNDBON
is a copy of TELNB31A, with these three statements added.
V TCPIP,TN3270B,O,TCPIPB.TCPPARMS(TELNDBON)
EZZ6044I TN3270B PROFILE PROCESSING BEGINNING FOR FILE 114
TCPIPB.TCPPARMS(TELNDBON)
EZZ6045I TN3270B PROFILE PROCESSING COMPLETE FOR FILE
TCPIPB.TCPPARMS(TELNDBON)
EZZ6018I TN3270B PROFILE UPDATE COMPLETE FOR PORT 23
EZZ6038I TN3270B COMMAND OBEYFILE COMPLETE
When you display the CLIDs and objects for port 23, you see the debug options that were just
set, as shown in Example 2-118.
D TCPIP,TN3270B,OBJ,PORT=23,PROFILE=ALL,DET,MAX=*
EZZ6083I TN3270B OBJECT DISPLAY 122
OBJECT CONNS CLIENT ID CLIENT ID ITEM
NAME USING TYPE NAME SPECIFIC OPTIONS
---------- ------ --------- ---------------- ---------- --------
ARAPPL
SC* 0
-A------
NVAS* 0
-A------
5 ----Q---
TSO* 0
-A-D----
* 0
-A------
DEFAPPL 0
-I------
DEFAPPL
SC31TS 0 NULL NULL
--------
LUGRP
*DEFLUS* 0
--------
PARMSGRP
DEBUGIT 0 IPGRP DEBUGIPGRP
--------
*DEFAULT -------NO MAPPING---------
--------
*TGLOBAL -------NO MAPPING---------
--------
*TPARMS -------NO MAPPING---------
--------
----- PORT: 23 ACTIVE PROF: CURR CONNS: 0
------------------------------------------------------------
34 OF 34 RECORDS DISPLAYED
The profile statements and OBEYFILE command for deactivating the trace are shown in
Example 2-119. Assume the profile member name for turning the trace off is TELNDBOF.
Example 2-119 Preparing a DEBUG EXCEPTION statement for the OBEYFILE command
profile statements in member TELNDBOF
...
PARMSGROUP DEBUGIT DEBUG EXCEPTION ENDPARMSGROUP
IPGROUP DEBUGIPGRP 10.1.100.221
10.1.100.222
10.1.100.223
134 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
10.1.100.224
ENDIPGROUP
V TCPIP,TN3270B,O,TCPIPB.TCPPARMS(TELNDBOF)
EZZ6044I TN3270B PROFILE PROCESSING BEGINNING FOR FILE 125
TCPIPB.TCPPARMS(TELNDBOF)
EZZ6045I TN3270B PROFILE PROCESSING COMPLETE FOR FILE
TCPIPB.TCPPARMS(TELNDBOF)
EZZ6018I TN3270B PROFILE UPDATE COMPLETE FOR PORT 23
EZZ6038I TN3270B COMMAND OBEYFILE COMPLETE
To avoid changing anything in the current profile (TELNDBON), TELNDBOF must be a copy
of TELNDBON with these three statements replacing their equivalent statements in
TELNDBON. Both TELNDBON and TELNDBOF are based on the contents of TELNB30A.
The VARY command can be issued to turn off DEBUG for all connections that are associated
with all profiles, including the current profile. Summary messages for CONN DROP because
of errors or timeouts will also be suppressed.
To turn on DEBUG again, issue a VARY TCPIP,,OBEYFILE command with the debug option
specified in the TN3270 profile. Use DEBUG EXCEPTION to retain these messages.
Example 2-120 DEBUG OFF command used to turn off all debug options
V TCPIP,TN3270B,T,DEBUG,OFF
EZZ6038I TN3270B COMMAND DEBUG OFF COMPLETE
The options are listed again, after the DEBUG OFF command, as shown in Example 2-121.
Example 2-121 Display PROFILE to see DEBUG settings after DEBUG OFF command
D TCPIP,TN3270B,PROF,PORT=23,DET
EZZ6080I TN3270B PROFILE DISPLAY 132
...
DIAGNOSTICS
DEBUG CONN VARYOFF
DEBUG CONN VARYOFF
FULLDATATRACE
...
The TN3270 server populates the APPLDATA field with connection data that is documented in
the “Application Data” appendix in z/OS Communications Server: IP Configuration Reference,
SC27-3651. The following TN3270 appldata fields are shown for the connection 3:
Component ID
LU name
SNA application name
Connection mode
Client type
Security method
Security level
Security cipher
Example 2-122 NETSTAT CONN without and with the APPLDATA option
D TCPIP,TCPIPB,N,CONN 1
...
TN3270B 00000044 LISTEN
LOCAL SOCKET: ::..23
FOREIGN SOCKET: ::..0
TN3270B 00000067 ESTBLSH
LOCAL SOCKET: ::FFFF:10.1.8.21..23
FOREIGN SOCKET: ::FFFF:10.1.100.221..1343
...
D TCPIP,TCPIPB,N,CONN,APPLDATA 2
...
TN3270B 00000067 ESTBLSH
LOCAL SOCKET: ::FFFF:10.1.8.21..23
FOREIGN SOCKET: ::FFFF:10.1.100.221..1343
APPLICATION DATA: EZBTNSRV SC31BB01 SC31TS03 ET B 3
...
You can filter the output of the NETSTAT CONN,APPLDATA command by adding the APPLD filter
option and specifying the filter criteria. The APPLDATA field is a total of 40 bytes. By using an
asterisk (*) in the filter criteria, you can use wildcard feature on any part of the 40 bytes.
Example 2-123 shows a few filter criteria strings being used.
136 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
END OF THE REPORT
D TCPIP,TCPIPB,N,CONN,APPLDATA,APPLD=*SC31*
...
USER ID CONN STATE
TN3270B 00000067 ESTBLSH
LOCAL SOCKET: ::FFFF:10.1.8.21..23
FOREIGN SOCKET: ::FFFF:10.1.100.221..1343
APPLICATION DATA: EZBTNSRV SC31BB01 SC31TS03 ET B
1 OF 1 RECORDS DISPLAYED
END OF THE REPORT
Even for more difficult problems, MSG07 provides a good starting point. Generally, code
MSG07 to send a notification to the user of connection failure issues, unless you have
reasons not to send error messages to the client.
Use the MSG07 parameter statement to activate logon error message processing. Specifying
this statement provides information to the client when a session attempt to the target
application fails. If NOMSG07 is specified, the connection is dropped if a session initiation
error occurs.
For details about use and syntax, see the MSG07 statement description in z/OS
Communications Server: IP Configuration Reference, SC27-3651.
For details about use and syntax, see the SMFINIT/SMFTERM statement descriptions in
z/OS Communications Server: IP Configuration Reference, SC27-3651.
138 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
A component trace SYS1.PARMLIB member is supplied for TN3270. The member name is
CTIEZBTN. Trace setup for TN3270 running as its own procedure is the same as for the
TCP/IP stack, except for having fewer trace options available.
For a complete discussion of the CTRACE options and trace setup, see z/OS
Communications Server: IP Diagnosis Guide, GC31-8782. See z/OS MVS IPCS Commands,
SA22-7594, for information about formatting and analysis.
Note: Use an LU name server to centralize LU name allocation and to avoid duplicate LU
name assignments among the group of Telnet servers, LU name requester. For more
information, see 2.4, “Multiple TN3270E servers using LU name server and LU name
requester” on page 95.
140 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3
Section Topic
Basic FTP without security Key characteristics of basic FTP and how to configure and
verify a single-server implementation.
Multiple FTP servers in a sysplex How to implement multiple FTP servers in a Sysplex, one
server per system image.
FTP client using batch How to run an FTP client in a batch file.
FTP client application programming interface How to run FTP from a program.
FTP access to UNIX named pipes Characteristics of named pipes and how to use them in a z/OS
FTP environment.
FTP large data set access A description of FTP large-volume access and how to use.
Miscellaneous configuration settings of FTP Miscellaneous FTP functions not covered in detail in this book,
such as REXX API, generic FTP server in a CINET
environment, and the network management interface with
SMF.
Additional information sources for FTP References to additional reading sources for FTP.
LPD client, NDB, NICS, RPC, Kerberos, Bind 9 (DNS server), TN3270 server, FTP server, FTP
LPD server, MISC server, NCPRoute, client, Telnet server, X-Windows client, SNMP Agent,
SMTP server, Portmapper, NPF, SNMP query, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail,
Two devices are involved in an FTP session: The local host is the client, and a remote host is
the server. Using the FTP command and subcommands, you can sequentially access
multiple hosts without leaving the FTP environment. The local host or FTP client is the TCP/IP
host that initiates the FTP session. The FTP server is the TCP/IP host to which the client’s
session is established. The server provides the responses to the client’s commands and
subcommands. z/OS Communications Server FTP includes translation facilities for
ASCII/EBCDIC translation to support host file transfer to and from various host platforms and
operating systems.
142 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.1.2 How FTP works
An FTP session is initiated when an FTP client connects to an FTP server using the TCP
protocol. The FTP protocol requires the FTP server to use two TCP ports. One TCP port is
the control connection over which information such as user ID and password is transmitted.
All FTP commands, subcommands, and responses are exchanged over this connection.
Well-known port 21 is used as the default for the control connection port on the FTP server.
The other TCP port is the data connection, which is used for transferring the contents of files
based on the FTP client's requests. The output of the ls or dir FTP subcommands is also
sent over the data connection. Well-known port 20 is the default for the data connection port
on the FTP server. See z/OS Communications Server: IP User’s Guide and Commands,
SC31-8780, for details about FTP usage, commands, and subcommands.
During an FTP session, it is important to keep track of which machine is the client and which
is the server. This information determines whether you use a get command or a put
command to move files. The get command is always used to copy files from the server to the
client and the put command is used to copy files from the client to the server.
Configuration files
The FTP server and client can each have its own optional FTP.DATA configuration data set.
The z/OS Communications Server provides a sample FTP.DATA for the FTP server in
SEZAINST(FTPSDATA) and a sample for the FTP client in SEZAINST(FTCDATA). z/OS
Communications Server: IP Configuration Reference, SC27-3651, covers the configuration
statements in detail and indicates which statements are appropriate for the server or the
client.
_BPX_JOBNAME
If the original job name is fewer than eight characters, and _BPX_JOBNAME is made
available to the FTPD server at startup, all forked threads, after the listener’s, result in the job
name specified by _BPX_JOBNAME.
The relationship between the FTP client and FTP server is shown in Figure 3-2.
IP Network
Local FTP
Local FTP Local FTP Server
Client
Client Batch Filetypes:
Interactive
JES Spool
DB2 Batch
File File DB2 File
Databases Execution
Storage Storage Databases Storage
J J J J J J J
O O O O O O O
B B B B B B B
z/OS System
Features of FTP
FTP in the z/OS Communications Server includes the following features:
Access to traditional MVS data sets (including PDS and PDS/E data sets)
Access to files in the z/OS UNIX file system
Support for MVS batch jobs using the JES file type
Support for SQL queries using the SQL file type
Translation tables that support many different languages, including single-byte character
sets (SBCS), double-byte character sets (DBCS), and Unicode character set 2 (UCS-2)
Secure communications using Transport Layer Security (TLS) or Kerberos
Secure communications using Application Transparent TLS (AT-TLS)
144 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Access control through support for user exits
Support for user login with password or password phrases
Support for anonymous login
A customizable welcome banner, login message, and directory readme files
Access to traditional MVS data sets (including PDS and PDS/E data sets)
Invoking of client from TSO, from the z/OS UNIX shell, as a batch job, or by using an API
Support for FTP proxy connections using a SOCKS server
Controls in FTP.DATA for server and client operations
Support for UNICODE TP reporting of UTF-8, UTF-16, UTF-16LE, and UTF-16BE
encoding
The client and the server can both be executed with or without encryption security. Both can
support SOCKS proxy protocols to accommodate file transfers within a firewall environment.
A single generic FTP server can be implemented on a single LPAR that has multiple stacks.
The single server can listen on each stack. Load balancing and availability requirements
across FTP servers within a sysplex can be implemented. Multiple FTP server instances can
be implemented in a multiple stack (CINET) environment. The FTP client can run in batch, in
a TSO environment, or under program control by using one of the available API interfaces.
Setting up
For users interested in setting up basic FTP without security to get a simple FTP server up
and running, use a configuration similar to the one described in 3.2, “Basic FTP without
security” on page 146. You can then add security definitions to the basic configuration.
For users interested in secure FTP, use the native TLS configuration or use a stack-wide
security solution such as AT-TLS or IPSec. In addition to native TLS support, the FTP server
and client can use AT-TLS to manage TLS security. TLS managed by AT-TLS
(TLSMECHANISM ATTLS) supports more security functions than TLS managed natively by
FTP (TLSMECHANISM FTP). Be aware of these AT-TLS capabilities and requirements when
planning the preferred AT-TLS support for FTP:
Specify the label of certificate to be used for authentication instead of using the default.
Support SSL session key refresh.
Support SSL sysplex session ID caching.
Trace decrypted SSL data for FTP in a data trace.
Receive more detailed diagnostic messages in syslogd.
There are no restrictions for the FTP ATTLS function.
Policy Agent must be active for FTP ATTLS to work.
TLS security defined natively to FTP continues to be available in addition to AT-TLS.
You can use the VERIFYUSER statement to indicate whether the FTP server should verify
that every user ID used to log in to FTP is granted access to the server’s port profile in the
SERVAUTH class:
The FTP server port profile is the same profile that is checked for TLS secured sessions
when SECURE_LOGIN VERIFY_USER is coded in FTP.DATA. For more information, see
z/OS Communications Server: IP User’s Guide and Commands, SC27-3662.
When sessions are secured with TLS and VERIFYUSER TRUE is coded in FTP.DATA, the
server verifies the user access to the FTP server port profile regardless of the
SECURE_LOGIN value.
However, FTP can verify new users against the AT-TLS SAF resource without requiring the
use of AT-TLS (VERIFYUSER function).
For users who are interested in load balancing FTP across multiple LPARs, see the high
availability scenarios described in IBM z/OS V2R2 Communications Server TCP/IP
Implementation: Volume 3 High Availability, Scalability, and Performance, SG24-8362.
146 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.2.2 Planning for the basic FTP environment without security
Each operating system has unique requirements for allocating files or data sets in its file
system. These requirements differ so widely between operating systems that it has been
impossible to develop a single protocol that embraces all requirements for all operating
systems. To cover all requirements, the FTP protocol implements a SITE command that
enables an FTP client to send site-specific parameters to the FTP server over the control
connection.
Generally, reply code 226 or 250 is used after a successful file transfer, after LIST commands,
and after NLST commands. Reply code 250 (not 226) is used for a broader class of FTP
commands, such as RNTO, DELE, MKD, RMD, and CWD.
The FTP server’s current implementation sends a 250 reply, even though it has already
closed the data connection. Change this number to 226 to comply with the RFC standard.
This change is being implemented using an FTP.DATA parameter to allow local control in case
there is a local dependency on the 250 reply.
Use the REPLY226 statement to direct the FTP server to reply to the FTP client with reply
code 226 instead of reply code 250 to command sequences described in RFC-959 that allow
the server to choose between reply 226 and reply code 250.
Restriction: A server is not always permitted to select reply 226 instead of reply 250. The
REPLY226 setting does not override RFC-959 in these cases.
For example, RFC-959 stipulates the server must reply with reply 250 to RMD (remove
directory). The REPLY226 setting does not affect the reply code for RMD commands.
Table 3-1 Option to set the FTP.DATA file through the -f parameter
TSO environment z/OS UNIX System Service shell
0. -f parameter 0. -f parameter
1. SYSFTPD DD statement 1. $HOME/ftp.data
2. tso_prefix.FTP.DATA 2. userid.FTP.DATA
3. userid.FTP.DATA 3. /etc/ftp.data
4. /etc/ftp.data 4. SYS1.TCPPARMS(FTPDATA)
5. SYS1.TCPPARMS(FTPDATA) data set 5. tcpip_hlq.FTP.DATA
6. tcpip_hlq.FTP.DATA
Note: It is important to specify an existing ftp.data file with the -f parameter. If the
specified file is not found, then the standard ftp.data search order is performed. No error
message is issued.
For details about the SITE, LOCSITE, and FTP.DATA client statement parameters, see z/OS
Communications Server: IP Configuration Reference, SC27-3651.
If you use the z/OS FTP client function and you retrieve a file from an FTP server somewhere
in your IP network, the FTP client also needs a set of parameters similar to those of the z/OS
FTP server to allocate a data set in MVS. Again, a set of default values exists for the z/OS
FTP client, but a user can change these by using the LOCSITE command.
You do not necessarily need to specify all the allocation attributes of an MVS data set. You
can instead use the Storage Management System (SMS) of IBM Data Facility Systems
Managed Storage. You have in both the SITE and the LOCSITE command an option to
specify values for the three main SMS parameters: dataclass, mgmtclass, and storclass.
These SMS options are as follows:
Data class (site/locsite dataclass=), which is a collection of data set allocation
attributes, such as space requirements, record format, data set type, and retention period.
Management class (site mgmtclass=), which is a collection of management attributes,
such as migration rules, backup frequency, and rules for release of unused space.
Storage class (site storclass=), which is a collection of service attributes, such as
availability requirements and requested storage subsystem response time.
Consult your storage administrator for a list of available SMS parameters in your installation.
148 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Simplify z/OS FTP data transfer using MVSGet and MVSPut Commands
FTP subcommands MVSGet and MVSPut can be used for data transfer between z/OS systems:
MVSGet: This subcommand is used to transfer MVS data sets from a z/OS FTP server to a
z/OS FTP client without knowing the details of the server data set allocation.
MVSPut: This subcommand is used to transfer MVS data sets from a z/OS FTP client to a
z/OS FTP server without knowing the details of the client data set allocation.
The data set attribute details are exchanged by using the new command XDSS internally by
FTP. So, MVS data transfer is done with a single FTP subcommand (MVSGet or MVSPut)
without much complexity.
The REAllocate option can be used with both the subcommands if the source or target data
set already exists. REAllocate deletes the existing data sets and reallocates target data sets
with the source data set attributes.
The transfer of empty PDS or library is not supported, and SMS is not configured for you.
To use the MVSGet and MVSPut commands, the FTP server must be running z/OS V2R1 or
later.
For more information about these subcommands, syntax and examples, see IBM
Communication Server V2R1 IP User's Guide and Commands, SC27-3662.
DATASETMODE is the normal MVS method of displaying MVS data set names. An example
of this output is shown in Example 3-1.
However, you might want output that more closely resembles the UNIX style.
DIRECTORYMODE uses the value of your TSOPREFIX setting in RACF as your default
directory. If you do not maintain TSO logon information in RACF, your user ID is used as your
default directory.
Each qualifier level in the data set name is considered a directory. A directory can contain
data sets or subdirectories. A partitioned data set is considered a directory, and the individual
members as files in that directory. You can step down the hierarchy by using CD commands
to name the next low-level qualifier you want to view. You can step up to the root by using CD
commands.
The FTP protocol can help deal with these issues. However, you must select the proper
options to let FTP transfer a file in such a way that it is usable on the receiving system.
FTP always transfers data in 8-bit bytes, the transfer size. If the sending or receiving system
uses another byte length, it is up to the FTP client and the FTP server to implement the
proper conversion between local byte sizes and the FTP transfer size. When FTP transfers
ASCII data, it always transfers it in 8-bit bytes. The bits are used to encode the ASCII
character according to a specific ASCII standard, which is called NVT-ASCII (Network Virtual
Terminal ASCII as defined in the TELNET protocol). This process implies that when you
transfer ASCII type data between two ASCII hosts, a translation from the local ASCII
representation to NVT-ASCII for transmission and back to the receiving hosts local ASCII
representation always takes place.
150 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When MVS is involved in an ASCII type transfer, MVS translates the received NVT-ASCII into
EBCDIC and translates data to be transmitted from EBCDIC into NVT-ASCII.
When you request an FTP file transfer, you can characterize the transfer by using three
attributes: Type, structure, and mode.
Data type
Data type, also known as transfer type or representation type, indicates how the bits of data
should be interpreted by the receiver. The three values are ASCII, EBCDIC, and IMAGE:
ASCII When you set the data type to ASCII, the receiver knows that the data is
character data and that each line of data is terminated using a control
sequence of carriage return-line feed (CRLF), which in ASCII is X'0D0A'. If
MVS is the receiving side, data is translated from NVT-ASCII to EBCDIC. The
CRLF sequences are removed from the data stream and substituted by
traditional MVS record boundaries according to the current settings of the
SITE/LOCSITE parameters: RECFM and LRECL. If RECFM is fixed, the data
records are padded with extra spaces to fill up a record. If MVS is the sending
side, the data is translated from EBCDIC into NVT-ASCII and, based on existing
record boundaries, CRLF sequences are constructed and inserted into the
ASCII data stream. A data type of ASCII is the default data type in all FTP
implementations.
EBCDIC A data type of EBCDIC means that the data transferred is EBCDIC data. In
such a case, no translation to NVT-ASCII or from NVT-ASCII takes place in
MVS. The 8-bit EBCDIC bytes are transferred as they are. If you transfer text
data between two EBCDIC systems, a data type of EBCDIC is the most
efficient way to transfer the data. Most ASCII hosts reject a data transfer where
you specify a data type of EBCDIC. Some treat it as an ASCII transfer, but the
point where the translation takes place is at their end of the FTP connection,
and not in MVS.
IMAGE A data type of IMAGE means that the data is transmitted as contiguous bits
packed into the 8-bit FTP transfer byte size. No translation takes place, either at
the sending or at the receiving side. You normally use this data type for binary
data, such as program files. If you transfer text data between two similar ASCII
hosts, it is often more efficient to use an IMAGE data type instead of an ASCII
data type. Because the two systems use the same ASCII representation, there
is no need to impose the burden of translating to and from NVT-ASCII.
Both ASCII and EBCDIC data types have a second attribute, format control, which can have
three values:
Non-print The text data does not include any vertical format control characters. This
format control is the only one you will find in the MVS FTP implementation.
When you set data type to ASCII, the format control defaults to non-print.
TELNET The text data includes TELNET control characters. This value is not commonly
used.
CC The text data includes Carriage Control (ASA) control characters, according to
the FORTRAN implementation.
Transfer mode
Transfer mode refers to the organization of the data as it is transmitted. The mode can have
these possible values:
Stream Data is transmitted as a stream of bytes. The data is passed with little or no
extra processing. With stream mode, the data type is used to determine
whether any processing at all should be applied to the data, such as translation
of text data or CRLF processing. There is no restriction on data type or data
structure. If record structure is used, the end of file is indicated through the EOF
control sequence (X'FF02'). If file structure is used, the end of the file is
indicated when the sending host closes the data connection. Stream mode is
the default transfer mode, and the most commonly used.
Block In block mode data is sent as a series of data blocks. Each block is preceded by
a header. The header contains a count field of the number of bytes in the block
(excluding the header itself) and a descriptor code, which defines block
attributes (last block in the file, last block in the record or restart marker). The
FTP protocols do not impose any restrictions on either data type or structure
used with block mode transfers. The actual FTP implementations do, however,
impose restrictions of various kinds. In CS for z/OS IP, for example, block mode
transfer is only supported by a data type of EBCDIC. You can use block mode
when you transfer files between z/OS hosts. A file that is transferred between
two MVS systems in block mode preserves its record structure unchanged,
including files with variable length records
Compress Data is transmitted in a compressed format. The compression algorithm is
rather simple. It includes the ability to send replicated bytes in a 2-byte
sequence (maximum 128 replications), and to send a filler byte in a 1-byte
sequence (maximum 64 filler bytes). A filler byte is defined as space for ASCII
or EBCDIC data types and as binary zero for a data type of image. In CS for
z/OS IP, compressed mode requires a data type of EBCDIC.
152 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Table 3-2 provides an overview of the supported combinations of data type, structure, and
mode. Table 3-2 also provides cross-references between mode, type, and structure. The
various options are also described in more detail in the following sections.
When you select among the options listed, consider the purpose of your file transfer:
Will you transfer a file to a host, where the file will be processed by programs on that host?
In that case, you must select options that result in a file that can be used by the target
host. If the data is text, the originating host uses EBCDIC, and the target host uses ASCII.
In this situation, you must use an ASCII data type and a stream transfer mode.
Will you transfer a file to another host for intermediate storage only and later retrieve it
again on the original host? In this case, you can invert the process so that the file you will
end up with back on your original host is exactly like the file you started with. If it is text
data, you might not need to translate between EBCDIC and ASCII, and you can use the
BINARY data type instead.
Restriction: Only one argument can be used at a time with the STAT and LOCSTAT
subcommands. An example of the stat and locstat commands is shown in Example 3-3.
EZA1460I Command:
EZA1736I STAT (INACTIVETIME 2
EZA1701I >>> XSTA (INACTIVETIME
211-Inactivity timer is set to 300
211 *** end of status ***
EZA1460I Command:
EZA1736I LOCSTAT DCONNTIME 3
EZA2811I DCONNTIME is 120
For BINARY or IMAGE transfer from MVS to a stream-oriented file system, the situation is
slightly more complicated. When the records of an MVS data set are stored in a
stream-oriented file system, the records are stored one after the other as one long stream of
bytes, without any notion of the record boundaries from the MVS system.
If the original data set was a fixed-length record data set, you can reconstruct this data set if
you transfer the file back to MVS using the same logical record length as the original data set.
The long stream of bytes is chopped into records of exactly the length you specify,
reconstructing the same record boundaries as you had in the original data set.
If the original data set was a variable length record data set or a data set with undefined
record format, you cannot use this technique because no knowledge length of each record in
the original data set has been retained. There are two ways in which you can move a variable
record length file out of MVS and back into MVS again, preserving the record boundaries:
Use the RDW option of the z/OS FTP client or z/OS FTP server.
Use the record structure option.
Note: Generally, use the record structure option. This is one of the standard file structures
that are defined in RFC959. Both the FTP server and FTP client support it.
If the purpose of including the RDWs was to let an application program on the remote host
work with the information in the file including the RDWs, you have accomplished what you
wanted. However, there might be situations in which you might want to get such a file back
into MVS again. Unfortunately, the code in CS for z/OS IP that stores the data set on MVS
DASD does not use the preserved RDWs to reconstruct record boundaries.
154 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Instead, the DCB information given in either the SITE or the LOCSITE command is used. You
can implement a solution to this problem by using the following method:
1. Use the z/OS FTP client or the z/OS FTP server to transfer a RECFM=V or VB data set to
Linux. For example, you can use the BINARY, STREAM, and RDW option. Doing so gives
you the file on Linux with embedded RDWs.
2. Transfer the file back to MVS using the BINARY, STREAM, and MVS SITE parameters of
RECFM=U and BLKSIZE=some high value.
3. Create a program that, based on the embedded RDWs, reconstructs the original record
structure.
4. Be careful when using the RDW option with ASCII transfers. Transferring the file out of
MVS works without problems, but if you later want to transfer the file back into MVS, the
ASCII-to-EBCDIC translation also translates the RDWs, which might have unexpected
results.
Retrieving a recfm=vb data set from the z/OS FTP server to a non-z/OS client
Complete the following steps:
1. Connect your FTP client to the z/OS FTP server and set transfer mode to binary.
2. Issue a dir command and make a note of the record format (which should be VB), record
length, and block size. You need this information later if you want to return this data set
back to the z/OS FTP server.
3. Issue a quote stru r command. This command is not interpreted by the FTP client, but sent
directly to the z/OS FTP server. The effect of this command is that the z/OS FTP server
sends data to the FTP client with embedded end-of-record sequences.
4. Issue a get command to copy your variable record length file from z/OS to the client.
Because the structure command was sent in quotation marks, the client does not know
about it. The client receives and stores the file as a binary stream of bytes, including the
embedded EOR sequences. When you want to copy the file back into MVS again, connect
your FTP client to the z/OS FTP server, set transfer mode to binary, and send the quote
command with a structure operand telling the z/OS FTP server to expect records with
embedded EORs.
Sending a recfm=vb data set from a non-z/OS client to a z/OS FTP server
Complete the following steps:
1. Connect your FTP client to the z/OS FTP server and set transfer mode to binary.
2. Issue a quote stru r command. This command is not interpreted by the FTP client, but is
sent directly to the z/OS FTP server. The effect of this command is that the z/OS FTP
server receives data from the FTP client and recognizes the embedded end-of-record
sequences.
3. Depending on your default SITE parameters, you might need to send a SITE command
with record format and record length information to the z/OS FTP server before you issue
your put for the file.
4. Issue a put command. Because the FTP client does not know about the record structure, it
transfers the file as a stream of bytes. The file still has the embedded EOR sequences that
are interpreted by the z/OS FTP server to rebuild the original record boundaries.
The FTP client included in the z/OS Communications Server can support the record structure
option. Therefore, you can transfer any VB files using structure mode easily between MVS
systems.
Within UNICODE, there are multiple encoding methods. This function addresses only UTF-8
encoding. This implementation of UNICODE is a step forward in moving z/OS to fuller
Unicode enablement.
156 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
For UTF-8, the value of the byte order mask is EF BB EF. This sequence can appear
anywhere in the file, but it is considered a byte order mask only when it appears in the first
character position of the file.
The use of FTP UTF-8 is invoked by using the following statements and subcommands:
ENCODING=MBCS
TYPE=ASCII
MBDATACONN=(UTF-8,UTF-8)
UNICODEFILESYSTEMBOM
MBREQUIRELASTEOL
These statements and subcommands can be coded in the z/OS FTP server FTP.DATA file,
the z/OS FTP client FTP.DATA file, or issued by using the SITE command for the server or the
LOCSITE subcommand for the client. Type, ENCODING, and MBDATACONN are existing
FTP configuration options and subcommands.
MBREQUIRELASTEOL is used to specify whether FTP requires the last record of incoming
multibyte files to end with the FTP standard EOL sequence. This setting applies when the
server is receiving a multibyte file from the client, and when the client is receiving a multibyte
file from the server. If you set MBREQUIRELASTEOL to FALSE, and you have coded
CHKCONFIDENCE TRUE in FTP.DATA, the confidence level reported when a multibyte file is
received from the network without an EOL sequence in the last record will be high. If you set
MBREQUIRELASTEOL to TRUE, and you have coded CHKCONFIDENCE TRUE in
FTP.DATA, the confidence level reported when a multibyte file is received from the network
without an EOL sequence in the last record is low.
To create UTF-8 file on the workstations, use the Windows notepad to edit a file and save it
with the appropriate encoding option, as shown in Figure 3-3.
Example 3-5 illustrates the complete FTP dialog for the file.
Example 3-5 FTP from the Windows client to z/OS FTP Server
C:\>ftp 10.1.1.20
Connected to 10.1.1.20.
220-FTPDB1 IBM FTP CS V1R13 at wtsc30.ITSO.IBM.COM
220 Connection will close if idle for more than 5 minutes.
User (10.1.1.20:(none)): cs03
331 Send password please.
Password: 1
230 CS03 is logged on. Working directory is "CS03.".
ftp> ascii 2
200 Representation type is Ascii NonPrint
ftp> quote site encoding=mbcs 3
158 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
200 SITE command was accepted
ftp> quote site mbdataconn=(utf-8,utf-8) 4
200 SITE command was accepted
ftp> quote site unicodefilesystembom=asis 5
200 SITE command was accepted
ftp> put c:\UTF-8_FILE.txt 'TCPIP.ITSO.FTPUTF8' 6
200 Port request OK.
125 Storing data set TCPIP.ITSO.FTPUTF8
250 Transfer completed successfully.
ftp: 121 bytes sent in 0.00Seconds 121000.00Kbytes/sec.
ftp>
ftp> quote stat 7
211-using Mode Stream, Structure File, type ASCII, byte-size 8
211-ENcoding is set to MBCS
211-MBdataconn codeset names: utf-8,utf-8
211-Server site variable MBREQUIRELASTEOL is set to TRUE
211-Server site variable UNICODEFILESYSTEMBOM is set to ASIS
ftp>
Example 3-6 Attempt to transfer a file without an EOL in the last record
ftp> put c:\CSFTPUTF 'TCPIP.ITSO.FTPUTF8'
200 Port request OK.
125 Storing data set TCPIP.ITSO.FTPUTF8
451 Transfer aborted due to file error. File is cataloged. 1
451-File Transfer might be incomplete. Last record received without EOL sequence
ftp: 125 bytes sent in 0.00Seconds 125000.00Kbytes/sec.
Line numbered 1 indicates that file transfer seems to have failed (message 451 implication),
but actually the file has been stored in the data set. The problem is that Windows sent the file
without an EOL sequence in the final record. To correct this without specifying
MBREQUIRELASTEOL, edit the file with an ASCII-based editor and scroll to the end of the
data. Press Enter and save the file. Transmitting it again should work. If a file contains an
EOL <crlf> before the actual end of the data, FTP transfer will only transmit data up to that
EOL and MBREQUIRELASTEOL will return a successful return code.
Note: Because this is an optional feature, there are no migration issues. To take advantage
of these functions, you only need to use the technique of specifying Unicode operation by
using MBDATACONN, MBREQUIRELASTEOL, and UNICODEFILESYSTEMBOM. These
can be used through the SITE and LOCSITE commands, without changing FTP.DATA.
160 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
all the FTP.DATA parameters. The example uses the supplied FTCDATA without any
additional changes.
The FTP client uses the search order documented in z/OS Communications Server: IP
Configuration Reference, SC27-3651, to locate its FTP.DATA data set. Use a SYSFTPD DD
card in your TSO logon procedure, or use the -f parameter to point to the wanted
configuration file. This process ensures that you are using the correct FTP.DATA data set.
Your FTP client is now ready for use.
162 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Create the STDENV file for the FTPD server
Example 3-10 shows the STDENV environment variable file used for the example FTPD
server.
Note: You can use the _CEE_ENVFILE environment variable in the PARM field of the JCL
to point to a file that contains other environment variables. The file can be a UNIX file, a
zFS, or a z/OS MVS data set. When it is an MVS data set, the data set must be allocated
with RECFM=V.
RECFM=F must not be used because it allows padding of the record with blanks after the
environment variable value. When the variable represents a file name, the padded value
could cause a file-not-found condition because the padded blanks are considered part of
the name of the file in z/OS UNIX. If the standard environment file is in MVS and is not
allocated with RECFM=V, the results can be unpredictable.
The PORT statement in PROFILE.TCPIP should reserve the FTP control and FTP data ports
to the FTP job name. The default ports for FTP are TCP port 21 for the control connection and
TCP port 20 for the data connection. The port must be reserved to the job name of the
running FTP server. Example 3-11 shows our AUTOLOG and PORT statements in
PROFILE.TCPIP.
PORT
20 TCP FTPDB NOAUTOLOG
21 TCP FTPDB1
Configure syslogd
Generally, configure syslogd before starting the FTP server. If you use the recommended
syslogd configuration, then your syslogd configuration file already contains one of the lines
shown in Example 3-13. This configuration will capture all messages from the FTP server
task that have a job name that starts with FTPDB to a separate log file named ftpd.log. See
Chapter 1, “The syslog daemon” on page 1, for more details about syslogd.
164 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 3-14 shows the EZY2702I message received shortly after FTP was started.
Check client log for successful connection to server, before client login
Example 3-15 shows the output log of the FTP client from another z/OS LPAR immediately
after a connection, but before logging in to the server.
Example 3-17 MVS display of active FTPDB* jobs before client login
JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS
00009 00029 00001 00035 00025 00001/00075 00034
FTPDB1 STEP1 TCPIP OWT AO A=0056 PER=NO SMC=000 1
PGN=N/A DMN=N/A AFF=NONE
CT=000.035S ET=09.47.14 2
WUID=STC03780 USERID=TCPIP 3
WKL=SYSTEM SCL=SYSOTHER P=1
RGP=N/A SRVR=NO QSC=NO
ADDR SPACE ASTE=7E656580
FTPDB STEP1 TCPIP OWT AO A=0054 PER=NO SMC=000 4
PGN=N/A DMN=N/A AFF=NONE
CT=000.006S ET=025.257S 5
WUID=STC05313 USERID=TCPIP 6
WKL=SYSTEM SCL=SYSOTHER P=1
RGP=N/A SRVR=NO QSC=NO
ADDR SPACE ASTE=7E656500
166 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Check NETSTAT conn status of FTPDB* connections before client login
Example 3-18 shows the NETSTAT output for connections that belong to FTPDB* before
client login.
Job name FTPDB1 shows two connections: 1 The listener, on port 21 (2) in a listen state that
represents the listener task. 3 The connection between local port 21 (4) and 10.1.2.10 port
1137 (5) that represents the established control connection for the client. Note that the
established connection for the client shows job name FTPDB1 (the server listener ID) and not
job name FTPDB, as you would expect. This is because the job that originally accepted the
connection was FTPDB1 and only after the connection was established was a new job forked
to handle the FTP session. So, as far as the stack is concerned, the original job name is what
is assigned to the client’s control connection. When the data connection is opened for a data
transfer, the data connection (on port 20) is assigned a job name of FTPDB, as expected.
Example 3-19 FTP connect from one z/OS system to another z/OS system: after login
EZA1450I IBM FTP CS V1R13
EZA1466I FTP: using TCPIPA
EZA1554I Connecting to: 10.1.1.20 port: 21.
220-FTPDB1 IBM FTP CS V1R13 at wtsc30.ITSO.IBM.COM 1
220 Connection will close if idle for more than 5 minutes.
EZA1459I NAME (10.1.1.20:CS03):
cs03
EZA1701I >>> USER cs03
331 Send password please.
EZA1789I PASSWORD:
EZA1701I >>> PASS
168 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
PGN=N/A DMN=N/A AFF=NONE
CT=000.007S ET=044.230S 5
WUID=STC05219 USERID=CS03 6
WKL=SYSTEM SCL=SYSOTHER P=1
RGP=N/A SRVR=NO QSC=NO
ADDR SPACE ASTE=7E656B00
Job name FTPDB1 shows two connections: 1 The listener, on port 21 (2) in a listen state that
represents the listener task. 3 The connection between local port 21 (4) and 10.1.2.10 port
1137 (5) that represents the established control connection for the client. Note that the
established connection for the client shows job name FTPDB1 (the server listener ID) and not
job name FTPDB, as you would expect. This is because the job that originally accepted the
connection was FTPDB1 and only after the connection was established was a new job forked
to handle the FTP session. So, as far as the stack is concerned, the original job name is what
is assigned to the client’s control connection. When the data connection is opened for a data
transfer, the data connection (on port 20) is assigned a job name of FTPDB, as expected. See
Example 3-23 on page 170.
170 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Check server parameter settings with the STAT command
The STAT command is issued by the client to request a listing of the server options. The
server responds with reply code 211 messages. Example 3-24 shows an abbreviated list of
the server options.
172 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.3.1 Description of multiple FTP servers in a sysplex
This example uses two system images, each with only one TCP/IP stack and only one FTP
server associated with it. The TCP/IP stack started-task names are TCPIPA and TCPIPB.
The FTPD server started-task names are FTPDA and FTPDB. System symbolics are used in
the started task JCL to provide uniqueness where necessary.
The two stacks back up each other. The two FTP servers also back up each other. Even
though it is not a requirement for a backup stack to distribute connections identically to the
method used in the primary stack, the example stacks do so. If the primary stack fails, or
otherwise relinquishes its distributor responsibilities, the backup stack continues to distribute
connections to the FTPD servers in the same fashion as the primary.
The multiple stacks must have Distributed Dynamic VIPA definitions added to support
distribution to the multiple FTPD servers. The VIPADYNAMIC block must be coded in the
backup stack in such a way that it distributes connections in a similar manner as the primary,
although not necessarily in an identical manner. The example scenario calls for an identical
process.
The introduction of sysplex distribution adds the requirement for a new IP subnet for
Distributed DVIPA as though Dynamic VIPA has not already been implemented.
Sysplex distribution working with Workload Manager provides load balancing between the
stacks and between the FTPD servers.
For more information about the advantages of high availability and workload balancing, see
descriptions in the following resources:
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 3 High
Availability, Scalability, and Performance, SG24-8362
z/OS Communications Server: IP Configuration Guide, SC27-3650
Planning and design are more complex, involving multiple departments. The necessity for
cooperation between departments is sometimes underestimated or even unplanned.
Mainframe systems and networking personnel must be aware of the physical network
requirements.
Operations must be made aware of changes that sysplex distribution, multiple stacks, and
multiple server applications introduce to the environment.
Automations and scheduling changes might be required. These issues are sometimes
overlooked.
To load balance FTP in a sysplex, perform all the implementation tasks for both client and
server, as described in 3.2.3, “Configuration of basic FTP without security” on page 160.
174 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Alternatively, if security is needed, perform all the secure FTP tasks in IBM z/OS V2R2
Communications Server TCP/IP Implementation: Volume 4 Security and Policy-Based
Networking, SG24-8363. Then, complete the following additional tasks:
1. Customize a second TCP/IP stack started task procedure.
2. Customize a second FTP server started task procedure.
3. Customize a second FTP server configuration data set.
4. Customize an OMPROUTE started task to support the second stack.
5. Customize an OMPROUTE configuration for the second OMPROUTE.
Customize both TCP/IP stack profile data sets for the sysplex
The stack in LPAR SC31 is the sysplex distributor stack, and the stack in LPAR SC30 is the
backup stack. Both stacks are FTP targets. For a complete description and examples of
setting up a stack, see the following sources:
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 1 Base
Functions, Connectivity, and Routing, SG24-8360
z/OS Communications Server: IP Configuration Guide, SC27-3650
Add statements that enable sysplex functions, create dynamic XCF interfaces, and create
dynamic VIPAs. The statements necessary to enable sysplex distribution on TCPIPB on
LPAR SC31 are shown in Example 3-26.
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM algorithm -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.25 ;FTP 4
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM 5
10.1.8.25 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using ROUNDROBIN -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.21 ;FTP General
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.22 ;FTP Admin
VIPADISTRIBUTE DEFINE DISTMETHOD BASEWLM
10.1.8.22 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using SERVERWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.23 ;FTP Payroll
VIPADISTRIBUTE DEFINE DISTMETHOD SERVERWLM
10.1.8.23 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Distribute to 10.1.7.21 via normal XCF (no viparoute) -
; Distribute to 10.1.7.11 via IP routing ( viparoute) -
;-------------------------------------------------------------------
VIPAROUTE DEFINE 10.1.7.11 10.1.1.10 ; sc30's static vipa 6
;VIPAROUTE DEFINE 10.1.7.21 10.1.1.20 ; sc31's static vipa
ENDVIPADYNAMIC
The statements necessary to enable sysplex distribution in TCPIPA on LPAR SC30 are
shown in Example 3-27.
Example 3-27 Sysplex enablement for TCPIPA on SC30
GLOBALCONFIG
SYSPLEXMONITOR DELAYJOIN NORECOVERY TIMERSECS 60
;
IPCONFIG
SYSPLEXROUTING
176 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
DYNAMICXCF 10.1.7.11 255.255.255.0 8
;
VIPADYNAMIC
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM algorithm -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.25 ;FTP
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.25 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using ROUNDROBIN -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.21 ;FTP General
VIPADISTRIBUTE DEFINE DISTMETHOD ROUNDROBIN
10.1.8.21 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.22 ;FTP Admin
VIPADISTRIBUTE DEFINE DISTMETHOD BASEWLM
10.1.8.22 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using SERVERWLM -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.23 ;FTP Payroll
VIPADISTRIBUTE DEFINE DISTMETHOD SERVERWLM
10.1.8.23 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Distribute to 10.1.7.21 via IP routing ( viparoute) -
; Distribute to 10.1.7.11 via normal XCF (no viparoute) -
;-------------------------------------------------------------------
;VIPAROUTE DEFINE 10.1.7.11 10.1.1.10 ; sc30's static vipa
VIPAROUTE DEFINE 10.1.7.21 10.1.1.20 ; sc31's static vipa
ENDVIPADYNAMIC
The omproute configuration that was used is the same as the configuration described in
“Customize an OMPROUTE configuration for the second OMPROUTE” on page 178.
If FTP is autologged in both stacks, then FTP automatically starts and this step can be
skipped. Otherwise, issue the MVS START command for the FTPDB job on both systems:
S FTPDB
All verification tasks that are described in 3.2, “Basic FTP without security” on page 146 can
be used to verify that the FTPD server is running correctly in the sysplex. In addition, several
NETSTAT displays can be used to show the status of dynamic and distributed VIPA
connections. The format of the system NETSTAT command is as follows:
D TCPIP,TCPIPB,N,command,option
For complete details about the NETSTAT command, see z/OS Communications Server: IP
System Administrator’s Commands, SC27-3661.
178 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
This section describe the following extra tasks to verify sysplex distribution to FTP servers:
Use NETSTAT VCRT to show dynamic VIPA connection routing table.
Use NETSTAT VDPT to show dynamic VIPA destination port table.
Use NETSTAT VIPADCFG to show current dynamic VIPA configuration.
Use NETSTAT VIPADYN to show current dynamic VIPA and VIPAROUTE.
Example 3-28 shows the connections at the time the VCRT command was issued. Notice that
the distributing stack knows about all of the connections because it is managing them.
Notice that the non-distributing stack shows only the connections that have been distributed
to it, as shown in Example 3-29.
Example 3-30 shows the port table entries at the time of issuing the VDPT command. SC31
is currently the distributor, so it shows the ports being distributed and whether there is a ready
listener on the port.
Note: The TOTALCONN field indicates the total number of connections there have been
since the distribution started for the port. It does not represent the current number of
connections.
180 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
DEST: 10.1.8.23..20
DESTXCF: 10.1.7.11
TOTALCONN: 0000000000 RDY: 000 WLM: 00 TSR: 100
DISTMETHOD: SERVERWLM
FLG:
DEST: 10.1.8.23..20
DESTXCF: 10.1.7.21
TOTALCONN: 0000000000 RDY: 000 WLM: 00 TSR: 100
DISTMETHOD: SERVERWLM
FLG:
DEST: 10.1.8.23..21
DESTXCF: 10.1.7.11
TOTALCONN: 0000000000 RDY: 001 WLM: 15 TSR: 100
DISTMETHOD: SERVERWLM
FLG:
DEST: 10.1.8.23..21
DESTXCF: 10.1.7.21
TOTALCONN: 0000000000 RDY: 001 WLM: 15 TSR: 100
DISTMETHOD: SERVERWLM
FLG:
DEST: 10.1.8.25..20
DESTXCF: 10.1.7.11
TOTALCONN: 0000000000 RDY: 000 WLM: 04 TSR: 100
DISTMETHOD: BASEWLM
FLG:
DEST: 10.1.8.25..20
DESTXCF: 10.1.7.21
TOTALCONN: 0000000000 RDY: 000 WLM: 04 TSR: 100
DISTMETHOD: BASEWLM
FLG:
DEST: 10.1.8.25..21
DESTXCF: 10.1.7.11
TOTALCONN: 0000000000 RDY: 001 WLM: 04 TSR: 100
DISTMETHOD: BASEWLM
FLG:
DEST: 10.1.8.25..21
DESTXCF: 10.1.7.21
TOTALCONN: 0000000000 RDY: 001 WLM: 04 TSR: 100
DISTMETHOD: BASEWLM
FLG:
16 OF 16 RECORDS DISPLAYED
END OF THE REPORT
0 OF 0 RECORDS DISPLAYED
END OF THE REPORT
182 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
SYSPT: NO TIMAFF: NO FLG:
DEST: 10.1.8.23..21
DESTXCF: 10.1.7.11
DISTMETHOD: SERVERWLM
SYSPT: NO TIMAFF: NO FLG:
DEST: 10.1.8.23..21
DESTXCF: 10.1.7.21
DISTMETHOD: SERVERWLM
SYSPT: NO TIMAFF: NO FLG:
DEST: 10.1.8.25..20
DESTXCF: 10.1.7.11
DISTMETHOD: BASEWLM
SYSPT: YES TIMAFF: NO FLG:
DEST: 10.1.8.25..20
DESTXCF: 10.1.7.21
DISTMETHOD: BASEWLM
SYSPT: YES TIMAFF: NO FLG:
DEST: 10.1.8.25..21
DESTXCF: 10.1.7.11
DISTMETHOD: BASEWLM
SYSPT: YES TIMAFF: NO FLG:
DEST: 10.1.8.25..21
DESTXCF: 10.1.7.21
DISTMETHOD: BASEWLM
SYSPT: YES TIMAFF: NO FLG:
VIPA ROUTE:
DESTXCF: 10.1.7.11
TARGETIP: 10.1.1.10
END OF THE REPORT
The backup stack shows the VIPA BACKUP, RANGE, DISTRIBUTE, and ROUTE sections, as
shown in Example 3-33.
184 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Use NETSTAT VIPADYN to show current dynamic VIPA and VIPAROUTE
VIPADYN displays the current dynamic VIPA and VIPAROUTE information from the
perspective of the stack on which the command is entered. Two suboptions are available to
filter the output:
DVIPA: Displays the current dynamic VIPA information only
VIPAROUTE: Displays the current VIPAROUTE information only
DYNAMIC VIPA:
IPADDR/PREFIXLEN: 10.1.8.21/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.22/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.23/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.25/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
VIPA ROUTE:
DESTXCF: 10.1.7.11
TARGETIP: 10.1.1.10
RTSTATUS: ACTIVE
5 OF 5 RECORDS DISPLAYED
END OF THE REPORT
Example 3-35 shows the same information for SC31: with filters for dvipa only.
DYNAMIC VIPA:
IPADDR/PREFIXLEN: 10.1.8.21/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.22/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.23/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
IPADDR/PREFIXLEN: 10.1.8.25/24
STATUS: ACTIVE ORIGIN: VIPADEFINE DISTSTAT: DIST/DEST
ACTTIME: 10/01/2010 18:53:52
4 OF 4 RECORDS DISPLAYED
END OF THE REPORT
VIPA ROUTE:
DESTXCF: 10.1.7.11
TARGETIP: 10.1.1.10
RTSTATUS: ACTIVE
1 OF 1 RECORDS DISPLAYED
END OF THE REPORT
Example 3-37 shows SC30Netstat output for VIPADYN ftp and FTP DVIPA addresses.
DYNAMIC VIPA:
IPADDR/PREFIXLEN: 10.1.8.21/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.22/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.23/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.25/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
VIPA ROUTE:
DESTXCF: 10.1.7.21
TARGETIP: 10.1.1.20
RTSTATUS: ACTIVE
5 OF 5 RECORDS DISPLAYED
END OF THE REPORT
Example 3-38 shows SC30 Netstat output for VIPADYN,DVIPA with filters for DVIPA only.
DYNAMIC VIPA:
IPADDR/PREFIXLEN: 10.1.8.21/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.22/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.23/24
186 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
IPADDR/PREFIXLEN: 10.1.8.25/24
STATUS: BACKUP ORIGIN: VIPABACKUP DISTSTAT: DEST
ACTTIME: 10/01/2010 19:18:29
4 OF 4 RECORDS DISPLAYED
END OF THE REPORT
Example 3-39 shows SC31 Netstat output for VIPADYN,VIPAROUTE, with filters for
VIPAROUTE only.
VIPA ROUTE:
DESTXCF: 10.1.7.21
TARGETIP: 10.1.1.20
RTSTATUS: ACTIVE
1 OF 1 RECORDS DISPLAYED
Submitting batch FTP jobs allows non-interactive FTP sessions that run in the background.
In general, batch FTP does not handle transient failures. For example, during a network
problem, the FTP batch job will simply fail. If the network problem is resolved, the batch job
must be resubmitted to complete the file transfer. However, capabilities can handle transient
failures that are caused by a needed data set being held by another job or process.
You can use the DSWAITTIME statement to command FTP to retry access to data sets that
are not available because of other users. The value that is specified for DSWAITTIME is the
number of minutes that FTP tries to access an MVS data set that cannot be obtained
because another job or process was holding the data set. FTP then tries to access the data
set approximately every minute for the number of minutes specified in the DSWAITTIME
statement. For example, use the following code to set the data set wait time to 10 minutes:
DSWAITTIME 10
188 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Example 3-41 shows a sample NETRC data set.
190 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The REXX FTP Client API is supported in the following environments:
Non-authorized TSO exec
Authorized TSO exec
Batch environment
ISPF
UNIX environment under UNIX System shell scripts
As with an FTP batch job, an application that uses the FTP client API must handle transient
errors or the FTP transfer will fail.
A REXX FTP client requires a stub routine to translate between the string format that is used
within REXX programs and the text or binary format that is used by the underlying callable
FTP client API.
REXX FTP client API functions share a common return code format.
The z/OS FTP client, when started with the FTP client API for Java, operates as it does when
invoked under the z/OS UNIX shell. FTP client API for Java uses the Java Native Interface
(JNI) to interface with the z/OS FTP client by using the C Java FTP client API.
When using the FTP client API for Java, keep in mind the following points:
The user program can have more than one FTP client object initialized and active in a
single address space.
All requests that use the same FTP client object must be made from the same thread.
The application must have an OMVS segment defined (or set by default).
The interface module EZAFTPKI must be accessible to the application in the link list or in
a STEPLIB or JOBLIB DD statement.
You must include the EZAFTP.jar file in your class path, and the libEZAFTP.so file must be
located in $LIBPATH for the JNI methods to be found.
The EZAFTP.jar file is installed in the /usr/include/java_classes directory, and the
libEZAFTP.so file is installed in the /usr/lib directory.
For more about the FTP client API for Java, download the Javadoc information by completing
these steps:
1. Download the Javadoc stored in z/OS /usr/include/java_classes/EZAFTPdoc.jar to your
workstation (use FTP to retrieve it as a binary file).
2. Extract the documentation by using the Java jar utility:
jar –xvf EZAFTPdoc.jar
To use the jar utility, you need Java installed on your workstation.
3. Use a web browser to view the extracted index.html file.
Note: The Portable Operating System Interface for UNIX (POSIX) standard states that
mkfifo is preferred to mknod.
A named pipe is visible in the z/OS UNIX file system, as shown in Example 3-43.
In this example, test.fifo file is a named_pipe, and test.txt is an ordinary file. An ordinary
file is called a regular file or normal file in UNIX nomenclature. The term regular file is used
to refer to an ordinary file in the z/OS UNIX file system. You can identify which file is a named
pipe by viewing the file permissions. When the first character of the permissions is p as shown
for the file test.info, the file is the path name of a named pipe. You can list, rename, move,
delete, and chmod named pipes by using UNIX shell commands just as you can regular files.
Note: The size of the named pipe is zero, which is always the case, even when processes
are actively writing to the named pipe. However, a size zero is not sufficient to identify a
named pipe because a regular file can also be size zero.
Unlike a regular file, a named pipe is opened for writing and for reading at the same time. Any
data that a process writes to a named pipe is not stored in the file system. The contents of a
pipe reside in a finite buffer of volatile storage.
192 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.6.2 Description of FTP access to UNIX named pipes
FTP access to UNIX named pipes allows you to transfer files to and from z/OS UNIX System
Services named pipes. When regular files are transferred by FTP, after files are stored in
z/OS, then the files are processed by z/OS applications as needed. If the application supports
reading from a z/OS UNIX named pipe, the transfer from the remote site can overlap
processing by that z/OS application.
In other words, you have an unbroken pipe from the remote site that goes through a TCP
connection and continues all the way into the post-processing application without further store
and forward delays, as illustrated in Figure 3-4. This figure is based on the IBM DB2® batch
load utility.
Example
based on
DB2 DB2 batch DB2
load utility
Distributed Distributed
data data
Using FTP access to UNIX named pipes provides the following benefits:
An I/O transfer to a named pipe is faster than an I/O transfer to a regular file.
Applications can run simultaneously with file transfers.
In addition, using FTP access to UNIX named pipes has the following limitations:
Anonymous users cannot create, rename, delete, read from, or write to named pipes in
the FTP server z/OS UNIX System Services file system.
You can append to but not replace the contents of a named pipe.
The operation system provides no serialization for named pipes. Multiple processes can
read from or write to a named pipe.
You can also change the server’s configured values for UNIXFILETYPE, FIFOOPENTIME,
and FIFOIOTIME after you log in to the z/OS FTP server with the z/OS FTP client by using
the following site subcommands:
site unixfiletype={file|fifo}
site fifoopentime=seconds
site fifoiotime=seconds
194 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The locstat and stat subcommands
You can display the client’s UNIXFILETYPE, FIFOOPENTIME, and FIFOIOTIME settings with
the locstat subcommand, as shown in Example 3-44.
You can also display the server’s UNIXFILETYPE, FIFOOPENTIME, and FIFOIOTIME
settings with the stat subcommand when you log in to the z/OS FTP server with the z/OS
FTP client, as shown in Example 3-45.
You can use the z/OS FTP stat subcommand with a parameter to display the configured
value of UNIXFILETYPE, FIFOOPENTIME, and FIFOIOTIME, as shown in Example 3-46.
When you issue the mkfifo subcommand from the FTP client, the client sends an XFIF
command to the server. The server replies with reply code 257 to indicate it created the
named pipe successfully.
196 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
drwxr-xr-x 24 SYSPROG SYS1 8192 Sep 4 18:02 ..
prwxr-x--- 1 CS05 SYS1 0 Sep 8 15:46 my.fifo
prwxrwxrwx 1 CS05 SYS1 0 Sep 8 16:15 new.fifo
250 List completed successfully.
Command:
This example uses a UMASK value of 000, which means that a new.fifo is created with
permissions rwxrwxrwx.
Note: No FTP client will prevent you from specifying a named pipe. It always depends on
the server to determine whether it supports access to a named pipe.
You must start an application that can read from the named pipe, and it must open the named
pipe. Example 3-49 demonstrates storing data in a named pipe at the FTP client.
Example 3-49 Storing into a named pipe in the client file system
EZA1460I Command:
locsite unixfiletype=fifo
EZA1460I Command:
get /etc/hosts /work/my.fifo
EZA1733I waiting up to 60 seconds for read process to open /work/my.fifo
EZA1701I >>> PORT 10,1,2,21,4,29
200 Port request OK.
EZA1701I >>> RETR /etc/hosts
125 Sending data set /etc/hosts
250 Transfer completed successfully.
EZA1617I 1338 bytes transferred in 0.005 seconds. Transfer rate 267.60 Kbytes/sec.
EZA1460I Command:
Note: This example demonstrates storing data into an existing named pipe at the FTP
client. The FTP client creates a named pipe during get processing if it does not exist, just
as it creates a regular file that does not exist. However, because the client and the pipe
reader must start at the same time, you might prefer to create your named pipes before
storing a file transfer.
Example 3-50 demonstrates storing data into a named pipe at the FTP server.
Example 3-50 Storing into a named pipe in the server file system
EZA1460I Command:
site unixfiletype=fifo
EZA1701I >>> SITE unixfiletype=fifo
200 SITE command was accepted
EZA1460I Command:
put /etc/hosts /work/my.fifo
EZA1701I >>> PORT 10,1,2,21,4,31
200 Port request OK.
EZA1701I >>> STOR /work/my.fifo
125 Appending to named pipe /work/my.fifo
250 Transfer completed successfully.
EZA1617I 1096 bytes transferred in 0.005 seconds. Transfer rate 219.20 Kbytes/sec.
EZA1460I Command:
In this example, the FTP client user sets the UNIXFILETYPE to FIFO on the FTP server host
to indicate that the server should treat z/OS UNIX files as a named pipe. Second, the FTP
client user issues the put subcommand to store a local file (/etc/host) into a remote named
pipe. The FTP client sends a STOR subcommand to the server, specifying the z/OS UNIX
path name. The server is able to open the named pipe for writing right away because the
named pipe reader is already active.
Notice that the server reply says it is appending to the named pipe rather than storing into
the named pipe because all writes to a named pipe are appends. It is not possible to
overlay the contents of a named pipe with new data, whether you are using FTP or another
process to store in the named pipe
198 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.7 FTP large data set access
This section provides an overview of FTP support for extended address volumes and large
format data sets, and gives an example of how to use this function.
General information
The term extended address volume (EAV) refers to a volume of more than 65,520 cylinders.
The support for EAV is included in the DFSMS product and requires customization by the
system programmer.
Figure 3-5 shows that cylinders up to, but not including, cylinder 65,536 are in the base
addressing space of the EAV. Cylinders starting with cylinder 65,536 are in the extended
addressing space (EAS) of the EAV.
An EAS-eligible data set can use cylinder-managed space. It is the only type of data set that
is allowed to reside in the EAS of an EAV. However, z/OS might put an EAS-eligible data set
in the base addressing space. Thus, the entirety of an EAV is available to an EAS-eligible
data set.
Note: Applications that deal with volume capacity do not automatically support EAVs. An
example is an application that accesses volumes to determine the amount of free space on
the volume. You need to modify these applications to support EAVs.
FTP provides the following support for physical sequential large format data sets:
Transfer to and from physical sequential large format data sets.
You can configure FTP to allocate new physical sequential data sets as basic format or
large format by specifying FTP subcommand SITE DSNTYPE/LOCSITE DSNTYPE.
FTP configuration file can be a physical sequential large format data set.
Block mode restart of interrupted file transfer (specify FTP subcommand RESTART) is
supported.
Rename, delete, and list the physical sequential large format data set.
200 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.7.3 Example of EAS-eligible data set allocation for FTP transfer
Example 3-51 demonstrates how to allocate an EAS-eligible partitioned data set (PDS) for
FTP transfer. The FTP client issues a SITE FTP subcommand to set EATTR to OPT, the
server volume to an EAV volume, and PDSTYPE to PDS (use QUOTE with SITE
subcommand if you use a non-z/OS FTP client). EATTR OPT allows the system to allocate an
EAS-eligible data set if the volume on which the data set resides is an EAV. To ensure
allocation to an EAV, specify the name of the EAV with the VOLUME parameter. Then, the
FTP client issues an MKDIR FTP subcommand to create an EAS-eligible PDS.
SMF data sets must have one data set actively recording data.
Advantages
The SMF data can be accessed in two ways:
Through normal batch processing of SMF data
Through a real-time Network Management interface
For normal SMF data, you must configure profile.tcpip and ftp.data to specify that SMF
records are to be created when certain events occur:
Code the SMF statement SMFCONFIG TYPE119 FTPCLIENT in the profile.tcpip file.
Code the SMF statements in the FTP server’s ftp.data file as shown in Example 3-52.
202 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
3.9 Problem determination for FTP
During a server problem, first check the console and syslogd for error messages. If no
problem can be identified from messages, enable the FTP TRACE by specifying the keyword
TRACE on the first line of the FTPD cataloged procedure on the PARMS parameter.
For more information, see z/OS Communications Server: IP Diagnosis Guide, GC31-8782.
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC31-8775.
A Management Information Base (MIB) provides the core definition of all network-managed
resources. Managed data is defined in IETF standards, and in proprietary instances the data
is called MIB objects or MIB variables. MIB-II is the recommended Internet standard format
for managed information. Its current specification is in RFC 1213, and RFC2011 through
RFC2013. Management Information Base for Network Management of TCP/IP-based
internetworks is referred to as MIB-II.
Section Topic
z/OS SNMP client command SNMP client command configuration setup examples
and usage procedures.
Problem determination for the SNMP Problem determination tools and commands for z/OS
facilities SNMP facilities.
Additional information sources for SNMP References to more documentation for z/OS SNMP
facilities.
LPD client, NDB, NICS, RPC, Kerberos, Bind 9 (DNS server), TN3270 server, FTP server, FTP client,
LPD server, MISC server, NCPRoute, Telnet server, X-Windows client, SNMP Agent,
SMTP server, Portmapper, NPF, SNMP query, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail
Because IP networks have grown in size and complexity, so has the need for managing them.
Management packages are becoming more sophisticated and now require the availability of
an SNMP agent. The z/OS platform provides the robust support and high availability that is
required by these packages.
SNMP is probably the most widely used application for managing elements in a Internet
Protocol network. For most vendors, it has become a part of their packaged network
management offerings. The versatility of the z/OS platform enables it to support both SNMP
managers and SNMP agents for collecting, monitoring, and reporting network statistics. A
number of the applications included with the z/OS Communications Server have their own
subagent that can be enabled to register with an SNMP agent on the same system image.
206 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
subagents. The subagents are closely associated with managed elements that are able to
access specific device status information. The agents provide interfaces on behalf of
subagents to management packages that want to retrieve that information.
The framework of version 2 of the Simple Network Management Protocol (SNMPv2) was
published in April 1993 and consists of 12 RFCs, the first being RFC 1441 (which is an
introduction). In August 1993, all 12 RFCs became proposed standards with the status
elective. SNMPv3 is described in RFCs 2570 through 2573 and RFCs 3411 through 3415.
SNMPv3 is an extension to the existing SNMP architecture.
The view-based access control model that is supported in SNMPv3 allows granular access
control for MIB objects with either the user-based or community-based security models.
SNMPv3 also enables dynamic changes to the SNMP agent configuration. The SNMPv3
architecture is modularized so that portions of it can be enhanced over time without requiring
the entire architecture to be replaced.
SNMP Network
Management Station
SNMP Protocol
Get
GetNext
traps responses
GetBlock
Set
To understand the relationship between the NMS, the agent, and the subagent, an
understanding of the DPI is necessary. This is a special-purpose programming interface that
you can use if you want to implement MIB variables. In an z/OS Communications Server
SNMP environment, the MIB variables are defined in the MIBS.DATA data set. If you want to
add, replace, or delete MIB variables, you can develop an SNMP subagent program that uses
the DPI programming interface to interact with the SNMP agent address space (OSNMPD) to
perform such functions. For details about using the DPI interface, see z/OS Communications
Server: IP Programmer’s Guide and Reference, SC31-8787.
Several subagents and their specific MIBs delivered with the z/OS Communications Server
are as follows:
TCP/IP stack subagent with /usr/lpp/tcpip/samples/mvstcpip.mi2
OMPROUTE subagent
TN3270E Telnet server subagent with /usr/lpp/tcpip/samples/mvstn3270.mi2
NSLAPM2 V2 subagent for policy agent with usr/lpp/tcpip/samples/slapm2.mi2
OSA-Express Direct subagent supports data for OSA-Express features
The SNMP DPI V2.0 protocol specified in RFC1592 provides the ability to connect agents
through AF_UNIX or AF_INET sockets. The list of SNMP RFCs is large, so it is not described
in this book. For complete details about the standards and how they relate to each other, see
TCP/IP Tutorial and Technical Overview, GG24-3376.
208 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
4.1.3 How SNMP can be applied
Figure 4-3 illustrates the generic implementation of SNMP in a common industry standard
design. It shows the management component layers and the roles they play in network
management. The IBM z/OS implementation does not use all of the terminology that is
defined in the diagram. However, the diagram and its following explanation assist in
understanding how SNMP is generally implemented.
NMS NMS
NMA NMA
NE NE NE NE
MA MA MA MA
A host platform that runs a management package is an NMS, and the package is the Network
Management Application (or manager). The manager communicates with an agent by using
the SNMP protocol. The agent communicates with subagents to retrieve information that
satisfies requests from the manager. The protocol that is used between an agent and a
subagent can be DPI, SMUX, AgentX, or any proprietary protocol. The z/OS Agent uses the
DPI interface. A host platform that runs the agent and possibly the subagent is the network
element.
Use caution when you are working with SNMPv3 environments that enable authentication
and encryption. SNMPv3 notifications are encrypted and use a unique security key that is
created by hashing the user ID and engine ID. z/OS Communications Server provides a
configurable engine ID. See z/OS Communications Server: IP Programmer’s Guide and
Reference, SC31-8787, for information about how to specify the engine ID parameter in your
SNMP manager API configuration file.
In the z/OS Communications Server, the SNMP agent is a z/OS UNIX application. It supports
SNMPv1, SNMPv2c, and SNMPv3. SNMPv3 provides a network management framework
that enables the use of user-based security in addition to, or instead of, the community-based
security supported in SNMPv1 and SNMPv2c.
The z/OS SNMP agent and its relationship with the IP network is illustrated in Figure 4-4.
z/OS
z/OS UNIX Shell NetView
snmp Command SNMP Command
User's address NetView's address
space space
Same or
UDP Socket calls different
z/OS System
z/OS
SNMP AGENT
Agent's address
space
AF_UNIX
Socket calls
210 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Network SLAPM2 subagent with /usr/lpp/tcpip/samples/slapm2.mi2
OSA-Express Direct subagent supports data for OSA-Express features
The TCP/IP stack must be active on the z/OS system on which the SNMP agent runs. The
z/OS UNIX environment must be enabled and active. The agent is a z/OS UNIX application.
The trap forwarder task forwards traps from the SNMP agent to network management
applications. It listens for traps on a port, typically 162, and forwards them to all configured
managers. If you want to forward trap information to one or more managers, you must
configure the trap forwarder. For setup and configuration details, see z/OS Communications
Server: IP Configuration Guide, SC27-3650, and z/OS Communications Server: IP
Configuration Reference, SC27-3651.
The TN3270 SNMP subagent can only register with one agent, and each agent can support
only one TN3270 subagent. In addition to the required affinity, you must be careful to plan for
one agent per TN3270 subagent, including the TN3270 subagent that might be running within
the TCP/IP stack’s address space. If multiple TN3270 SNMP subagents initialize to the same
agent, the agent forwards all data requests to the first subagent that connected, and all other
initializations are queued. If the first subagent ends, the next subagent in the queue then
receives all data requests.
Example 4-1 Auto starting and port reservation for the SNMPD started task
AUTOLOG
SNMPDB
ENDAUTOLOG
PORT
161 UDP SNMPDB
Update the TCP/IP profile configuration data set for the query engine
The SNMP agent uses port 162, by default, for sending traps to the managers specified in the
SNMPTRAP.DEST or the SNMPD.CONF file. Port 162 should be reserved for the
management application primarily responsible for trap processing. If you plan to use the
query engine (one of the users of this is Tivoli NetView), then reserve the port as shown in
Example 4-2.
Example 4-2 Auto starting and port reservation for the SNMPQE query engine
AUTOLOG
SNMPQEB
ENDAUTOLOG
PORT
162 UDP SNMPQEB
The SNMP agent started task is used as an example. In this book, RACF is assumed to be
the security subsystem in use. If another security product is used, see its documentation for
equivalent set-up instructions. Before SNMP can be started, security for the procedure name
and its associated user ID must be defined. Review the sample file SEZAINST(EZARACF)
that contains sample security statements for this effort.
The procedure name must be added to the RACF STARTED class and have a user ID
associated with it as follows:
RDEFINE STARTED SNMP*.* STDATA(USER(SNMP))
SETROPTS RACLIST(STARTED) REFRESH
Coding the started task name using the wildcard format enables you to run multiple SNMP
started tasks without having to define each one separately. Their names would all be spelled
as SNMPx, where x is the qualifier. They can all be assigned to the same user ID.
212 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Use an existing superuser ID, or define a superuser ID to associate with the job name by
adding a user ID to RACF and altering it to superuser status as follows:
ADDUSER SNMP
ALTUSER SNMP OMVS(UID(0) PROGRAM (’/bin/sh’) HOME(’/’))
In this example, the user ID name is SNMP, but any name can be used. These two RACF
commands can be combined into one command by putting the OMVS parameter on the
ADDUSER command line. The add and alter commands are done separately in case the user
ID exists. If the add fails, the alter still succeeds.
If setting up a superuser ID is not desirable, you can instead permit the user ID to the
BPX.SUPERUSER class by completing the following steps:
1. Add the user to RACF:
ADDUSER OSNMP
2. Permit the user ID:
a. Create a BPX.SUPERUSER FACILITY class profile:
RDEFINE FACILITY BPX.SUPERUSER
b. If this is the first class profile, activate the FACILITY class:
SETROPTS CLASSACT(FACILITY) SETROPTS RACLIST(FACILITY)
c. Permit the user to the class:
ALTUSER SNMP OMVS(UID(25) PROGRAM (’/bin/sh’) HOME(’/’))
PERMIT BPX.SUPERUSER CLASS(FACILITY) ID(SNMP) ACCESS(READ)
In this example, the user ID is SNMP and the UID is 25. The UID can be any nonzero
number. UID 25 was used to match the well-known SNMP port number.
d. Refresh the FACILITY class:
SETROPTS RACLIST(FACILITY) REFRESH
Note: You can use the _CEE_ENVFILE environment variable in the PARM field of the JCL to
point to a file that contains other environment variables. The file can be a UNIX file, or a
zFS or z/OS MVS data set.
When it is an MVS data set, the data set must be allocated with RECFM=V. RECFM=F
must not be used because it allows padding of the record with blanks after the environment
variable value. When the variable represents a file name, the padded value could cause a
file-not-found condition because the padded blanks are considered part of the name of the
file in z/OS UNIX. If the standard environment file is in MVS and is not allocated with
RECFM=V, the results can be unpredictable.
Create the environment variable file for the SNMP agent proc
Example 4-4 shows the two STDENV files for the two example agents. The SNMP agent
requires information from the files that are indicated in the environment variable file. The
PDSs must have a RECFM of VB to enable proper processing of the variable settings.
Example 4-4 SNMP agent STDENV files for SC30 and SC31
for SC30:
BROWSE TCPIP.SC30.STDENV(SNMENV30) - 01.01 Line 00000000 Col 001 080
_BPXK_SETIBMOPT_TRANSPORT=TCPIPA 1
RESOLVER_CONFIG=//'TCPIPA.TCPPARMS(DATAA30)' 2
OSNMPD_DATA=//'TCPIPA.TCPPARMS(SNMPD30)' 3
PW_SRC=//'TCPIPA.TCPPARMS(PWSRC30)' 4
SNMPTRAP_DEST=//'TCPIPA.TCPPARMS(TRPDST30)' 5
for SC31:
BROWSE TCPIP.SC31.STDENV(SNMENV31) - 01.01 Line 00000000 Col 001 080
_BPXK_SETIBMOPT_TRANSPORT=TCPIPB
RESOLVER_CONFIG=//'TCPIPB.TCPPARMS(DATAB31)'
OSNMPD_DATA=//'TCPIPB.TCPPARMS(SNMPD31)'
PW_SRC=//'TCPIPB.TCPPARMS(PWSRC31)'
SNMPTRAP_DEST=//'TCPIPB.TCPPARMS(TRPDST31)'
214 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Create the MIB object configuration file for the SNMP agent
Supplying this information permits you to customize the values of certain MIB objects for your
specific installation. A sample, containing the MIB objects to be set, can be found in the z/OS
UNIX file system as file /usr/lpp/tcpip/samples/osnmpd.data. It can be copied to a PDS
member if you want the SNMPD procedure to use it that way. Customize the settings to match
your environment. Example 4-5 shows a portion of the osnmpd_data file.
Note: Do not be confused by the names of the sample file system. The /snmpd.conf file
is used by the SNMP agent that is being described. The /snmpv2.conf is used by the
z/OS UNIX osnmp command when acting as a manager submitting a request to an
agent, and is described later:
/snmpd.conf is referred to as SNMPD.CONF, and used by the agent
/osnmp.conf is referred to as OSNMP.CONF, and used by the command
/snmpv2.conf is referred to as OSNMP.CONF, and used by the command
The SNMP agent uses the SNMPD.BOOTS configuration file to support SNMPv3 security.
This file contains agent information that is used to authenticate the SNMPv3 requests. The
SNMPD.BOOTS file keeps the agent identifier and the number of times the agent reboots.
If no SNMPD.BOOTS file exists when the agent is started, the agent creates one.
Example 4-7 SNMPTRAP.DEST files for the SNMPD agent on each system
BROWSE TCPIPA.TCPPARMS(TRPDST30) - 01.00 Line 00000000 Col 001 080
# IP ADDRESSES OF THE SYSTEMS WHERE TRAPS CAN BE FORWARDED TO
10.1.1.20 UDP
10.1.1.30 UDP
10.1.1.40 UDP
216 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Configure the query engine started task (optional)
Update the SNMPQE cataloged procedure by copying the sample in SEZAINST(SNMPPROC) to
your system PROCLIB. Specify SNMP parameters, change the data set names as required to
suit your local configuration. Example 4-8 shows a sample of the SNMPQE PROC JCL that
was used in the example environment.
Create the SNMPARMS file to be use by the Tivoli NetView for z/OS
query engine
Example 4-9 shows Tivoli NetView for z/OS SNMPARMS for use with the query engine. Place
this member into Tivoli NetView for z/OS’s DSIPARM data set.
Example 4-9 SNMPARMS Tivoli NetView for z/OS member interface to SNMPQE
SNMPQE SNMPQEB * Started task name of SNMP Query Engine 1
SNMPQERT 60 * Retry timer (seconds) for IUCV CONNECT
SNMPRCNT 2 * Retry count for sending SNMP requests
SNMPRITO 10 * Retry initial timeout (10ths of a second)
SNMPRETO 2 * Retry backoff exponent (1=linear, 2=exponential)
SNMPMMLL 80 * Line length for Multiline Messages 38/44
In this example, the SNMPQE keyword specifies the actual started task name of the SNMP
Query Engine 1. Do not set it to the user ID that the started task is running under.
Configure the Trap Forwarder started task and its files (optional)
The Trap Forwarder task forwards traps from the SNMP agent to network management
applications. It listens for traps on a UDP port (typically 162) and forwards them to all
configured managers. If you want to forward trap information to one or more managers, you
must configure the Trap Forwarder. Set up the Trap Forwarder’s started task JCL, its
environment variable file, and its configuration file.
Note: If you are going to run both the SNMP Query Engine started task and the trap
forwarder started task (both listen on UDP port 162 by default), then Trap Forwarder has to
listen on a different port from 162 to avoid conflicts. An alternative is to let them both listen
on port 162. However, make the Trap Forwarder a bind-specific listener by coding BIND on
its port reservation statement and by specifying a dynamic VIPA address for the forwarder.
A dynamic VIPA address used for the BIND is specified with the VIPARANGE statement. If
client threads are sending packets to the forwarder, then specify that bind address to
contact the forwarder.
Example 4-11 STDENV file for the TRAPFWDB task on each system
BROWSE TCPIP.SC30.STDENV(TRPENV30) - 01.02 Line 00000000 Col 001 080
_BPXK_SETIBMOPT_TRANSPORT=TCPIPA 1
RESOLVER_CONFIG=//'TCPIPA.TCPPARMS(DATAA30)' 2
TRAPFWD_CONF=//'TCPIPA.TCPPARMS(TRPCFG30)' 3
Example 4-12 TRAPFWD.CONF files for the TRAPFWDB task on each system
BROWSE TCPIPA.TCPPARMS(TRPCFG30) - 01.00 Line 00000000 Col 001 080
10.1.1.20 161
10.1.1.30 161
218 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
For Trap Forwarder setup and configuration details, see z/OS Communications Server: IP
Configuration Guide, SC27-3650, and z/OS Communications Server: IP Configuration
Reference, SC27-3651.
Example 4-13 Starting the SNMP agent, the query engine, and the Trap Forwarder
S SNMPDB
$HASP373 SNMPDB STARTED
SNMPDB issues:
EZZ6225I SNMP AGENT: INITIALIZATION COMPLETE
S SNMPQEB
$HASP100 SNMPQEB ON STCINRDR
IEF695I START SNMPQEB WITH JOBNAME SNMPQEB IS ASSIGNED TO USER TCPIP , GROUP TCPGRP
$HASP373 SNMPQEB STARTED
EZA6275I SNMP Query Engine running and awaiting queries...
S TRAPFWDB
TRAPFWD issues its own startup message, not related to SNMPD startup:
EZZ8409I TRAPFWD: INITIALIZATION COMPLETE
After you verify that each started task initializes successfully and issues the expected startup
messages, use the NETSTAT CONN command to verify that each one is listening on its
respective port, as shown in Example 4-14.
The following z/OS SNMP subagent topics are described in this section:
Description of SNMP subagents
Configuration of SNMP subagents
Activation and Verification of SNMP subagents
TCP/IP subagent
The TCP/IP subagent in the z/OS Communications Server is a z/OS UNIX application that
runs as a subtask in the TCP/IP address space.
Besides providing support for retrieval of TCP/IP stack management data, the TCP/IP
subagent provides SET support, enabling remote configuration of some TCP/IP address
space parameters. The TCP/IP subagent is configured and controlled by the SACONFIG
statement in the PROFILE.TCPIP data set. If no SACONFIG statement is provided, then the
TCP/IP subagent is started at stack initialization. If you will not be retrieving TCP/IP stack
management data, or you do not require the capability to do remote configuration of TCP/IP
address space parameters, you can disable the subagent and save system resources.
OMPROUTE subagent
The OMPROUTE subagent implements the Open Shortest Path First (OSPF) MIB variable
containing the OSPF protocol and state information. The OMPROUTE subagent supports
selected MIB objects defined in RFC 1850. The ROUTESA_CONFIG statement is used to
enable the subagent support for OMPROUTE.
220 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: The TN3270 MIB objects are available only when monitoring has been defined
within the TN3270 profile. If no monitoring has been defined in the profile, then the
osnmp/snmp command receives no information from its inquiry.
An SNMP subagent exists on an OSA-Express feature, which is part of a direct path between
the z/OS master agent (TCP/IP stacks) and an OSA-Express MIB. The OSA-Express
features support an SNMP agent by providing data for use by an SNMP management
application, such as Tivoli NetView. This data is organized into MIB tables that are defined in
the TCP/IP enterprise-specific MIB, and standard RFCs. The data is supported by the SNMP
TCP/IP subagent. This subagent runs as its own started task and has SAF security
requirements. See the security description in “Update RACF to define the SNMP agent
started task” on page 212.
Additionally, IBM provides a support MIB for the OSA-Express Direct subagent outside of the
z/OS Communications Server product. This MIB must be acquired separately. The MIB data
that is supported by the OSA-Express Direct subagent is defined in the OSA
enterprise-specific MIB module, IBM-OSA-MIB. This MIB contains the SNMPv2 syntax for the
OSA Direct specific MIB objects. The MIB module for the OSA-Express Direct subagent must
match your System z server’s Microcode Change Level (MCL). You can download the file
from the IBM support website.
OMPROUTE subagent:
ROUTESA_CONFIG ENABLED=YES COMMUNITY=”j0s9m2ap” AGENT=161;
Example 4-16 NSLAPM2 Proc JCL, SLAPM2B, subagent setup, and its STDENV file
BROWSE SYS1.PROCLIB(SLAPM2B) - 01.02 Line 00000000 Col 001 080
//SLAPM2B PROC STDENV=SLAENV&SYSCLONE. 1
//SLAPM2B EXEC PGM=NSLAPM2,REGION=0M,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)',
// 'ENVAR("_CEE_ENVFILE=DD:STDENV")',
// '/-o -c j02s9m2ap -P 161 -p TCPIPB') 2
//STDENV DD DSN=TCPIP.SC31.STDENV(&STDENV.),DISP=SHR 3
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=FB,LRECL=132,BLKSIZE=132)
The OSA-Express Direct subagent SNMP support for z/OS is provided by procedure
IOBSNMP. This procedure is included as part of the z/OS Communications Server product.
However, the MIB is not. You can update the cataloged procedure by copying the sample
found in hlq.SEZAINST(IOBSNMP) to your system PROCLIB. Change the data set names as
required to suit your local configuration. IOBSNMP has four optional parameters, as shown in
Example 4-17. The example started task is called SNMPOSAB.
Example 4-17 IOBSNMP Proc JCL, SNMPOSAB, setup information about the PARM statement
BROWSE SYS1.PROCLIB(SNMPOSAB) - 01.00 Line 00000000 Col 001 080
//SNMPOSAB PROC PARMS='-d 0'
//IOBSNMP EXEC PGM=IOBSNMP,TIME=1440,REGION=0M,DYNAMNBR=5,
// PARM='-c j0s9m2ap -p 161 -s TCPIPB &PARMS.'
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
222 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Typical startup messages for NSLAPM2 are shown in Example 4-18.
These sections cover verification actions you can perform for the agent and forwarder:
Review the agent and subagent initialization messages
Review IOBSNMP initialization and termination messages
Review SNMPQE initialization and termination messages
Interface display and traffic monitoring
TCP/IP stack display and management
SNMP agent configuration display and management
Performance statistics displays and monitoring
SNMPDB issues:
EZZ6225I SNMP AGENT: INITIALIZATION COMPLETE
OMPB issues:
EZZ8101I OMPROUTE SUBAGENT INITIALIZATION COMPLETE
or
EZZ8108I OMPROUTE SUBAGENT: RECONNECTED TO SNMP AGENT
TN3270B issues:
EZZ6041I TELNET SNMP SUBAGENT INITIALIZATION COMPLETE
or
EZZ6043I TELNET SNMP SUBAGENT RECONNECTED TO SNMP AGENT
TCPIPB issues:
EZZ3202I SNMP SUBAGENT: INITIALIZATION COMPLETE
EZZ3221I SNMP SUBAGENT: SET REQUESTS DISABLED
or
EZZ3217I SNMP SUBAGENT: RECONNECTED TO SNMP AGENT
TRAPFWD issues its own startup message, not related to SNMPD startup:
EZZ8409I TRAPFWD: INITIALIZATION COMPLETE
SNMPDB issues:
EZZ6204I SIGTERM RECEIVED FOR SNMP DAEMON WHICH IS NOW SHUTTING DOWN
$HASP395 SNMPDB ENDED
OMPB issues:
EZZ8107I OMPROUTE SUBAGENT: CONNECTION TO SNMP AGENT DROPPED
TCPIPB issues:
EZZ3216I SNMP SUBAGENT: LOST CONNECTION TO SNMP AGENT
TN3270B issues:
EZZ6042I TELNET SNMP SUBAGENT LOST CONNECTION TO SNMP AGENT
P SNMPOSAB
IOB031E 09/29/2007 16:55:24 OSA SNMP subagent has ended
P SNMPQEB
$HASP395 SNMPQEB ENDED
224 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Interface display and traffic monitoring
See 4.4.3, “Using the osnmp/snmp z/OS UNIX command” on page 227 for information about
how to use the snmp command. By monitoring the amount of data that is transmitted over a
router's interfaces, an administrator can monitor how many bytes of data have been
transmitted between IP subnetworks in a particular time period. You can also monitor the
traffic size over the interface of an IP host that is running as an application server. The
following MIB objects, among others, can be used for this monitoring:
ifInOctets gives the total number of octets that are received on the interface, including
framing characters.
ifOutOctets gives the total number of octets that are transmitted out of the interface,
including framing characters.
sysUpTime provides a count in one hundredths of a second of how long the SNMP agent
has been running. That amount is how long the device has been up and running in most
cases. This value is useful to determine the time differences from the previous collection
and whether previous counter information is valid. Therefore, this value should be
retrieved with each collection.
Complete the following tasks to prepare the Tivoli NetView for z/OS SNMP command:
1. Set up the SNMP Query Engine started task.
2. Set up the SNMPARMS control member for Tivoli NetView for z/OS.
3. Set up the hlq.MIBDESC.DATA data set.
Set up the SNMPARMS control member for Tivoli NetView for z/OS
SNMPIUCV reads the SNMPARMS member in the SEZADSIP data set at startup. This data
set contains the initialization parameters for SNMP. Add the data set containing SNMPARMS
to the DSIPARM DD statement in the Tivoli NetView for z/OS startup procedure. Example 4-9
on page 217 shows Tivoli NetView for z/OS SNMPARMS for use with the example query
engine.
226 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Implementation of the osnmp z/OS UNIX command
The osnmp command is used to send SNMP requests to SNMP agents on local or remote
hosts. The requests can be SNMPv1, SNMPv2, or SNMPv3. For SNMPv2 and SNMPv3
requests, the OSNMP.CONF configuration file is required. The winSNMPname specified in an
OSNMP.CONF statement can be used as the value of the -h parameter on the osnmp
command.
Example 4-23 /etc/snmpv2.conf file used by the osnmp/snmp z/OS UNIX command
#------------------------------------------------------------
# Community-based security (SNMPv1 and SNMPv2c)
#------------------------------------------------------------
v1 127.0.0.1 snmpv1
v2c 127.0.0.1 snmpv2c
v2c_ipv6 ::1 snmpv2c
mvs1 10.67.113.79 snmpv2c
sc30b 10.1.1.10 snmpv2c
sc31b 10.1.1.20 snmpv2c
sc32b 10.1.1.30 snmpv2c
# mvs2 mvs2c snmpv2c nosvipa
# mvs3 mvs3:1061 snmpv2c
mvs4 12ab::2 snmpv2c
Tip: If you are interested in a single MIB object only, use the get option with the fully
qualified MIB object, instead of the getbulk option as shown in these examples.
Establish a TN3270 client connection from the SC31 TSO session to the SC30 TN3270E
Telnet server. From SC30’s perspective, the local socket is 10.1.1.10 and the Foreign socket
is 10.1.1.20, as shown in Example 4-25.
228 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
CS07 @ SC30:/u/cs07>snmp -h sc31b -c j0s9m2ap -v getbulk ibmMvsTcpipProcname
ibmMvsTcpipProcname.0 = TCPIPB
ibmMvsTcpipAsid.0 = 132
The TN3270E Telnet server profile must have MONITORGROUP and MONITORMAP
statements that define the performance statistics, which should be collected for the mapped
connections.
Note: The TN3270 MIB objects are available only when monitoring has been defined
within the TN3270 profile. If no monitoring has been defined in the profile, then the
osnmp/snmp command receives no information to its inquiry.
230 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The statements in the example TN3270 profile, TELNB30B, are shown in Example 4-28.
Example 4-28 TN3270E Telnet server profile statements defining the MONITORGROUP for port 23
BEGINVTAM
PORT 23
DEFAULTLUS
SC30BB01..SC30BB99
ENDDEFAULTLUS
MONITORGROUP SNAONLY
AVERAGE
BUCKETS
NODYNAMICDR
NOINCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 100
BOUNDARY2 200
BOUNDARY3 300
BOUNDARY4 400
ENDMONITORGROUP
The profile statements that define the MONITORGROUP for port 992 are shown in
Example 4-29.
Example 4-29 TN3270E Telnet server profile statements defining the MONITORGROUP for port 992
MONITORGROUP SNAANDIP
AVERAGE
BUCKETS
DYNAMICDR
INCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 100
BOUNDARY2 200
BOUNDARY3 300
BOUNDARY4 400
ENDMONITORGROUP
To determine the total count of accepted connections for a TCP/IP stack, management
applications had to retrieve the accepted connection counter for each server and combine
these counts. Accepted connections counters for servers that had terminated were no longer
available.
The z/OS Communications Server provides two specific counters in the IBM MVS TCP/IP
enterprise-specific MIB module:
ibmMvsTcpAcceptCount (32-bit counter)
ibmMvsTcpHCAcceptCount (64-bit counter)
Both counters provide the total number of connections that are accepted by all listeners. They
differ only in their size. Example 4-30 shows samples that were obtained from snmp
commands in z/OS UNIX.
Example 4-31 shows that the object ibmMvsCpcNd can be obtained either through the snmp
command or through the MVS console command D M=CPU.
232 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
03 +I 113BD52817
04 -
05 -
06 -A
07 -I
CPC ND = 002817.M32.IBM.02.0000000B3BD5
CPC SI = 2817.715.IBM.02.00000000000B3BD5
Model: M32
CPC ID = 00
CPC NAME = SCZP301
LP NAME = A11 LP ID = 11
CSS ID = 1
MIF ID = 1
To allow larger amounts of data to be exchanged between SNMP agent and subagent, DPI
API now supports up to 65535-byte buffers and the agents support up to 65535 bytes for
responses.
Important: For subagents that are not provided by z/OS Communications Server, the
subagent load modules must be linked again to include the latest DPI API functions.
As a result, the applications can retrieve more data per SNMP request, especially when using
the SNMP GETBULK and BULKWALK options.
An option exists to enable the message EZZ6317I to be written to the console and syslog
daemon, making it more visible to those customers currently configuring this MIB object.
Example 4-32 illustrates the sample file where the object sysObjectId was commented out.
This setting prevents the message from being written to the console or to syslogd.
Example 4-33 shows the startup messages before changing the OSNMPD.DATA file. The
results do not include the EZZ6317I message.
234 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
EZZ6225I SNMP AGENT: INITIALIZATION COMPLETE
EZZ3217I SNMP SUBAGENT: RECONNECTED TO SNMP AGENT
Example 4-34 shows the startup messages after changing the OSNMPD.DATA file, which
enabled the sysObjectId.
snmp is a synonym for the osnmp command in the z/OS UNIX shell. snmp command syntax is
the same as that for the osnmp command.
For a comprehensive description of the use of the osnmp command and its syntax, see z/OS
Communications Server: IP System Administrator’s Commands, SC27-3661.
Certain MIB values are useful for problem determination in IP networks to solve problems
such as performance problems or lack of connectivity.
Examples of MIB objects that can be used to determine problems in the data link interface (if)
layer are as follows:
ifInErrors, ifOutErrors: Provide the number of inbound/outbound frames that were
discarded because of errors.
ifInDiscards, ifOutDiscards: Provide the number of inbound/outbound frames that were
discarded because of resource limitations.
The following are examples of MIB objects that can be used to determine problems in the
IP layer:
ipInHdrErrors: Provides the number of IP packets that were discarded because of errors
in their IP headers.
ipInUnknownProtos: Indicates the number of IP packets that were received successfully
but discarded because of either unknown or unsupported protocols.
ipInDiscards, ipOutDiscards: Provide the number of inbound/outbound IP packets that
were discarded because of resource limitations.
ipReasmFails: Provides the number of failures detected by the IP reassembly algorithm
(for whatever reason: Timed out, errors, and so on).
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC27-3650.
236 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
5
Chapter 5. IP printing
IP printing supports the sending of print output from a client device on an IP network to a
printer or a print server gateway on that network. This chapter focuses on the IP printing
functions that are available in the z/OS Communications Server.
The protocols defined in Request for Comments (RFC) 1179 and its amendments form the
basis for printing in a Internet Protocol network. The line printer daemon (LPD) is the remote
print server and the line printer requester (LPR) is the client defined by this protocol. If the
destination printer is a network printer that is defined to the LPD with an IP address or a DNS
name, then the LPD uses the TCP protocol to forward the file to the final IP destination.
Section Topic
Problem determination for Problem determination procedures for the LPR/LPD scenario.
LPR/LPD
LPD client, NDB, NICS, RPC, Kerberos, Bind 4.9.3 (DNS/WLM server), Bind 9 (DNS server), DHCP
LPD server, MISC server, NCPRoute, server, TN3270 server, FTP server, FTP client, Telnet
SMTP server, Portmapper, NPF, SNMP query, server, X-Windows client, SNMP Agent, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail
Many printers can support LPD themselves, allowing network clients to print directly to them.
Also, with advanced implementations, print services can be provided by a dedicated print
management solution that provides robust management and administration capabilities for
many printers.
238 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
No future functional enhancements are planned for the IBM Network Print Facility (NPF) for
z/OS, the predecessor of Infoprint Server.
LAN
LAN
LPR
LPD
Client
IP Network
Local LPR L
Client P
D
J J
NJE
E E
S S
z/OS z/OS
In a simple LPR/LPD environment with no additional print management products, a client can
issue the LPR command to print a file. By specifying a few parameters on the LPR command,
the client can direct the output to a printer defined on a print server that is acting as the LPD
server. Optional LPR parameters can be used to manipulate the printed file format and to
instruct the LPD server to perform additional processing after the file arrives at the server.
Two files are transmitted from the LPR client to the LPD server for each file to be printed:
A control file that contains structured parameter settings such as number of copies,
special forms, special fonts, target printer, queue class, and so on.
The actual data file to be printed.
The LPD server is responsible for managing the print queues for printers it has defined. It is
also responsible for the integrity of the received files and for successfully printing them. When
it is accepting print for a mainframe-attached printer (local system printer or remote printer),
the z/OS LPD server uses the Job Entry Subsystem (JES) spool as its repository and takes
advantage of spool integrity management that is provided by JES.
Possible solutions for these issues can be achieved by using the simple LPR/LPD functions,
or by implementing the more sophisticated Infoprint Server facilities.
5.2 LPR/LPD
A simple LPD server can be implemented on the mainframe to enable the z/OS platform as a
print server. This section contains the following topics:
Description of LPR/LPD
Configuration tasks for LPR/LPD
Activation and verification of LPR/LPD
240 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
5.2.1 Description of LPR/LPD
You can use LPD with the Time Sharing Option (TSO) LPR command or batch LPR jobs to
support TCP/IP print. This type of setup is limited in functionality, but involves minimal effort
and planning.
A TSO session user can enter the client LPR command manually for each file to be printed. A
batch job can also be set up to execute the LPR command in a background batch TSO
environment. The job can be scheduled and automated through a job scheduling system, but
there is no centralized management of the print files.
Dependencies of LPR/LPD
The z/OS LPD server uses JES to manage print files. The LPD server can receive the print
files being forwarded to it by the various LPR clients in the network. If the destination printer is
a z/OS controlled printer, the print file is placed onto the JES spool. Then, JES assumes
responsibility for sending it to the printer.
The LPD server uses the Pascal socket API, so VMCF must be started for the server to
successfully initialize. If VMCF is not started, message EZY1980E is issued and the server
terminates.
The LPD is the printer server that enables other hosts in your Internet Protocol network to use
printers on your z/OS system. You start the LPD server as an address space in your local
system. The LPD server enables users in your Internet Protocol network to address
JES-controlled printers. A client from any TCP/IP host can use the local LPR command to
print a local file on a JES-controlled printer. The printer can be a local JES system printer, or
it can be a printer that is accessed through an NJE network.
The LPR command enables a user on the local host to submit a file for printing on a remote
printer server. Support is included for proper translation of carriage control information if the
file you want to print uses formatted carriage control characters in the file’s records. If you
Update TCP/IP Profile data set with AUTOLOG and PORT statements
AUTOLOG and PORT statements in the PROFILE data set are shown in Example 5-1.
Update the LPD server cataloged procedure included as SYS1.SEZAINST(LPSPROC), but with
an actual procedure name of LPSERVE.
242 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Update LPD server configuration file from SEZAINST(LPDDATA)
A configuration data set for LPSERVE, LPDDATA, is shown in Example 5-3.
In the following command discussions, the printer name is a printer defined on the host at the
indicated location. The location can be either the IP address or the DNS name of the print
server for the printer, and can be any print server in the network: Either a z/OS system where
LPSERVE is running as a started task, or a non-z/OS print server platform in the network.
The LPQ command can query the status for all jobs on the printer’s queue, ask for detailed
status information related to those jobs, or query the status of jobs on the printer queue for a
specific user ID or job number, as shown in Example 5-6.
See the z/OS Communications Server: IP User’s Guide and Commands, SC27-3662, for a
complete list of parameters that can be specified on the LPR command. Example 5-7 shows
samples of the LPR command.
244 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The LPRM command can remove all jobs from the printer’s queue, or just a specific job
number or a specific job name, as shown in Example 5-8.
The LPRSET command can specify the print server’s DNS name or its IP address, or query
the current default setting, or display a confirmation of the setting, as shown in Example 5-9.
LPRSET (QUERY
EZB1020I Your LPR printer is currently set to testprt1 at lpdsrvr1.ibm.com.
LPRSET [email protected]
LPRSET (QUERY
Your LPR printer is currently set to testprt1 at 10.1.1.20.
If LPRSET is used to set the default printer and server, then the other commands do not have
to specify the printer or server, as shown in Example 5-10.
The Infoprint Server provides support for LAN and host printing by using your z/OS system as
a centralized print management platform for the printing needs of the entire enterprise. It
works together with data stream transforms that other IBM products provide. Figure 5-3
shows how most of the components of Infoprint Server fit into your z/OS system. The
components of Infoprint Server and the transform products are shaded. The Infoprint Server
transform components include the following items:
z/OS UNIX Shell Transform commands
Infoprint Server Transforms
Coax support
Transform
*Netspool *Print Interface
Manager
*Print Infoprint
Central
JES Spool Server
Transforms
*Inforpint
SNMP *PSF *IP Printway
Subagent *Printer
Inventory Coax
Support
z/OS
Local Printers
LAN Printers
PSF LPD IPP PSF E-mail
Print and Mail Servers Server Server Server
Indicates an IP connection
Indicates an SNA connection
* Indicates this component uses the Printer Inventory
Figure 5-3 Infoprint components
246 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Components of the Infoprint Server
The components of the Infoprint Server are described in this section.
Print Interface
The Print Interface processes print requests from remote clients and from the local z/OS
system, and allocates output data sets on the JES spool. The Print Interface accepts various
data formats and can transform input data streams to EBCDIC line data, ASCII text data, AFP,
PCL, PostScript, PDF, or other data formats that the printer accepts. A separate transform
product is required for some transforms.
NetSpool
NetSpool processes print requests from VTAM applications, such as IBM CICS and
IBM IMS™, and allocates output data sets on the JES spool. NetSpool thereby enables SNA
applications to print to TCP/IP printers. NetSpool accepts SCS, 3270, and binary data
streams, and can transform input data streams to EBCDIC line data, PCL, PDF, AFP, or other
data formats that the printer accepts. A separate transform product is required for some
transforms. However, a separate transform product is not required to convert input data
streams to the line or PCL formats.
IP PrintWay
IP PrintWay transmits data sets from the JES spool to printers or print servers in a TCP/IP or
SNA network and to email destinations. IP PrintWay accepts various data formats and can
transform input data streams to ASCII text data, PCL, PostScript, PDF, or other data formats
that the printer accepts. A separate transform product is required for some transforms.
Transform Manager
The Infoprint Server Transform Manager manages transforms provided by Infoprint Server
Transforms and other IBM transform products.
Infoprint Central
Infoprint Central is a web-based application that lets help desk operators work with print jobs
(output data sets) on the JES spool, printers controlled by IP PrintWay extended mode or
PSF, and NetSpool logical units. It also lets operators see system status and printer
definitions.
SNMP subagent
The Simple Network Management Protocol (SNMP) subagent lets you use an SNMP
manager to view printer characteristics and printer status for printers that PSF controls and
that do not have internal SNMP agents or that are not TCP/IP-attached to PSF. IBM Network
Printer Manager for the Web (NPM), which you can download at no charge from the web,
enables an operator to monitor printers throughout the network from a web browser running
on any workstation.
The optional features of the Infoprint Server have interdependencies for each other, and the
skills required to implement the product and its various features will probably cross
departmental boundaries. A cooperative effort is required among all departments involved to
achieve a successful implementation.
248 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
As part of any implementation effort, two appendixes in this book might be beneficial in
planning your work:
Environment variables are categorized by application in Appendix A, “Environment
variables” on page 373.
Sample files for each application are listed in Appendix B, “Sample files provided with
TCP/IP” on page 385. Because detailed implementation of the Infoprint Server is not
covered in this book, see the reference material that is listed in 5.3, “Infoprint Server” on
page 245 for implementation details.
Receive print requests from these sources, and allocate output data Printer Inventory Manager
sets on the JES spool: Print Interface
Clients that use LPR to LPD protocol Infoprint Port Monitor for
Clients that use Internet Printing Protocol (IPP) Windows (optional)
Windows clients that use Server Message Block (SMB)
protocol
z/OS UNIX lp, lpstat, and cancel commands
The AOPPRINT JCL procedure
Any Windows application that supports printing
Infoprint Server API
Batch jobs that specify the Print Interface subsystem on a DD
statement
Receive print requests from VTAM applications (such as CICS and Printer Inventory Manager
IMS), and allocate output data sets on the JES spool. NetSpool
Select output data sets from the JES spool and send data to a Printer Inventory Manager
remote system by using one of these transmission protocols: IP PrintWay, basic or
LPR to LPD protocol extended mode
IPP Print Interface (required to
Direct sockets printing transform data when you
VTAM use the resubmit for
Email filtering function of IP
PrintWay basic mode)
Transform data from one format to another, either automatically or Printer Inventory Manager
with a z/OS UNIX transform command: afp2pcl, afp2pdf, afp2ps, Transform Manager
pcl2afp, ps2afp, pdf2afp, sap2afp. Infoprint Server
Transforms V1.1
Use Infoprint Central for the web to work with print jobs, IP PrintWay Printer Inventory Manager
extended mode printers, PSF printers, and NetSpool logical units. Infoprint Central
View printer characteristics and the status of PSF printers using an Printer Inventory Manager
SNMP manager. SNMP subagent
Store PSF system information in the Printer Inventory. Printer Inventory Manager
Note: All components of the Infoprint Server require that you start the Printer Inventory
Manager.
IP PrintWay basic mode Start and stop IP PrintWay functional subsystem applications
(FSAs).
Maintain the IP PrintWay transmission-queue.
Start sendmail.
Work with output data sets on the JES spool.
View messages.
250 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Administering the Infoprint Server
This section can help you determine which administrative tasks you need to do to use the
Infoprint Server components customized by your installation. Table 5-4 lists the components
of the Infoprint Server and the associated administrative tasks.
NetSpool Plan printer definitions and printer pool definitions for NetSpool
Define NetSpool printer LUs to VTAM.
Several sample panels are shown next. Figure 5-4 shows the main ISPF panel for an IP
PrintWay printer definition.
Figure 5-5 shows the main ISPF panel for a PSF printer definition.
Figure 5-6 shows the main ISPF panel for a General printer definition.
252 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Figure 5-7 shows the ISPF panel for the NetSpool Options component.
Figure 5-8 shows the ISPF panel for the IP PrintWay Options section or component.
254 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Figure 5-12 shows the ISPF panel for an IP PrintWay FSS definition.
For complete implementation details about the Infoprint Server, see 5.3, “Infoprint Server” on
page 245.
The LPR client command can fail if any of the following error conditions occur:
The host name cannot be resolved:
– The name might be spelled incorrectly.
– The DNS server might be unavailable.
– Use the IP address to determine whether access can be gained.
– Ping the name to see whether DNS can resolve the name and access the server.
– Tracerte the name to see whether network path access is an issue.
The client program cannot connect to TCP/IP:
– TCP/IP might be unavailable on the local or remote machine.
– TCP/IP might not allow the LPR client program access to the stack.
– LPD cannot be configured or might be configured incorrectly.
No LPD server is listening on the remote server:
– Ensure that you are using the correct port number.
– Ensure that you are using the correct server name and IP address.
The TSO SMSG command provides an interactive interface to the LPD server for these tasks:
Turn on and off diagnostics tracing.
Query the work queue currently being used by the LPD server.
Example 5-13 SMSG being used to turn LPD TRACE on and off, and Print Queue
From the TSO ISHELL command line:
smsg lpserveb trace on
smsg lpserveb trace off
smsg lpserveb print work
These commands are privileged, so the commands are accepted only from users who are
specified in the OBEY statement in the LPD server configuration data set. Responses to the
SMSG command are not sent to your TSO window. You must look in the SYSPRINT file
associated with the LPSERVE job to see the responses, as shown in Example 5-14.
On the TSO ISPF shell command line, issue the LPR command:
lpr ‘tcpipb.tcpparms(datab30)’ at 10.1.1.20 printer sysprt1 class h
We received the error message shown in Example 5-15 from the LPR command.
Example 5-16 Port reservation list indicates LPR ports are missing (722-731)
d tcpip,tcpipb,n,portlist
. . .
PORT# PROT USER FLAGS RANGE SAF NAME
00007 TCP MISCSRVB DA
256 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
00009 TCP MISCSRVB DA
00019 TCP MISCSRVB DA
00020 TCP OMVS
00021 TCP OMVS DA
00023 TCP OMVS DABU
BINDSPECIFIC: 10.1.9.21
00023 TCP TN3270B DU
00025 TCP SMTPB DA
00053 TCP NAMED9B DA
00111 TCP PORTMAPB DA
00512 TCP OMVS DABU
BINDSPECIFIC: 10.1.9.22
00512 TCP RXSERVEB DAU
00514 TCP RXSERVEB DAU
00514 TCP OMVS DABU
BINDSPECIFIC: 10.1.9.22
00515 TCP LPSERVEB DA
00750 TCP MVSKERBB DA
00751 TCP ADM@SRVB DA
00992 TCP TN3270B D
00007 UDP MISCSRVB DA
00009 UDP MISCSRVB DA
00019 UDP MISCSRVB DA
00053 UDP NAMED9B DA
00111 UDP PORTMAPB DA
00161 UDP SNMPDB DA
00162 UDP SNMPQEB DA
00520 UDP OMPB D
00750 UDP MVSKERBB DA
00751 UDP ADM@SRVB DA
28 OF 28 RECORDS DISPLAYED
END OF THE REPORT
TSO users and batch jobs can issue LPR commands. Because you cannot know ahead of
time what job names might be used for any TSO user ID or for batch jobs, use the wildcard
approach when reserving the LPR ports. Because all of the example user IDs started with
CSxx, we set up an obeyfile member that would reserve the LPR ports for any job name
starting with CS*, as shown in Example 5-17.
Example 5-17 OBEYFILE member showing LPR ports for LPR to be added to port reservation list
BROWSE TCPIPB.TCPPARMS(LPRPORTS) - 01.00 Line 00000000 Col 001 080
PORT
722 TCP CS*
723 TCP CS*
724 TCP CS*
725 TCP CS*
726 TCP CS*
727 TCP CS*
728 TCP CS*
729 TCP CS*
730 TCP CS*
731 TCP CS*
Note: When adding definitions to your stack’s profile using the OBEYFILE command, if you
want them to be permanent, add the statements to the actual profile source before the next
recycle of the stack. If they are not added to the source by the time the stack is recycled,
the statements added by OBEYFILE are lost.
d tcpip,tcpipb,n,portlist
. . .
PORT# PROT USER FLAGS RANGE SAF NAME
00515 TCP LPSERVEB DA
00722 TCP CS* DA
00723 TCP CS* DA
00724 TCP CS* DA
00725 TCP CS* DA
00726 TCP CS* DA
00727 TCP CS* DA
00728 TCP CS* DA
00729 TCP CS* DA
00730 TCP CS* DA
00731 TCP CS* DA
00750 TCP MVSKERBB DA
00751 TCP ADM@SRVB DA
...
END OF THE REPORT
Now you are ready to try the LPR command again. A display of the JES output queue for the
LOCAL system printers shows no output from LPSERVEB job name before the LPR
command, as seen in Example 5-19.
Example 5-19 JES output queue before the LPR command shows nothing from LPSERVEB
SDSF OUTPUT ALL CLASSES ALL FORMS LINES 441,414 LINE 38-56 (56)
COMMAND INPUT ===> SCROLL ===> CSR
NP JOBNAME JobID Owner Prty C Forms Dest Tot-Rec
SYSLOG STC03794 +MASTER+ 96 A STD LOCAL 95,521
PAGTRACF JOB04094 CS08 144 H STD LOCAL 92
PAGTRACF JOB04095 CS08 144 H STD LOCAL 230
TRMDRACF JOB04110 CS09 144 H STD LOCAL 101
CNMEUNIX STC02494 SYSPROG 144 R STD LOCAL 80
TRMDSETP JOB03936 CS08 144 R STD LOCAL 79
TRMDSETP JOB03937 CS08 144 R STD LOCAL 80
TRMDRACF JOB03950 CS08 144 R STD LOCAL 21
258 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
TRMDRACF JOB03951 CS08 144 R STD LOCAL 95
TRMDRACF JOB04023 CS08 144 R STD LOCAL 101
SDSF HELD OUTPUT DISPLAY ALL CLASSES LINES 904 LINE 1-4 (4)
COMMAND INPUT ===> SCROLL ===> CSR
NP JOBNAME JobID Owner Prty C ODisp Dest Tot-Rec Tot-
CS074 JOB07178 CS07 144 H HOLD LOCAL 46
CS075 JOB07180 CS07 144 H HOLD LOCAL 46
CS07 TSU07131 CS07 144 S HOLD LOCAL 276
CS07 TSU07132 CS07 144 S HOLD LOCAL 536
This time, turn on the LPD trace by using the TSO SMSG command before reissuing the LPR
command:
smsg lpserveb trace on
lpr ‘tcpipb.tcpparms(datab30)’ at 10.1.1.20 printer sysprt1 class h
Look at SYSPRINT for LPSERVEB for the trace output, and at the SDSF JES output queue
for output from LPSERVEB in class H (specified on the LPR command). The trace output in
the example was quite large, so all of it is not shown here. However, certain important lines
from the trace are included that show the progression of servicing the received print file from
LPR. The trace is shown in Example 5-20.
Example 5-20 LPD trace receiving and processing a file from LPR
***** 10/01/10 *****
13:26:51 EZB0831I IBM MVS LPD Version CS V1R12
...................
13:27:12 EZB0834I Ready
13:30:02 EZB0786I Command received "TRACE ON".
..................
13:31:26 EZB0627I Passive open on port 515
13:31:26 EZB0782I Connection open. Reading command.
................
13:31:26 EZB0716I Job 998 received sysprt1 10.1.1.20
13:31:26 EZB0734I Job 998 added to work queue
13:31:26 EZB0716I Job 998 scheduled sysprt1 10.1.1.20
13:31:26 EZB0776I Released StepBlock at 00006D90
13:31:26 EZB0777I Released ConnectionBlock at 001CD000
13:31:26 EZB0824I ProcessWork starting on job queue
13:31:26 EZB0731I Work Queue start
13:31:26 EZB0732I $ 998 JOBstartPRINTING
13:31:26 EZB0733I Work Queue end
13:31:26 EZB0825I Job 998 for sysprt1 dispatched in state JOBstartPRINTING
13:31:26 EZB0716I Job 998 printing sysprt1 10.1.1.20
13:31:26 EZB0827I ProcessWork end with queue
13:31:26 EZB0731I Work Queue start
13:31:26 EZB0732I $ 998 JOBcontinuePRINTING
13:31:26 EZB0733I Work Queue end
................
13:31:26 EZB0825I Job 998 for sysprt1 dispatched in state JOBcontinuePRINTING
13:31:26 EZB0827I ProcessWork end with queue
13:31:26 EZB0731I Work Queue start
13:31:26 EZB0732I $ 998 JOBfinishPRINTING
13:31:26 EZB0733I Work Queue end
13:31:26 EZB0789I GetNextNote with ShouldWait of FALSE
13:31:26 EZB0824I ProcessWork starting on job queue
13:31:26 EZB0731I Work Queue start
13:31:26 EZB0732I $ 998 JOBfinishPRINTING
13:31:26 EZB0733I Work Queue end
13:31:26 EZB0825I Job 998 for sysprt1 dispatched in state JOBfinishPRINTING
Next, turn off the trace and issue another LPR command, specifying a different member to be
printed:
lpr ‘tcpipb.tcpparms(datab31)’ at 10.1.1.20 printer sysprt1 class h
When the trace is off, the output in LPSERVEB SYSPRINT is displayed as shown in
Example 5-21.
Look at the JES output queue for output from LPSERVEB in class H (specified in the LPR
command). Two new entries in the output queue for LPSERVEB were not there before:
One is for LPSERVEB’s job 115 when the trace was on (DATAB30).
The other is for LPSERVEB’s job 88 when the trace was off (DATAB31).
By selecting these two entries, you can verify that the DATAB30 and DATAB31 members are
in the queue, ready for printing on the local system printer in class H, as shown in
Example 5-23.
Example 5-23 LPSERVEB contents of the two print files waiting to be printed
SDSF OUTPUT DISPLAY LPSERVEB STC06154 DSID 111 LINE
WTSC30.ITSO.IBM.COM:TCPIPB.TCPPARMS(DATAB30)
TCPIPJOBNAME TCPIPB
HOSTNAME WTSC30B
DOMAINORIGIN ITSO.IBM.COM
DATASETPREFIX TCPIPB
MESSAGECASE MIXED
NSINTERADDR 127.0.0.1
NSPORTADDR 53
RESOLVEVIA UDP
RESOLVERTIMEOUT 10
260 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
RESOLVERUDPRETRIES 1
TCPIPJOBNAME TCPIPB
HOSTNAME WTSC31B
DOMAINORIGIN ITSO.IBM.COM
DATASETPREFIX TCPIPB
MESSAGECASE MIXED
NSINTERADDR 127.0.0.1
NSPORTADDR 53
RESOLVEVIA UDP
RESOLVERTIMEOUT 10
RESOLVERUDPRETRIES 1
;LOOKUP DNS LOCAL
;OPTIONS NDOTS:1
;SOCKDEBUG
;SOCKNOTESTSTOR
;TRACE RESOLVER
;ALWAYSWTO
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC31-8775.
Chapter 6. INETD
INETD, also known as the Internet super daemon, is an application that listens for connection
requests on behalf of other applications. During the initial connection process, INETD passes
the connection to the application associated with the targeted port. This chapter focuses on
INETD functions that are available in the z/OS Communications Server.
Section Topic
Additional information sources for References to additional reading resources for INETD
INETD topics.
TCP/IP Stack
IP Network
Clients
otelnet Others
orexec orsh Misc
Figure 6-1 INETD and its supported applications
264 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
6.1.1 What INETD is
The INETD servers provide access to the z/OS UNIX shell by using otelnetd, rexecd, or
rshd, allowing you to then run other UNIX commands and applications from there. The z/OS
Communications Server includes applications and several internal services that require
INETD, as listed in Table 6-1.
z/OS UNIX Telnet server See Chapter 8, “z/OS UNIX Telnet server” on page 323.
z/OS UNIX REXEC Server See Chapter 9, “Remote execution” on page 335.
z/OS UNIX RSH server See Chapter 9, “Remote execution” on page 335
sendmail and popper mail See Chapter 7, “z/OS mail servers” on page 275
servers
chargen Sends predefined or random data and discards any received data.
daytime Sends the current date and time in user readable form.
Both parameters are optional. If -d is specified, INETD does not fork at startup and all error
messages are written to STDERR. If a file name is specified, then INETD uses the specified
file as the configuration file instead of the default /etc/inetd.conf file.
Note: Only one INETD daemon can be run in one MVS image. The process file that the
INETD daemon uses is /etc/inetd.pid. You cannot change this file to another file name
using either shell commands or environment variables, and it can be used only by one
INETD daemon at a time.
All parameters except the last parameter, arguments, are required on each line. Table 6-2
defines each parameter.
service Name of the Internet service. This name must match an entry in /etc/services. By default, INETD
assumes that you want to listen on all IP addresses. However, you can optionally specify the service
parameter in the format of IP_address:service_name to force a particular service to listen on a particular
IP address.
socket type Options are stream or dgram. Applications that use the TCP protocol are stream applications. Applications
that use UDP are dgram.
protocol The IP protocol used by the application. The options are TCP, UDP, TCP4, TCP6, UDP4, or UDP6. If
TCP6 or UDP6 is specified, then the socket supports IPv6. You can also optionally specify the maximum
receive buffer in the format of protocol,sndbuf=n, where n is the number of users.
wait/nowait Wait indicates that the server is single threaded and the application will issue an accept() API call itself
and process connections one at a time. Nowait indicates that the application is multi-threaded. In nowait
mode, INETD issues the accept() API call and passes a connected socket to the application. The
application in nowait mode can process multiple connections at a time.
You can also optionally specify the maximum number of simultaneous users who are allowed by the
application by using the format nowait.n or wait.n, where n is the number of users.
application The full path to the executable file that the application INETD should start.
266 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
6.2.1 Description of the INETD setup
This section describes a INETD implementation that uses the more common configuration
options. It shows a configuration file that starts all servers and internal services. This design
allows the INETD configuration to be easily changed when INETD is running. Simply
comment out a line in the configuration file and send a SIGHUP signal to the INETD task to
stop a service.
Starting unnecessary server applications that will not be used is never a good approach. A
better approach is to carefully consider your INETD configuration file and allow only services
that will be used to be started. For example, if you do not need the internal services that are
provided by INETD, comment out the associated lines for the internal services in the
configuration file.
Important: Remember that the job name of INETD changes after INETD is started.
268 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
7 UDP INETD1
9 TCP INETD1
9 UDP INETD1
13 TCP INETD1
13 UDP INETD1
19 TCP INETD1
19 UDP INETD1
23 TCP INETD1 BIND 10.1.9.21
37 TCP INETD1
37 UDP INETD1
110 TCP INETD1
512 TCP INETD1 BIND 10.1.9.22
513 TCP INETD1
514 TCP INETD1 BIND 10.1.9.22
Note: See Chapter 8, “z/OS UNIX Telnet server” on page 323, for details about why port
23 might be bound to a specific IP address.
The example started the INETD daemon by using a shell script in /etc/rc, which causes
INETD to be started automatically when z/OS UNIX is started.
The best method to verify that INETD is running correctly is to issue a netstat command to
see the listener connections for INETD.
The activation and verification techniques for INETD and its listener processes are as follows:
1. Start INETD.
2. Verify INETD initial startup.
3. Verify the echo service.
4. Verify the discard service.
5. Verify the daytime service.
6. Verify the chargen service.
7. Verify the time service.
Start INETD
A sample shell script is shown in Example 6-4.
Note: You can use the _CEE_ENVFILE environment variable in the PARM field of the JCL to
point to a file that contains other environment variables. The file can be a UNIX file, a zFS,
or a z/OS MVS data set. When it is an MVS data set, the data set must be allocated with
RECFM=V.
RECFM=F must not be used, because it allows padding of the record with blanks after the
environment variable value. When the variable represents a file name, the padded value
could cause a file-not-found condition because the padded blanks are considered part of
the name of the file in z/OS UNIX. If the standard environment file is in MVS and is not
allocated with RECFM=V, the results can be unpredictable.
270 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Local Socket: 0.0.0.0..110
Foreign Socket: 0.0.0.0..0
INETD1 0000004B Listen
Local Socket: 10.1.9.22..514
Foreign Socket: 0.0.0.0..0
INETD1 0000004A Listen
Local Socket: 0.0.0.0..513
Foreign Socket: 0.0.0.0..0
INETD1 00000042 UDP
Local Socket: 0.0.0.0..9
Foreign Socket: *..*
INETD1 00000041 UDP
Local Socket: 0.0.0.0..19
Foreign Socket: *..*
INETD1 00000043 UDP
Local Socket: 0.0.0.0..7
Foreign Socket: *..*
INETD1 00000040 UDP
Local Socket: 0.0.0.0..13
Foreign Socket: *..*
INETD1 0000003F UDP
Local Socket: 0.0.0.0..37
Foreign Socket: *..*
Note that 15 entries are associated with job name INETD1, which match the 15 services that
were defined in the INETD configuration file. The netstat output verifies only that INETD is
started and that it has listeners for each application. However, the netstat command does
not verify that each of the servers is working.
Now, verify that the internal services of INETD are working correctly by using the DOS Telnet
client included in Microsoft Windows to Telnet to each port and return the output. For more
information about the remote execution servers (orexecd and orshd), see Chapter 9, “Remote
execution” on page 335. For more information about otelnetd, see Chapter 6, “INETD” on
page 263.
272 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Verify the time service
The time service can be verified by using a Telnet client to Telnet to port 37 tcp. The time
service sends an unreadable binary string that represents the time and date. This action
produces the output shown in Figure 6-6.
Note: The -d option prevents INETD from forking at startup. Therefore, the job name does
not change. Because INETD will not fork in debugging mode, the behavior of INETD might
also change. Additionally, the -d option results in numerous messages sent to the
STDERR data stream.
See Chapter 9, “Remote execution” on page 335 and Chapter 8, “z/OS UNIX Telnet server”
on page 323 for information regarding remote execution or otelnetd.
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC31-8775.
In addition, z/OS Communications Server provides facilities for the transmission of data that
cannot be represented as 7-bit ASCII text.
Section Topic
z/OS SMTP as a mail server Commonly implemented mail server design for z/OS
SMTP with configuration examples and verifications
procedures.
Using sendmail and popper as mail The sendmail and popper configuration examples and
servers verification procedures.
Using sendmail as a client The sendmail client setup configuration examples and
verification procedures.
Problem determination for the mail Problem determination tools and commands for z/OS
facilities mail services.
Additional information sources for mail References to additional documentation for z/OS mail
servers services.
LPD client, NDB, NICS, RPC, Kerberos, Bind 9 (DNS server), TN3270 server, FTP server, FTP
LPD server, MISC server, NCPRoute, client, Telnet server, X-Windows client, SNMP Agent,
SMTP server, Portmapper, NPF, SNMP query, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail, CSSMTP
This section provides an overview of z/OS mail services and includes the following topics:
z/OS mail services
How z/OS mail services work
How z/OS mail services are applied
276 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Statement of Direction: z/OS V2R2 is the last release to include the Simple Mail
Transport Protocol network job entry (SMTPD NJE) Mail Gateway and Sendmail mail
transports functions. Consider migrating your existing applications (SMTPD, z/OS UNIX
sendmail) to CSSMTP or to an off-platform mail server solution. For more information, see
7.6, “Migrating to CSSMTP” on page 314.
The various standards that define the protocols for sending electronic mail are numerous. The
Request for Comments (RFC) numbers that represent these standards and their terminology
might be confusing. This section provides an overview of the main RFC numbers and their
descriptions in the next section.
RFC 821 defines a client and server protocol. As usual, the client SMTP initiates the session
(that is, sends SMTP), and the server responds (that is, receives SMTP) to the session
request. Because the client SMTP frequently acts as a server for a user mailing program, it is
often simpler to refer to the client as the sender SMTP and to the server as the receiver SMTP.
Users Users
S S
Users M M Users
T T
P P
SMTP
Spool S S Spool
e Protocol e
r r
v v
Users e e Users
r r
Users Users
Client
Server
Relationship
The list of mail RFC standards is much longer, but is out of scope for this book. For complete
details about the standards and how they relate to each other, see TCP/IP Tutorial and
Technical Overview, GG24-3376.
278 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Figure 7-3 shows how the CSSMTP forwards mail messages from the JES spool data set.
Final Destination
z/OS
JES Node 2
JES JES Node1
network
Target Server
JES Node 3 Destination 1
CSSMTP
1. Read 2. Process
Internet
3. Forward
Target Server
(Not Required) Destination 2
Figure 7-3 CSSMTP forwarding mail messages from a JES spool data set
[email protected]
Mail
Undeliverable messages
TSO
RECEIVE
MUA
SMTPD
SMTP
(MTA)
SMTP or
JES Spool
ESMTP MTA
SMTP or
ESMTP
SMTP or
ESMTP
JES Spool
280 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: If you do not set up the time zone, the time zone is not shown in the Received
header line, which is used to indicate that CSSMTP picked up a mail message. The
default time value is used if the DATE header is not specified in the mail message.
3. Define explicit authority for all user IDs that you want to be able to start CSSMTP. Ensure
that the OPERCMDS class is active and RACLISTed and that RACLIST processing is
enabled. Complete these steps:
a. Define the OPERCMDS class profile by using a security product such as RACF.
b. Grant CSSMTP access to the OPERCMDS class, and then refresh the OPERCMDS
class.
4. Optionally, define authority for the submission of spool files to CSSMTP by individual
users through one or more resource profiles in the SERVAUTH class. The format of the
SERVAUTH profile is as follows:
EZB.CSSMTP.sysname.writername.originJESnode
– sysname is the system name that is defined in the sysplex.
– writername is the CSSMTP configured external writer.
– originJESnode is the JES node that originated the spool file.
If the profile is created with UACC(NONE), then only user IDs permitted to the resource
are able to have spool files processed by CSSMTP.
For examples of the resource profile definitions, see the EZARACF sample in data set
SEZAINST. For information about configuring the external writer name using the
ExtWrtName statement, see z/OS Communications Server: IP Configuration Reference,
at:
http://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.halz00
1/toc.htm
5. Customize the CSSMTP configuration file as shown in Example 7-2 on page 282. Set up
at least one valid target server IP address using the TargetServer statement. A target
server is defined as the IP address that is resolved from or configured on the
TargetServer statement. To enable extended retries, code the ExtendedRetry statement.
For information about using the CSSMTP configuration statements, see z/OS
Communications Server: IP Configuration Reference, SC27-3651.
CSSMTP configuration statements are processed during the initialization of CSSMTP or
when you issue the MODIFY procname,REFRESH command.
6. Start CSSMTP by issuing the following command, where csproc is the CSSMTP
procedure member name:
START CSSMPT
EZD1802I csproc INITIALIZATION COMPLETE FOR extWrtName
EZD1821I csproc ABLE TO USE TARGET SERVER ipAddress
282 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
7.2.3 Verification of the z/OS CSSMTP client
After finishing the steps described in the previous section, check the z/OS console log
messages to verify that the CSSMTP client was initialized without error. If the client initialized
properly, you see the following messages:
11.08.28 JOB04135 EZD1801I CSSMTP STARTING
11.08.28 JOB04135 EZD1840I CSSMTP UPDATED CONFIGURATION
11.08.28 JOB04135 EZD1846I CSSMTP UPDATED TARGET SERVERS
11.08.29 JOB04135 EZD1802I CSSMTP INITIALIZATION COMPLETE FOR CSSMTP
For more details about the CSSMTP client, see z/OS Communications Server: IP
Configuration Guide, SC27-3650.
This section provides an overview of the z/OS SMTP mail server and includes the following
topics:
Description of z/OS SMTP server
Configuration tasks for the z/OS SMTP server
Verification of the z/OS SMTP server
Automation packages can take advantage of the SMTP functions to send alert messages to
systems personnel and application administrators when batch jobs fail or critical situations
arise that could adversely affect the integrity of the system environment.
A mainframe JES/NJE system that does not have a TCP/IP-capable SMTP client or server
running on it can still participate in sending and receiving mail by using an SMTP gateway
server on another system image.
If one system within a sysplex of mainframes has an SMTP server running, all sysplex
members that share the sysplex’s JES spool can participate in the electronic mail delivery
functions.
Relay JES
NJE NJE
JES JES JES
Introduced in 7.1.3, “How z/OS mail services are applied” on page 278, the following three
scenarios are for mail services that use the z/OS SMTP server:
IP network
SMTP (that is, STD 11/RFC 821) is based on end-to-end delivery. An SMTP client
contacts the destination host’s SMTP server directly to deliver the mail. It keeps the mail
item being transmitted until it has been successfully copied to the recipient's SMTP. This
method is different from the store-and-forward principle that is common in many mailing
systems. In these systems, the mail item might pass through a number of intermediate
hosts in the same network on its way to the destination. Successful transmission from the
sender only indicates that the mail item has reached the first intermediate hop.
NJE network
This setup enables NJE users to send and receive mail to and from users on TCP
networks. In various implementations, you can exchange mail between the TCP/IP SMTP
mailing system and the local JES NJE spools. This SMTP server function is a mail
gateway or mail bridge. Sending mail through a mail gateway can alter the end-to-end
delivery specification because SMTP only guarantees delivery to the mail-gateway host,
not to the real destination host, which is located beyond the Internet Protocol network.
When a mail gateway is used, the SMTP end-to-end transmission is host-to-gateway,
gateway-to-host, or gateway-to-gateway. The behavior beyond the gateway is not defined
by SMTP.
284 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Relay server usage
When a client originates outbound mail destined for an unknown domain (unknown to the
system where the SMTP server is running), the SMTP server can optionally forward the
mail to a relay server that will be able to use special SMTP DNS lookup records to
determine how and where to forward the otherwise undeliverable mail. In addition, the
SMTP server can be configured to forward all out of domain outbound mail to a relay
server.
The TSO interactive interface of SMTP is command line prompt driven, and you must know
the format of the subcommands and specific syntax to be followed for the data content.
The batch interface assumes that a data set has been created that contains SMTP mail
commands, and has been submitted to the JES spool where SMTP reads the commands and
processes them without interactive input or control from the originating user.
After mail is delivered to a relay server, that mail is considered delivered by the SMTP server
that forwarded the mail. It then becomes the responsibility of the relay server. If the relay
server cannot be contacted, then the SMTP server must have a method and a procedure for
storing and managing undeliverable mail. The sender must be notified, and attempts to retry
delivery must be made until successful delivery is achieved, or until retry attempts are
exhausted.
The procedure name must be added to the RACF STARTED class and have a user ID
associated with it as follows:
RDEFINE STARTED SMTP*.* STDATA(USER(SMTP))
SETROPTS RACLIST(STARTED) REFRESH
Coding the started task name using the wildcard format enables you to run multiple SMTP
started tasks without needing to define each one separately. Their names would all be spelled
SMTPx, where x is the qualifier. They can all be assigned to the same user ID.
Use a new or existing superuser ID to associate with the job name by adding a user ID to
RACF and altering it (or an existing ID) to superuser status as follows:
ADDUSER SMTP
ALTUSER SMTP OMVS(UID(0) PROGRAM (’/bin/sh’) HOME(’/’))
In this example, the user ID name is SMTP, but any name can be used. These two RACF
commands can be combined into one command by putting the OMVS parameter on the
ADDUSER command line. The add and alter commands are shown separately in case the
user ID already exists. If the add fails, the alter still succeeds.
286 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If setting up a superuser ID is not what you want, you can permit the user ID to the
BPX.SUPERUSER class by completing the following steps:
1. Add the user to RACF:
ADDUSER SMTP
2. Permit the user ID:
a. Create a BPX.SUPERUSER FACILITY class profile, if it does not exist:
RDEFINE FACILITY BPX.SUPERUSER
b. If this is the first class profile, activate the FACILITY class:
SETROPTS CLASSACT(FACILITY)
SETROPTS RACLIST(FACILITY)
c. Permit the user to the class:
ALTUSER SMTP OMVS(UID(25) PROGRAM (’/bin/sh’) HOME(’/’))
PERMIT BPX.SUPERUSER CLASS(FACILITY) ID(SMTP) ACCESS(READ)
In this example, the user ID is SMTP and the UID is 25. The UID can be any nonzero
number. UID 25 was used to match the well-known SMTP port number.
d. Refresh the FACILITY class:
SETROPTS RACLIST(FACILITY) REFRESH
Example 7-3 shows the SMTP server procedure used during testing.
Note: Defining a RACF valid user ID to the BadSpoolField parameter is required for SMTP
customization. However, with the redesign of SMTP, using the SMTP start procedure
owner’s user ID produces the following message:
EZA5165E Invalid BadSpoolFileId Userid: SMTP
Previously, when SMTP detected a bad spool file, it put the bad spool file back on the JES
spool with a destination of the user ID defined in BadSpoolField. If this user ID was itself, it
caused a mail loop. (SMTP took the file back off the queue because it was sent to itself,
and kept reprocessing it.) To prevent this error, the SMTP now includes a test to see
whether BadSpoolField is itself. If it is, it issues the EZA5165E message. So now
BadSpoolField can be any valid user ID except the owner of the start procedure.
288 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
CS01
ENDSMSGAUTHLIST
;***********************************************************************
; CONFIGURATION FOR A TYPICAL NJE TO TCP/IP MAIL GATEWAY.
;***********************************************************************
GATEWAY ; ACCEPT MAIL FROM AND DELIVER MAIL TO NJE HOSTS
NJEDOMAIN SCNJENET ; ANY TWO NAMES WE WANT. OTHERS MUST USE THESE
ALTNJEDOMAIN SCNJENET ; USER02%[email protected]
NJEFORMAT PUNCH ; NJE RECIPIENTS RECEIVE MAIL IN PUNCH FORMAT
NJECLASS A ; SPOOL CLASS FOR MAIL DELIVERED BY SMTP TO THE
LOCALFORMAT NETDATA ; LOCAL RECIPIENTS GET MAIL IN NETDATA FORMAT
; ; NETDATA ALLOWS TSO RECEIVE TO BE USED WITH MAIL
LOCALCLASS A ; SPOOL CLASS FOR LOCAL MAIL DELIVERED BY SMTP
REWRITE822HEADER YES NOPRINT
;***********************************************************************
; The RESTRICT statement specifies addresses of users who cannot
; utilize SMTP services.
;***********************************************************************
RESTRICT RETURN ; Return mail from restricted users
[email protected] ; DON'T ACCEPT ANY MAIL FROM PRINCE CHARMING
cs09@SCNJENET ; VIA NJE OR TCP NETWORK.
cs09@* ;THIS LINE TAKES THE PLACE OF PREVIOUS 2 LINES
*@badsite ;DON'T ACCEPT MAIL FROM ANYONE AT HOST CASTLE
ENDRESTRICT
;***********************************************************************
; SEND ALL NON-LOCAL MAIL TO AN MTA RELAY SERVER
;***********************************************************************
IPMAILERADDRESS 10.12.4.221
RESOLVERUSAGE YES
Users can also use IEBGENER in batch to generate a file that contains all the SMTP
commands necessary to send a note through SMTP to the IP or NJE network.
Whether the SMTPNOTE CLIST, the batch method, or both will be used, values for the
following items must be established and then assigned:
DDNAME This is the temporary data set used to build the SMTP commands for the
note. SMTPNOTE refers to this data set as the INPUT data set. After the
commands are built and the user indicates that the note is ready for
delivery, SMTPNOTE transmits the contents of this file (which are SMTP
commands) to the JES spool destined for the SMTP server.
TEMPDSN This is the name of the data set allocated for the DDNAME above. Make
certain the data set name ends with the low-level qualifier of .TEXT, and do
not fully qualify the name. By not fully qualifying the name, the clist prefixes
the name with the user’s TSO user ID.
HOSTNAME This is usually the NJE node name of the system on which the SMTPNOTE
clist runs.
For more information about the use of the SMTPNOTE clist, see z/OS Communications
Server: IP User’s Guide and Commands, SC31-8780.
This specification is recommended because it eliminates the need to specify static values for
node name and smfid. For more information about the TRANSREC statement, see z/OS
MVS Initialization and Tuning Reference, SA22-7592.
290 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Determine whether NJE Gateway support is necessary: (NJE)
If you transmit messages to the JESSPOOL destined for the SMTP server using TSO XMIT
or IEBGENER, then you need to implement the SMTP server as a local NJE gateway. See
Figure 7-6 for a list of the NJE Gateway related statements.
NJE S SMTP
N SMTP Server M
J as an T
E NJE Gateway
NJE P SMTP
Config Statements:
GATEWAY
NJE Network IP Network
NJEDOMAIN name
ALTNJEDOMAIN altname
NJEFORMAT format type
NJE NJECLASS x SMTP
LOCALFORMAT format type
LOCALCLASS x
REWRITE822HEADER options
NJE SMTP
RESTRICT or SECURE
If you intend to use the SMTP server as a gateway to the NJE network, be sure to consider
the following tasks:
Customize the SMTP mail headers, if necessary: NJE.
Usually, the default header rules that are supplied by IBM are sufficient for most NJE
traffic. However, if you have a special condition that is not covered by the default rules, see
the comprehensive discussion of customizing mail headers in z/OS Communications
Server: IP Configuration Guide, SC27-3650.
Set up the TCP-to-NJE gateway function: NJE.
Assign values for and plan to use each of the following statements in the SMTP
configuration data set:
– GATEWAY indicates that this SMTP server is an NJE gateway.
– NJENODENAME is the node name of the local JES NJE system.
– NJEDOMAIN sets the domain name of the NJE network to what you want it to be.
– ALTNJEDOMAIN is an alternate domain name of the NJE network (synonym).
– NJECLASS is the JES spool data set class for mail delivered on the NJE network.
– NJEFORMAT is the JES spool data set format to be used.
Plan to use the NJENODENAME statement within the SMTP configuration file.
Do not plan to depend on the setting of the VMCF node name value either in
SYS1.PARMLIB(IEFSSNxx) or set by the SYS1.PROCLIB(EZAZSSI) procedure. These
values for node name or system name could be and usually are different from the NJE
node name. SMTP requires you to know the actual NJE node name value. Do it the easier
way by specifying it with the NJENODENAME statement.
Create the required NJE host table data set named hlq.SMTPNJE.HOSTINFO.
SMTP cannot accept mail that is destined to a node name that JES does not have defined.
The SMTP gateway server requires this data set to determine which NJE nodes are
defined to JES and are thus permitted to participate in mail transfers. To build this data set,
run the following TSO command and point it to the JES initialization data set member that
contains the JES node definitions:
TSO SMTPNJE 'SYS1.PARMLIB(JES2PARM)'
The command scans the member for node definitions in the HASPPARM DD statement of
JES2 start procedure. It then builds the required file in userid.SMPTNJE.HOSTINFO. You can
change the name to your consistent HLQ.
For JES3, add the parameter at the end of the command to point to JES3, as the following
line shows:
TSO SMTPNJE data.set.pds.name(member) (JES3
The default is JES2.
Add the required //SMTPNJE DD statement to the SMTP server procedure JCL, pointing it
to the HOSTINFO data set that you just created:
//SMTPNJE DD DSN=hlq.SMTPNJE.HOSTINFO,DISP=SHR
Determine whether you want to define a SECURE NJE Gateway.
A SECURE statement can be added to the SMTP server configuration data set to define
the server as a secure gateway between the Internet Protocol network and the NJE
network. When the server is operating in secure mode, only those NJE addresses in the
SMTP security table are allowed to use the mail services of this server. The SMTP server
rejects mail to or from an unauthorized user. An unauthorized user is one whose user ID is
not in the table. This table is coded as records in the required data set:
mailfiledsprefix.SMTP.SECTABLE with LRECL=255 and RECFM=VB
In addition, it is pointed to by adding the required DD statement to the SMTP server proc:
//SECTABLE DD DSN=mailfiledsprefix.SMTP.SECTABLE,DISP=SHR.
The mailfiledsprefix hlq is also defined within the SMTP configuration data set.
You must create a second required data set. It is used when NJE mail is rejected. Its
contents are used as a memo note that is sent to the unauthorized user whose mail is
rejected. The name of this data set is as follows:
mailfiledsprefix.SECURITY.MEMO with LRECL=255 and RECFM=VB
It is allocated dynamically by the SMTP server when needed. You do not add a DD
statement to the SMTP server procedure JCL.
For examples and details about the format and syntax of the records for both data sets,
see z/OS Communications Server: IP Configuration Guide, SC27-3650.
292 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Determine whether you want to define a RESTRICT NJE Gateway.
A RESTRICT statement can be added to the SMTP server configuration data set to
indicate those user IDs who are not allowed to use the mail services of this server. You
code a list of user IDs within the RESTRICT list statement. For details about the syntax of
the RESTRICT statement, see z/OS Communications Server: IP Configuration Reference,
SC27-3651.
Note: RESTRICT and SECURE are both optional settings. However, they are mutually
exclusive.
NJENODENAME WTSCPLX5
...
SMSGAUTHLIST
SMTP
CS07
CS01
ENDSMSGAUTHLIST
...
;***********************************************************************
; CONFIGURATION FOR A TYPICAL NJE TO TCP/IP MAIL GATEWAY.
;***********************************************************************
GATEWAY ; ACCEPT MAIL FROM AND DELIVER MAIL TO NJE HOSTS
NJEDOMAIN SCNJENET ; ANY TWO NAMES WE WANT. OTHERS MUST USE THESE
ALTNJEDOMAIN SCNJENET ; USER02%[email protected]
NJEFORMAT PUNCH ; NJE RECIPIENTS RECEIVE MAIL IN PUNCH FORMAT
NJECLASS A ; SPOOL CLASS FOR MAIL DELIVERED BY SMTP TO THE
LOCALFORMAT NETDATA ; LOCAL RECIPIENTS GET MAIL IN NETDATA FORMAT
; ; NETDATA ALLOWS TSO RECEIVE TO BE USED WITH MAIL
LOCALCLASS A ; SPOOL CLASS FOR LOCAL MAIL DELIVERED BY SMTP
REWRITE822HEADER YES NOPRINT
Figure 7-7 SMTP server configuration data set: NJE parameters
;***********************************************************************
; Use the SECURE statement if this SMTP machine is to run as an SMTP-
; to-NJE Secure Gateway. Only users in the SMTP.SECTABLE data set
; will be allowed to send mail, all other mail will be returned or
; rejected. Note that the contents of dataset
; mailfiledsprefix.SECURITY.MEMO will be sent to NJE users that are
; not authorized to use the gateway.
;***********************************************************************
; SECURE
;***********************************************************************
; The RESTRICT statement specifies addresses of users who cannot
; utilize SMTP services.
;***********************************************************************
RESTRICT RETURN ; Return mail from restricted users
[email protected] ; DON'T ACCEPT ANY MAIL FROM PRINCE CHARMING
cs09@SCNJENET ; VIA NJE OR TCP NETWORK.
cs09@* ;THIS LINE TAKES THE PLACE OF PREVIOUS 2 LINES
*@badsite ;DON'T ACCEPT MAIL FROM ANYONE AT HOST CASTLE
ENDRESTRICT
Figure 7-8 SMTP server configuration data set: secure and restrict parameters
If name resolution is not wanted, you must code RESOLVERUSAGE NO. For a complete
discussion about how DNS services are used by the SMTP server and how it processes DNS
MX type records, see z/OS Communications Server: IP Configuration Guide, SC27-3650.
A special situation exists where you might want to send all non-local mail to a relay server,
and not just unresolved non-local mail. For information about how to direct all non-local mail to
a relay server, see the topic on sending non-local messages to other mail servers in z/OS
Communications Server: IP Configuration Guide, SC27-3650.
294 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Figure 7-9 shows relay server related parameters.
;***********************************************************************
; SEND ALL NON-LOCAL MAIL TO AN MTA RELAY SERVER
;***********************************************************************
IPMAILERADDRESS 10.12.4.221
RESOLVERUSAGE YES
Figure 7-9 SMTP server configuration data set: Relay server parameters
Create an SMTP user exit to define and filter spam mail, if necessary
A sample user exit is available in hlq.SEZAINST(SMTPEXIT). For details about implementing
and managing the exit, see z/OS Communications Server: IP Configuration Guide,
SC27-3650.
Note: The TSO SMSG command works when issued from TSO only and should not be
issued from the operator console. SMSG SMTP is not supported in batch. It uses VMCF
and the PASCAL interface to queue information and will not print the information to a DD
card. Issue the MVS MODIFY (F) command from the MVS console or an application
console interface such as that provided within SDSF or Tivoli NetView for z/OS.
An automation tool could issue a MODIFY command and then notify an administrator when a
large amount of mail is queued for SMTP, based on the output of the command when using
the NUMQueue parameter.
You can also add the TRACE RESOLVER statement when configuring the TCPIP.DATA data
set. This statement traces name resolution for all the applications using the name server. To
prevent the console log from becoming too large, only use the TRACE RESOLVER statement
for debugging.
TIMEZONE parameter
To verify that the value of SYSTZ set to the TIMEZONE parameter in an SMTP server
configuration works correctly, submit a batch SMTP. Example 7-5 shows messages in a spool
file created after submitting a batch job. You can see -0400 (1) instead of the printable zone
name such as EST. The 0400 represents HH:MM.
You can establish sendmail and popper as mail servers. The following topics are in this
section:
Description of sendmail and popper
Configuration tasks for sendmail and popper
Verification of sendmail and popper setup
The sendmail and popper applications are full-featured industry standard mail applications.
The sendmail application is also capable of acting as a client that can be used to send email.
The sendmail application supports MIME attachments and also has built-in security features
such as TLS/SSL sockets.
Note: Because of the complexity of sendmail, become familiar with the industry-accepted
publication about sendmail: sendmail, 4th Edition by Costales, Assmann, Jansen, Shapiro,
from O'Reilly Media, Inc.®
296 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Dependencies for sendmail and popper
Sendmail needs information that, for example, defines the local mailer program, defines
which file system is responsible for deferred delivery, and defines which file contains
information about alias names and real names. The only required file is the sendmail
configuration file (usually /etc/sendmail.cf). However, that file can list other directories and
files that must be created before sendmail can start. To start sendmail using the example
configuration file, you must create a configuration file, a mail queue directory, the /etc/mail
directory, and a local-host-names file.
Note: The sendmail program is hardcoded to use ISO8859-1 and IBM-1047 encoding. It
does not use DBCS character sets at all. If you want to use DBCS character sets, use
MIME.
M4 preprocessor
The m4 macro processor is a front-end processor for many programming languages. Besides
replacing one string of text with another, the m4 macro processor provides the following
features:
Arithmetic capabilities
File manipulation
Conditional macro expansion
String and substring functions
The m4 macro preprocessor can be given input that generates a z/OS UNIX sendmail
configuration file. It takes as input a user-defined master configuration source file (.mc file)
that defines mail delivery mechanisms using files provided in the samples directory. When
you run the m4 preprocessor, you need files that contain input definitions and an output file
that will be your sendmail configuration file. The input files are as follows:
/m4/cf.m4
Provides support for different include files such as cfhead.m4 and proto.m4.
You can use the cf.m4 and sample.mc files to create your own sendmail.cf output file or you
can use the pre-generated sample configuration file. In the example environment, we first
used the sample configuration file to get sendmail started, and then later used m4 to generate
a new configuration file.
Alias file
The alias file is used to convert an alias name to another recipient's name. Many names could
potentially be listed in an alias file. To efficiently deal with a large alias file, sendmail uses an
alias database file that is created from an alias file. The database version of the alias file
significantly improves lookup speed. A database file is created from the alias file with either of
the following commands:
/usr/sbin/newaliases
/usr/sbin/sendmail -bi
Statistical information is collected if option (O) is defined in the sendmail.cf file. Sendmail
does not create the statistics file; you must manually create the file first, before using the
statistics option. You can view the statistics file by using either of the following commands:
mailstats -C </etc/sendmail.cf>
mailstats -s </etc/sendmail.st>
298 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If you have the permission to look at the queue directory, you might find it empty, which
implies that all messages have been sent. Alternatively, you might find some dfxxxxxxxx and
qfxxxxxxxx files, which are messages that are waiting to be sent. When a message is
queued, it is split into two parts. Each part is saved in a separate file. Header information is
contained in qf files. The actual body of the message in included in the df files. You can use
the obrowse command to read these files. Superuser permission is normally needed.
The sendmail program offers two methods for processing the queue:
Process the queue periodically with the -q and -h command-line switches.
Process the queue once with only the -q command-line switch and then exit.
There are many more definitions in the sendmail.cf file, so this file can be complex. If you
browse through the configuration file (in /usr/lpp/tcpip/samples/sendmail/cf/sample.cf),
you will find a complex example. To more easily start sendmail, copy the
/usr/lpp/tcpip/samples/sendmail/cf/sample.cf file to the /etc/sendmail.cf file. The
sample sendmail file was used in the tests.
The sample.cf file that was used was created automatically by running the m4 macro
preprocessor with the master input file in /usr/lpp/tcpip/samples/sendmail/cf/sample.mc.
If you browse through this sample.mc file, you notice that the most common information is
already defined. This configuration provides a base to start with if you later want to add to the
sample sendmail.cf file.
Popper
The only configuration that is required for popper is to update /etc/services and
/etc/inetd.conf. Using popper is described in 7.4.3, “Verification of sendmail and popper
setup” on page 305.
Important: The following tasks must be performed by the superuser ID, UID=0. If you use
another user ID, then sendmail can issue the following messages:
EZZ9927I Permission denied (real uid not trusted).
or
dbm map "Alias0": unsafe map file /etc/mail/aliases: EDC5111I Permission
denied.
WARNING: cannot open alias database /etc/mail/aliases
If your ID is not a superuser ID and you forget to issue an su command before you create
the /etc/mail directory, you can issue the command chown 0:0 /etc/mail to change the
ownership of the /etc/mail directory and bypass these errors.
300 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Create the /etc/mail directory
From the z/OS UNIX System Services shell, issue the following command:
mkdir /etc/mail
Both the /etc directory and the /etc/mail subdirectory should have file permissions of 755.
If they need to be changed, issue these commands:
chmod 755 /etc
chmod 755 /etc/mail
To make testing sendmail easier, you can specify the IP version you want to use:
Both with IPv4 and IPv6 support
If your environment is already customized to support AF_INET6 in BPXPRMxx parmlib
and the affinitive TCP/IP stack is also customized for IPv6, then you can simply copy the
sample.cf and use this copy. From the z/OS UNIX System Services shell, issue the
following command:
cp /usr/lpp/tcpip/samples/sendmail/cf/sample.cf /etc/mail/sendmail.cf
Only with IPv4 support
If your environment is not customized to support AF_INET6, or the TCP/IP stack is not
customized for IPv6, use the following steps to create your own sendmail.cf file:
1. Retrieve the m4 preprocessor.
Retrieve the m4 macro preprocessor from the z/OS Ported Tools web page at:
http://www.ibm.com/systems/z/os/zos/features/unix/bpxa1ty1.html
Download it and FTP to the z/OS UNIX file system with binary, then place it in
/tmp/m4.bin.pax.Z. Issue the following command to unpax the m4 macro preprocessor:
pax -rzf /tmp/m4.bin.pax.Z
Then the m4 preprocessor is created in /tmp/bin/m4 with its information file in
/tmp/info/m4.info.
2. Create the .mc file.
Copy the example .mc file from /usr/lpp/tcpip/samples/sendmail/sample.mc using the
following command:
cp /usr/lpp/tcpip/samples/sendmail/cf/sample.mc /etc/mail/sendmail.mc
Comment out the IPv6 statement from the /etc/mail/sendmail.mc file using the
oedit /etc/mail/sendmail.mc command, as shown in Example 7-6.
From the z/OS UNIX System Services shell, issue the following command:
touch /etc/mail/local-host-names
302 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Create the aliases database
The alias file maps names in email addresses to local user accounts. You must list in the alias
file all local users who are to receive email. The example alias file is shown in Example 7-7.
You can create the file with the oedit /etc/mail/aliases command, and then change the file
permissions with chmod 600 /etc/mail/aliases. Finally, run the /usr/sbin/sendmail -bi -f
/etc/mail/sendmail.cf command to create a binary database. The message in Example 7-8
is issued when you successfully create the aliases database.
Important: You cannot set the group write or other write bits on in the mode field of the
aliases file. Otherwise, message EZZ9993I is issued with the 265 053B006C error code for
the Group writable file.
Update /etc/services
The /etc/services should contain the lines that are shown in Example 7-10. If you already
started INETD as described in Chapter 6, “INETD” on page 263, then you have already
completed this step.
Update PROFILE.TCPIP
You need to reserve TCP port 25 for sendmail. The easiest way to accomplish this is to
reserve port 25 TCP to omvs. Because popper uses port 110 TCP, and is started by INETD,
reserve port 110 to INETD1. Example 7-11 shows the PROFILE.TCPIP statements.
Use the STDENV DD statement in the start procedure to point to a data set that specifies the
environment variables for sendmail, as Example 7-13 shows.
Define the RACF profile SENDMAIL.* in the STARTED class with a superuser ID as an owner
in its STDATA:
ADDGROUP SNDMGRP OMVS(GID(26))
ADDUSER SENDMAIL DFLTGRP(SNDMGRP) NOPASSWORD OMVS(UID(0) HOME(‘/’))
RDEFINE STARTED SENDMAIL.* STDATA(USER(SENDMAIL))
SETROPTS RACLIST(STARTED) REFRESH
PERMIT BPX.DAEMON CLASS(FACILITY) ID(SENDMAIL) ACCESS(READ)
SETROPTS RACLIST(FACILITY) REFRESH
Start inetd
If you have already started INETD as described in Chapter 6, “INETD” on page 263, then you
have already completed this step. Otherwise, issue the system command s inetd or the
following shell commands from the z/OS UNIX System:
export _BPX_JOBNAME=INETD
export _BPXK_SETIBMOPT_TRANSPORT=TCPIP
/usr/sbin/inetd &
Note: If you already have an INETD running and it does not have the popper customized,
then after you add pop3 statements into its configuration files, you need to recycle the
INETD. To stop the INETD, issue the following command in the z/OS UNIX System
Services shell:
kill -TERM `cat /etc/inetd.pid`
304 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Start sendmail
To start sendmail, issue the s sendmail system command. The BPXBATCH utility passes the
shell command in the PARM= field to OMVS with its environment variables in the STDENV
DD statement.
You can also issue the following command in the z/OS UNIX System Services shell:
export _BPX_JOBNAME=SENDMAIL
export _BPXK_SETIBMOPT_TRANSPORT=TCPIP
/usr/sbin/sendmail -bd -q5m -C /etc/mail/sendmail.cf &
This method of starting sendmail leaves a running process that handles mail and processes
any queued mail once every hour.
To stop the sendmail, issue the following command in the z/OS UNIX System Services shell:
kill -TERM `cat /etc/mail/sendmail.pid`
Next, as shown in Example 7-15, you can use netstat to determine whether sendmail has
put a listener on port 25 TCP.
Finally, use the freely available email client Mozilla Thunderbird as an MUA to check the
email.
While installing Thunderbird on a personal computer, you are prompted to set up an email
account.
The following figures show the account settings that are necessary to allow Thunderbird to
access sendmail and popper running on the z/OS system. The first window of the
configuration wizard in Mozilla Thunderbird asks what type of account is being set up.
Figure 7-10 on page 306 shows setting up an email account.
The second window in the account wizard asks for the name and email address, as shown in
Figure 7-11.
306 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The third window in the account wizard asks for the type of incoming server, that server’s host
name, and the outgoing server host name. Popper is the application responsible for
transferring incoming mail and it uses the POP3 protocol, so select a server type of POP. The
incoming and outgoing servers are the same in the example because we are running popper
and sendmail on the same LPAR. The settings for the third panel are shown in Figure 7-12.
The fourth window in the account wizard asks for the user ID to present to the incoming and
outgoing servers. Again, because the same LPAR is used for both popper and sendmail,
there is only one user ID. The user ID of cs02 is shown in Figure 7-13.
The final window in the account wizard asks for you to confirm the settings that you entered in
the previous panels. The confirmation window is shown in Figure 7-15.
308 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Now that Mozilla Thunderbird is configured to communicate with your system running
sendmail, send a test message to yourself to test the environment. Figure 7-16 shows the
message that was sent in the test environment.
After a brief wait (approximately 10 seconds), Thunderbird confirmed that the email message
had been sent. This shows that sendmail is working properly and queuing up messages for
delivery. To confirm that the message was delivered properly and to test popper’s ability to
transfer the message to the Mozilla Thunderbird mail user agent, check for new mail.
After a brief wait, click Get Mail in Thunderbird. You will received a message like that shown
in Figure 7-17.
Both sendmail and popper are now running and able to deliver mail locally.
Sendmail can be complex. Sendmail is incapable of interfacing with JES. If you want to
submit batch job email, use the SMTP batch client rather than the sendmail client. See
Figure 7-5 on page 284 to review the role of an SMTP client. Remember that a client can be
an individual user or an SMTP command.
The logo used as an attachment is shown in Figure 7-18. The image file was sent with FTP to
the z/OS UNIX file system and placed it in /tmp/ibm-logo.gif.
310 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Compose an RFC 822-compliant message
Compose an RFC 822-compliant message in a file in the z/OS UNIX file system. RFC 822
specifies the format of a standard Internet email message. You can view RFC 822 at the
following location:
http://www.ietf.org/rfc/rfc822.txt
An RFC 822-compliant message is one that simply contains the To, From, Subject, and Date
headers, followed by a blank line before the text of the message. The example RFC
822-compliant message was composed in the z/OS UNIX file system in the /tmp/test-msg
file. The contents of that file are shown in Example 7-16.
After downloading the source, compile the b64.c program from the z/OS UNIX shell by using
the cc -o b64 b64.c command.
Important: Before compiling the b64.c program, change fprintf( outfile, \r\n ) to
fprintf( outfile, \n ) in the b64.c file. This way, b64 will not append the unnecessary
^M characters.
Example 7-18 /tmp/test-message after joining the text and binary files
To: [email protected]
From: [email protected]
Date: Fri Sep 28 00:39:28 2007
Subject: test message
Hello,
This is a test message using sendmail.
LGT
R0lGODlhLAAPAJEAAER3u////9Le7qK73SH5BAAAAAAALAAAAAAsAA8AAAJajB8iyAPAwntR
zIuz3nzHtHyGVT0hYnXqymKIa5jHxFBoi+fce4m9MRCldEQdj/b5SV6HYfG5OtokgBNSEgw4
mtBuJvZRiEYQXqzMLUO8xilDLHKgz0qyDVAAADsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
The headers that are required for this MIME message include the MIME-Version header and
Content-Type header at the top of the message. Also included is a subtype of multipart/mixed
that identifies a unique boundary string for each part of the message. In each separate part of
the message, add Content-Type and Content-Transfer-Encoding headers.
The headers that were added to the example message are shown in Example 7-19.
Hello,
This is a test message using sendmail.
LGT
MWP
--M-U-L-T-I-P-A-R-T-B-O-U-N-D-R-Y
312 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Content-Type: image/gif;
name="ibm.gif"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="ibm.gif"
R0lGODlhLAAPAJEAAER3u////9Le7qK73SH5BAAAAAAALAAAAAAsAA8AAAJajB8iyAPAwntR
zIuz3nzHtHyGVT0hYnXqymKIa5jHxFBoi+fce4m9MRCldEQdj/b5SV6HYfG5OtokgBNSEgw4
mtBuJvZRiEYQXqzMLUO8xilDLHKgz0qyDVAAADsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-M-U-L-T-I-P-A-R-T-B-O-U-N-D-R-Y--
Another option is to use uuencode to encode a file for safe transmission. For more information,
see this website:
https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxa500/
uuencode.htm
Figure 7-19 Message with attachment that was received from the z/OS system
If you are not certain that you are an SMTPD or Sendmail user or how mail has been used in
the z/OS environment, use IBM Health Checker for z/OS and enable the following checks:
ZOSMIGV2R2_Next_CS_SENDMAILDAEMN
ZOSMIGV2R2_Next_CS_SENDMAILCLIEN
ZOSMIGV2R2_Next_CS_SENDMAILMTA
ZOSMIGV2R2_Next_CS_SENDMAILMSA
ZOSMIGV2R2_Next_CS_SMTPDDAEMON
ZOSMIGV2R2_Next_CS_SMTPDMTA
The output shows you messages that indicate whether you are using SMPTD to send/receive
mail or using z/OS UNIX sendmail to send/receive mail off-z/OS platform. The messages will
continue to be reported during the IPL or while the Migration Health Check is active and no
action has to be taken to activate the change, such as stopping the SMTPD.
For more information, see IBM Health Checker for z/OS: User’s Guide.
This section describes the step that are needed to migrate to CSSMTP.
In order to know in advance which messages will be rejected by CSSMPT, you can run
CSSMTP in test mode while SMTPD is sending email. In test mode, CSSMTP processes the
same mail spool files from SYSOUT, but does not send the email. It only records to the output
file those mail messages that are not compliant and will be rejected.
314 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
CSSMTP in test mode involves two parts: Configuring TestMode parameter in CSSMTP and
EZBMCOPY utility programs as shown in Figure 7-20.
Assuming that the SMTPD writer name is SMTPD, the CSSMTP writer name is CSSMTP, and
the SMTPD writer name has changed to SMTPD1, Figure 7-20 shows how EZBMCOPY
allocates JES spool files as writer SMTPD and makes two identical copies of the original
spool files. It then sends them to both SMTPD for processing (writer name SMTPD1) and
CSSMTP in compatibility test mode (writer name CSSMTP). In this way, emails that were
going to SMPTD now go to EZBMCOPY, and applications do not need to make any changes.
The jobnames and writer names that were used in the test environment are described in
Table 7-1 and are referenced in the remainder of this section:
For CSSMTP, you can also define the writer name through ExtWrtName parm. If you do
not set it, the jobname is assumed.
Update RACF to define the new SMTPB1 started task. You can use the same user ID as
SMTPB.
RDEFINE STARTED SMTPB1 STDATA(USER(SMTPB))
SETROPTS RACLIST(STARTED) REFRESH
Update the TCP/IP profile configuration data set by making the necessary changes to
associate the new jobname (SMTPB1) to the AUTOLOG and PORT statements.
Note: Make sure the SYSOUT or the //SYSUT2 is defined the same as used by the
applications that record mail onto the JES spool. In the test, we define the same class in
the job used to send the mail (//SYSUT2 DD SYSOUT=(A,SMTPB))
316 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Verify the TestMode parameter as shown in Example 7-22.
Note: TestMode cannot be dynamically altered. CSSMTP must be recycled to change its
value.
Also, when TestMode is set to Yes, ensure that the REPORT statement is coded with a
valid destination for the error report. Otherwise, warning message EZD1841I is issued.
.
/*
5. Check for emails that are not compliant in the CSSMTP sysout.
318 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
7.7.1 Problem determination tasks for the z/OS SMTP server
If changes to the domain name server require you to resolve already queued mail again, use
the SMSG SMTP EXPIRE command, or the MODIFY SMSG,EXPIRE command. See the
SMSGAUTHLIST statement for the SMTP server configuration data set for its usefulness in
problem determination. You can also query operating statistics, such as mail delivery queues
of the SMTP server. Several of the commands are shown in Table 7-2.
Popper accepts a command-line parameter -t that specifies the location of a trace file for
detailed tracing. Popper also logs messages to the mail syslogd facility.
Consider these hints and tips for configuration checking when you encounter problems when
starting and using sendmail:
SuperUser status is needed to start the sendmail daemon.
The QueueDirectory option that is defined in the config file tells sendmail where to queue
messages that are temporarily undeliverable. This directory must exist before sendmail is
started.
Sendmail is highly dependent on the Domain Name Server (DNS). The resolver must be
set up correctly to avoid unnecessary searching for a user.
A program-controlled environment is necessary for sendmail to run in daemon mode when
BPX.DAEMON is enabled. This restriction is because many functions of sendmail
(especially daemon functions) require it to change the user ID (UID) without prompting for
a password.
Note: When sendmail is attempting to canonify a host name, some broken name servers
will return SERVFAIL (a temporary failure) on T_AAAA (IPv6) lookups. To allow sendmail
to accept this behavior, ResolverOptions in the configuration file is set to
WorkAroundBrokenAAAA by default.
If a system has thousands of users defined in the Users list, the administrator might
consider enabling the UNIXMAP class. This class increases the speed of the security
checks performed by sendmail. APAR OW30858 provides details about what is needed to
enable the UNIXMAP class.
320 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC27-3650.
Note: This chapter uses the terms otelnetd and z/OS UNIX Telnet server to refer to the
Telnet server that provides access to the z/OS UNIX System Services shell. Other
manuals might also refer to the same application as oTelnet, or Telnet daemon.
Section Topic
Conceptual overview of otelnetd The basic concepts of the z/OS UNIX Telnet server.
z/OS UNIX Telnet server implementation Key characteristics of the z/OS UNIX Telnet server and
why it might be important in your environment.
Problem determination for otelnetd Commonly implemented z/OS UNIX Telnet server
design scenarios, their dependencies, advantages,
considerations, and recommendations.
LPD client, NDB, NICS, RPC, Kerberos, Bind 4.9.3 (DNS/WLM server), Bind 9 (DNS server), DHCP
LPD server, MISC server, NCPRoute, server, TN3270 Telnet server, FTP server, FTP client,
SMTP server, Portmapper, NPF, SNMP query, Telnet server, X-Windows client, SNMP Agent, OMPROUTE,
Telnet client X-Windows client, DPI library DPI library and SNMP Command: Netstat, Ping, Tracerte,
R-commands, RPC, REXEC, RSH, Sendmail
324 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The z/OS UNIX Telnet server authenticates users, negotiates Telnet options with the clients,
and then creates a z/OS UNIX shell where z/OS UNIX commands can be executed. This
process is illustrated in Figure 8-2.
Commands
If -m option, shell will run in the same
address space as the telnetd process Commands
AF_INET PFS
Telnet
Client
The z/OS UNIX Telnet server is started by INETD, which is described in Chapter 6, “INETD”
on page 263. After INETD has created a TCP connection with a client, INETD forks and
executes an instance of otelnetd.
otelnetd
TCP/IP
IP Network
CLIENTS
Note: The configuration shown can send sensitive data over insecure communication
channels. If authentication and security are vital to your environment, then Kerberos
security or AT-TLS provide options to secure the z/OS UNIX Telnet session. Kerberos is
described in the z/OS Communications Server: IP Configuration Guide, SC27-3650, and in
z/OS Integrated Security Services Network Authentication Service Administration,
SC24-5926. AT-TLS is described in IBM z/OS V2R2 Communications Server TCP/IP
Implementation: Volume 4 Security and Policy-Based Networking, SG24-8363.
326 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
8.2.2 Configuration tasks for otelnetd
To start the z/OS UNIX Telnet server, INETD must be active and contain a line in its
configuration file for otelnetd. A port must also be reserved in /etc/services with the same
service name.
Note: If you have already set up and started INETD per the recommendations in
Chapter 6, “INETD” on page 263, then you have already completed the necessary
configuration and otelnetd might already be active.
When a chcp shell command is executed, the otelnetd process is informed of the code page
change through urgent data over the pseudo terminal connection (the master/subordinate pty
interface). If a user selects to change the code page, the chcp command can be executed as
part of the user’s login process, for example, by using the user’s $HOME/.profile or
$HOME/.setup shell scripts.
For more information about the chcp command, see z/OS UNIX System Services Command
Reference, SA22-7802.
You can define the pre-login banner in the /etc/otelnetd.banner file (shown in Example 8-1).
It displays at the client workstation before the user ID and password are entered.
You can define the post-login banner in the /etc/banner file (shown in Example 8-2). It
displays at the client workstation after the user ID and password are entered.
IBM
Licensed Material - Property of IBM
5694-A01 Copyright IBM Corp. 1993, 2009
(C) Copyright Mortice Kern Systems, Inc., 1985, 1996.
(C) Copyright Software Development Group, University of Waterloo, 1989.
CS03 @ SC30:/u/cs03>
Pseudoterminals
Pseudoterminal files are created in the z/OS UNIX file system, in the /dev directory. The file
names are ptypnnnn and ttypnnnn, where nnnn is a number from 0000 to 9999. These files
are used in pairs by the otelnetd server. z/OS UNIX creates pseudoterminal pairs dynamically
as needed. In the rare case where the number of pseudoterminals needs to be increased,
328 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
you can manually issue the mknod command to create more pseudoterminals. The maximum
number of pseudoterminals is constrained by the MAXPTYS statement in your BPXPRMxx parmlib
member. For more information about pseudoterminals and the MAXPTYS parameter, see
z/OS UNIX System Services Planning, GA22-7800.
A UNIX system, like other operating systems, must have at least one terminal attached to it.
In the early days, these were typewriters providing keyboard input and a paper output. These
terminals were later replaced by video display units (VDUs), which behave like the typewriter
did earlier in that the paper is just replaced by the window. These VDUs understand a data
stream that contains ASCII characters to be printed, including control characters such as
carriage return or new line. Differences appeared when individual manufacturers started to
add specific commands to their terminals. Specific commands, for example, can include
cursor movements (up, down, left, right, and so forth).
When one uses simple printing commands, such as cat, there is no obvious difference
among terminals. However, these differences must be taken into account as soon as one runs
a program that uses special commands. This is mostly the case with editors, such as vi or
emacs. These programs need to know, for example, how to move the cursor to a specific
location.
z/OS UNIX and other UNIX systems that have their roots in System V UNIX create a
database named terminfo that contains definitions of all of the capabilities of each terminal.
The terminfo database is shipped as part of z/OS. The database is populated with the
terminal types that are defined by ibm.ti, dec.ti, wyse.ti, ansi.ti, and dtterm.ti. The
database is in the directory /usr/share/lib/terminfo and the source files are in /samples.
Each type of terminal that is defined has a corresponding file with the .ti suffix. If you need to
re-create the terminfo database, run the tic utility. For example, to define an IBM terminal for
the terminfo database, specify this command from the shell environment:
tic /samples/ibm.ti
To define terminal types such as VT100 and VT220, specify this command from the shell
environment:
tic /samples/dec.ti
c cdef
d dtterm, dumb
j jaixterm, jaixterm-m
l lft, lft-pc850
L LFT, LFT-PC850
v vs100, vs100s, vt100, vt100-am, vt100-nam, vt100x, vt200, vt200-8, vt320, vt320,
vt320-8, vt330,vt330-8, vt340
x xterm, xterms
When a shell environment is created, the terminal type of the client user is registered in the
environment variable TERM. The TSO OMVS command environment handles TERM as
though it were set to TERM=dumb. In a telnet session the TERM environment variable is set to
the terminal type that the telnet client uses or emulates.
To use terminal types that are not supported by CS for z/OS IP, create a directory to store
local terminal definitions and use the TERMINFO environment variable to define the location
of that directory. This environment variable was implemented to allow typical UNIX clients with
GUI windowed command-line prompts access to the z/OS UNIX Telnet server. Pass this
variable if there are installation defined terminfo definitions. The environment variable can be
passed directly to otelnetd with the -T command-line option, and should be set in
/etc/profile or in the user’s login script. See the z/OS UNIX System Services Planning,
GA22-7800, for more information about terminal definitions.
If you are interested in more information about termcap and terminfo, see the book termcap
& terminfo, published by O‘Reilly Media, Inc.
Kerberos
The z/OS UNIX Telnet server includes support for Kerberos 5 authentication and encryption
over IPv4 connections. Kerberos is not supported on IPv6 connections. The Kerberos support
is provided by z/OS Security Server. For more information, see z/OS Integrated Security
Services Network Authentication Service Administration, SC24-5926.
330 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Reserve a PORT in PROFILE.TCPIP
Although not required, generally reserve the port to be used for otelnetd in PROFILE.TCPIP,
by using the INETD job name. If you do not reserve a port, it is possible that some other
application will bind to the ports normally reserved for otelnetd. The example PORT
statement for otelnetd is shown in Example 8-3. It reserves the ports for job name INETD1.
We also chose to bind otelnetd to a specific DVIPA address so that otelnet could listen on
port 23 on one address and TN3270 could listen on port 23 on a different IP address.
If you can log in and everything is readable, then otelnetd is working correctly.
These routines are issued by otelnetd using the client address. If DNS does not have
information for the user, the message EZYTE52E is issued by the z/OS UNIX Telnet server as
shown in Example 8-6. These messages can potentially fill up syslogd log files and cause a
delay in logging on.
The solution is to allow for the control of gethostbyaddr or getnameinfo lookup by otelnetd.
The -g parameter disables the issuing of gethostbyaddr or getnameinfo using the client IP
address to resolve the client host name. It is coded in the /etc/inetd.conf file, as follows:
otelnet stream tcp nowait OMVSKERN /usr/sbin/otelnetd otelnetd -m -g
If the -U parameter is also specified, the -g parameter is ignored and message EZYTE90W is
issued to syslogd, warning that the -g parameter has been overridden by the -U parameter.
The -U parameter causes otelnetd to drop connections from any IP address that cannot be
mapped back into a symbolic name by the gethostbyaddr or getnameinfo routines.
EZYTE90W Parameter -g ignored. Parameter not valid when -U coded
332 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: The WHO command does not have the client host name because it is no longer
learned by the gethostbyaddr or the getnameinfo routines.
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC31-8775.
Section Topic
Conceptual overview of remote The basic concepts of remote execution and remote
execution shell.
TSO remote execution server How to set up and use a remote execution server in the
TSO environment.
z/OS UNIX remote execution server How to set up and use a remote execution server in the
UNIX environment.
REXEC TSO client command using user How to use the TSO client REXEC command with a
ID/password user ID and password on the command.
REXEC TSO client command using the How to use the TSO client REXEC command when using
NETRC data set the NETRC data set to provide the user ID and password.
REXEC UNIX client command How to use the UNIX client rexec command.
Problem determination for z/OS remote Improvements in JES spool when REXECD is started
execution facilities with PURGE = N and other situations.
Problem determination for z/OS remote Problem determination techniques for the TSO and UNIX
execution facilities environments for remote execution servers and clients.
Additional information sources for References to additional resources for remote execution.
remote execution and remote shell
LPD client, NDB, NICS, RPC, Kerberos, Bind 9 (DNS server), TN3270 server, FTP server, FTP client,
LPD server, MISC server, NCPRoute, Telnet server, X-Windows client, SNMP Agent, OMPROUTE,
SMTP server, Portmapper, NPF, SNMP query, DPI library and SNMP Command: Netstat, Ping, Tracerte,
Telnet client X-Windows client, DPI library R-commands, RPC, REXEC, RSH, Sendmail
336 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
The z/OS Communications Server includes the following remote execution functionality:
A TSO remote execution server (REXECD) and client (REXEC)
A z/OS UNIX remote execution server (orexecd) and client (orexec/rexec)
A z/OS UNIX remote shell server (orshd) and client (orsh/rsh)
A TSO remote shell client
Note: The TSO remote execution server (REXECD) also supports the RSH protocol.
Therefore, a separate TSO remote shell server is not included in the z/OS
Communications Server.
Terminology
Terminology and acronyms can be confusing. The documents that are referenced in 9.8,
“Additional information sources for remote execution and remote shell” on page 370 are not
necessarily consistent with their names and terminology when discussing the remote
execution environments. The example consolidated the various names and terms associated
with these two servers into a concise list to help you understand the references when you
read them:
The terms remote execution server, TSO remote execution server, and TSO RXSERVE
daemon refer to the single-server REXECD, which is executed in the MVS environment as
a started task:
– REXECD is the distinguishing name for this TSO remote execution server.
– SYS1.SEZAINST(RXPROC) is the sample JCL member for REXECD.
– RXSERVE is the system proclib member name given to REXECD.
– RXSERVE is the started task name used in the PROFILE.TCPIP data set.
– The TSO RXSERVE daemon is the RXSERVE started task.
– The RXSERVE task accepts and processes both commands: REXEC and RSH.
The terms UNIX remote execution server, z/OS UNIX remote execution server, and z/OS
UNIX REXECD server refer to the single-server orexecd, which is initiated by INETD in
the UNIX environment.
– orexecd is the distinguishing name for this z/OS UNIX remote execution server.
– rexecd is considered a synonym of orexecd throughout the references.
– orexecd resides in /usr/sbin/orexecd.
– The orexecd server accepts and processes the rexec/orexec command.
The terms Remote Shell Server, UNIX daemon, and z/OS UNIX rshd refer to the same
server orshd, which is initiated by INETD in the UNIX environment.
– orshd is the distinguishing name for this z/OS UNIX remote shell server.
– remote shell, rsh, and rshd are all used in the manuals to refer to rshd.
– orshd resides in /usr/sbin/orshd.
– The orshd server accepts and processes the rsh/orsh command.
The term remote execution protocol generically refers to the support of the rexec
command, whether discussing a server or client.
The term remote shell protocol generically refers to the support of the rsh command,
whether discussing a server or client.
The client commands REXEC and RSH are used in the TSO environment, either in an
interactive TSO session or in a batch TSO job.
The client commands rexec, orexec, rsh, and orsh are used in the z/OS UNIX
environment.
– rexec and orexec are synonyms, and are used interchangeably.
– rsh and orsh are synonyms, and are used interchangeably.
PGM=
RSHD
REXEC Submit batch job
Command R
or (XXXXnnn)
E Execute
orexec 1 2 3
X
E Batch
C Job
C
D runs
L J
I under
E
E 4 TSO
S S
N Poll JES for Output Batch
e Facility
T
r
Output
v
Retrieve Sysout
e 5
Response r 6
7
338 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
z/OS UNIX remote shell server
The z/OS UNIX remote shell server allows for execution of z/OS UNIX commands that have
been received from a remote client. It is similar to the z/OS UNIX remote execution server, but
uses a different protocol.
Servers
You need to implement the appropriate remote execution server or the commands that you
need to process:
TSO remote execution servers for TSO commands
z/OS UNIX remote execution servers for z/OS UNIX commands
If you need access to both TSO and z/OS UNIX, then both servers can be implemented at the
same time in one of two ways:
Use different ports for the z/OS UNIX servers.
Bind the UNIX servers to a specific dynamic VIPA.
Given the current emphasis that organizations are placing on security for their environments,
you might consider a client’s ability to submit requests without a password a security risk.
Generally, do not implement the support in RXSERVE for an optional password. Rather,
require the user ID and the password on the command. However, if you are required to
support the optional password approach for the remote client’s RSH command, then see the
following documents for the steps to implement that support for RXSERVE:
z/OS Communications Server: IP Configuration Guide, SC27-3650
z/OS Security Server RACF Security Administrator’s Guide, SC28-1915
z/OS Security Server RACF General User’s Guide, SC28-1917
As part of any implementation effort, two appendixes in this book are beneficial in planning
your work:
Environment variables are categorized by application in Appendix A, “Environment
variables” on page 373.
Sample files for each application are listed in Appendix B, “Sample files provided with
TCP/IP” on page 385.
340 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
9.2 TSO remote execution server
This section provides an overview of the TSO remote execution environment. The following
topics are discussed:
Description of TSO remote execution server
Configuration tasks for TSO remote execution server
Activation and verification of TSO remote execution server
The example environment used the TSO REXEC client to execute a TSO command on the
TSO remote execution server on another system. It also used the TSO RSH client to execute
the same command on the same remote server. The clients executed in both batch and from
TSO.
Both clients allow user ID and passwords to be specified on the command line. In addition,
the REXEC client also supports the use of a NETRC data set. To illustrate the use of the
NETRC data set, the example uses REXEC with the NETRC data set. RSH is used to
illustrate use of the command line to pass the user ID and password.
A CINET environment is one in which multiple TCP/IP stacks exist on the same system
image. In the context of TSO remote execution, these stacks are called transports. The TSO
remote execution server has affinity to a specific transport in a CINET environment.
Therefore, you must configure and execute a unique instance of the RXSERVE server for
each TCP/IP stack that requires TSO remote execution services. RXSERVE determines the
stack name to which it should establish affinity from the setting of the TCPIPJOBNAME
variable in the TCPIP.DATA file. This file is specified in the RXSERVE JCL on the //SYSTCPD
DD statement.
RXSERVE supports REXEC and RSH requests only on their well-known ports:
Port 512 for REXEC
Port 514 for RSH
RXSERVE must already be actively running when a client sends a command. Otherwise, the
client connection request fails.
If you need to run either of the z/OS UNIX servers (orexecd or orshd) concurrently with
RXSERVE, they must be configured to use a port other than their well-known ports because
Note: When sending an RSH request to this server, the remote client can issue the RSH
command without specifying a password. This server can be configured to accept or reject
this type of RSH client command syntax.
If your RXSERVE server is to accept the request without a password, then you must
perform several extra security-related tasks to ensure proper authentication and
authorization for the client’s request.
To support this option, the RXSERVE server must have certain surrogate job submission
privileges granted by the security program on your system. See z/OS Communications
Server: IP Configuration Guide, SC27-3650, for the details of using the security server to
define these authorizations.
342 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Optionally permit the RXSERVE task to be a surrogate job
The remote execution client can send commands to RXSERVE through port 512 by using the
following methods:
Sending the REXEC command
Sending the RSH command with both user ID and password
Sending the RSH command with user ID only
The example does not support the third method because it requires a password. The client
commands can be as shown in Example 9-3.
The RSH command in the third line 1 without a password failed on the example
implementation with the message shown in Example 9-4 because the server did not have
RACF surrogate authority defined. Additionally, if your environment does not have correct
surrogate job submission privileges, you might receive the EZA4380E message.
Important: Specify two different output classes for MSGCLASS and TSCLASS.
MSGCLASS must be a held class.
TSOPROC=procname
Name of the TSO batch proc to be submitted in behalf of the client request.
MSGCLASS=x
Output class goes on the JOB card of the submitted job.
Must be a HELD class. Default is H.
TSCLASS=x
Output class for the //SYSTSPRT DD of the submitted job.
Must be different from MSGCLASS. Default is A.
PURGE=x (Y or N)
Should the submitted job’s output be immediately purged when job completes?
Default is Y.
IPV6=x (Y or N)
Support communications with IPv6 addressing? Default is Y.
SECLABEL=x (Y or N)
Add a security label to the job card of the submitted job?
(Multilevel security related (MLS)). Default is Y.
TRACE=options
LOG | NOLOG
SEND | NOSEND
CLIENT=clientid | ALLCLIENTS
RESET (Default)
MAXCONN=nnnn
Maximum number of open sockets at any one time. Each client requires 2, Minimum =
512
PREFIX=xxxx
First four characters on the submitted JOB card, followed by a number between 1
and MAXCONN. (//XXXXn - //XXXXnnnn)
344 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
See the z/OS Communications Server: IP Configuration Guide, SC27-3650, for a detailed
description and sample copy of the user exit source. The source is in hlq.SEZAINST(RXUEXIT).
Important: Before assigning a HOLD class for the MSGCLASS in RXSERVE start
procedure, use the JES2 command $D OUTCLASS to ensure that the OUTDISP of this
outclass is OUTDISP=(HOLD,HOLD).
Otherwise, the job output will not be returned to the remote user, and the user will receive
a Jobname not found message when the job times out. In addition, the MSGCLASS cannot
be modified by the MODIFY command.
The user exit needs the AMODE(31) and RMODE(24) attributes to provide addressability to
the input parameters. Example 9-8 shows the JCL to assemble and link edit the RXUEXIT
source code.
346 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
The SYSLMOD data set should have APF authorization and be in LINKLST. After you get the
return code ‘0’ from this job, refresh LLA before using the user exit routine.
Example 9-9 shows the correct placement of the //SYSTSPRT DD statement within the JCL,
if the batch procedure specified is TSOPROC=REXECTST.
RXSERVE overrides the class specification for the //SYSTSPRT DD statement with the value
specified in the TSCLASS parameter before it submits the job. RXSERVE also adds a
//SYSTSIN DD statement to the TSOPROC procedure, where it includes the TSO command
requested by the client on the original REXEC or RSH command. Example 9-3 on page 343
shows a client request.
When RXSERVE is started, the system issues the messages shown in Example 9-10.
The example environment used the z/OS orexec client to execute a z/OS UNIX command on
the z/OS orexecd server on another system. It also use the z/OS UNIX orsh client to execute
the same command on the same remote server.
The z/OS UNIX servers are initiated through the INETD server and can be configured to use
ports other than the well-known ports, 512 and 514. If INETD and the servers have been
configured to serve different ports, the client must be aware of this setting and specify that
specific port on the request.
348 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
INETD listens on the configured port on behalf of the z/OS UNIX remote execution servers.
INETD initiates an instance of the server at the time a client request is received. The server is
not activated ahead of time. INETD must be listening on the appropriate port, and the client
must specify the same port. Otherwise, the client connection request fails.
For rexec requests, INETD listens on the port number that is specified for exec in the
/etc/services file. For rsh requests, INETD listens on the port number that is specified for
“shell”. Make sure that the intended port numbers are specified.
If you need to run the z/OS UNIX server (orexecd/rexecd) concurrently with RXSERVE, the
z/OS UNIX server must be configured to support a port other than its well-known port of 512
because RXSERVE cannot be modified. For details about running both servers concurrently,
see “Concurrent execution for TSO and z/OS UNIX remote execution servers” on page 351.
The z/OS UNIX remote execution clients cannot use a NETRC data set, and jobs cannot be
submitted in batch.
The orexecd record in the INETD /etc/inetd.conf file might look like one of the entries in
Example 9-11, depending on the options you want. See the z/OS Communications Server: IP
Configuration Guide, SC27-3650, for a description of all the parameters available to rexecd.
In the example scenario, the actual record for rexecd 1 in an /etc/inetd.conf file is shown in
Example 9-12.
Make certain that the exec entry in /etc/services indicates the intended port number over
which you want rexecd to process requests. INETD listens on behalf of orexecd/rexecd on the
port that is specified in /etc/services. The default well-known port for exec, rexecd, and
orexecd is 512 (1). Notice the default port for shell/rsh/orsh is 514 (2), as shown in
Example 9-13.
350 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Concurrent execution for TSO and z/OS UNIX remote execution servers
As previously mentioned, one way to concurrently execute both TSO and z/OS UNIX servers
is to change the port numbers for the z/OS UNIX server in /etc/services. It could listen on a
different port and not conflict with the TSO server. However, that would be confusing to
remote clients that might require using the well-known port for submitting requests.
Another method can be used to achieve concurrent execution for the two servers. Both
servers are generic listeners, or generic servers. You can make one of the servers appear to
be a BIND-specific server and avoid the port conflict.
Because the remote execution servers are generic servers, they attempt to bind to
INADDR_ANY when they are started, which allows them to listen on all defined IP addresses.
However, this bind prevents both the TSO and z/OS UNIX remote execution servers from
listening on the same port, and one of the servers has to use a nonstandard port. Using the
BIND parameter on the PORT reservation statement in the TCPIP profile data set allows both
the TSO and z/OS UNIX remote execution servers to bind to the same ports using different IP
addresses. To do so, complete following steps:
1. Define a VIPA address (either static or dynamic, but preferably dynamic) to the
PROFILE.TCPIP data set with a pair of DEVICE and LINK statements (or VIPADYNAMIC
statements). Then add the LINK to the HOME statement for static VIPA. Dynamic VIPA
and the VIPARANGE statement were used in the example setup. as shown in
Example 9-15.
2. Add PORT statements to the TCPIP profile for both the TSO and z/OS UNIX remote
execution servers. One of the servers will bind to the VIPA address. The other can bind to
INADDR_ANY by not specifying the BIND parameter. In this case, the z/OS UNIX remote
execution servers bind to the VIPA address, as shown in Example 9-16 on page 352.
Requests to ports 512 or 514 with a destination IP address that is not 10.1.9.22 are
directed to the TSO remote execution server.
3. Verify in the /etc/services file that exec uses port 512 and shell uses 514.
4. Verify the setup by starting the stack with the new changes and starting RXSERVE and
INETD, the two listeners involved.
5. Issue the NETSTAT command. It should now show that both REXECD servers are
listening on port 512 1 and both RSH servers are listening on port 514 2. INETD is now
listening for the z/OS UNIX remote execution servers, in this case, on the VIPA address
only 3 as shown in Example 9-17.
For more information about the PORT reservation statement, the DEVICE and LINK
statements, and the HOME statement, see z/OS Communications Server: IP Configuration
Reference, SC27-3651.
352 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
9.4 REXEC TSO client command using user ID/password
This section provides an overview of the REXEC TSO client command with a user ID and
password specified. The following topics are discussed:
Description of REXEC TSO with user ID and password
Configuration of REXEC TSO with user ID and password
Verification of REXEC TSO with user ID and password
The user ID specified on the REXEC command must be a valid user ID on the remote
targeted system.
The foreign_host and the command are both required. All other parameters are optional.
However, because this example is discussing the use of a user ID and password on the
REXEC command, assume that those two parameters are included on the command for this
example. The remote-host can be a DNS name to be resolved by DNS services, or it can be
the IP address of the remote host.
The parameters -b, -d, -l, -m, -n, -p, -s, and -t are case sensitive and must be entered in
lowercase letters. The user ID and password values might be case sensitive, depending on
the remote operating system requirements.
Example 9-20 REXEC TSO client command translation table search order
If no translation table name is specified by using the -t parameter, search
for:
userid.STANDARD.TCPXLBIN
hlq.STANDARD.TCPXLBIN where hlq is specified by DATASETPREFIX in the TCPDATA
file
354 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If the standard table is not present, then a hardcoded default table identical
to hlq.SEZATCPX(STANDARD) is used.
If the specified file is not found, REXEC terminates with message EZA4805I
REXEC TSO requests can be submitted from the TSO command line or from a batch job.
These methods include the following items:
Submitting REXEC TSO requests including a user ID and password
Submitting REXEC TSO requests in batch with a user ID and password
Example 9-21 REXEC TSO client command with a user ID and password
READY
rexec -l CS07 -p PASSWORD 10.1.1.20 netstat home
The command can be entered as a parameter on the EXEC JCL statement, as shown in
Example 9-22.
Example 9-22 Batch REXEC TSO client command using EXEC PARM=
BROWSE CS07.TCPPARMS(JOBRX1) - 01.04 Line 00000000 Col 001 080
//CS07Z JOB (TT,0001),MSGLEVEL=(1,1),MSGCLASS=X,CLASS=C,NOTIFY=CS07
//STEP1 EXEC PGM=REXEC,REGION=0M,
// PARM='-l CS07 -p PASSWORD 10.1.1.20 netstat home'
//SYSPRINT DD DSN=CS07.NETSTAT.HOME,DISP=SHR
//SYSTCPD DD DISP=SHR,DSN=TCPIPB.TCPPARMS(DATAB31)
Note: The data set containing the JCL cannot have sequence numbers.
Example 9-23 Results of REXEC TSO client command from a TSO session
Home address list:
LinkName: IUTIQDF4L
Address: 10.1.4.21
Flags:
LinkName: IUTIQDF5L
Address: 10.1.5.21
Flags:
LinkName: IUTIQDF6L
Address: 10.1.6.21
Flags:
LinkName: VIPA1L
Address: 10.1.1.20
Flags: Primary
LinkName: OSA2080I
Address: 10.1.2.21
Flags:
IntfName: OSA20A0I
Address: 10.1.2.22
Flags:
IntfName: OSA20C0I
Address: 10.1.3.21
........................
***
You can verify the results of the batch job REXEC TSO client command by reviewing the
response that it places in the output data set specified in the batch JCL, as shown in
Example 9-24.
Example 9-24 Results of REXEC TSO client command from a batch job
BROWSE CS07.NETSTAT.HOME Line 00000000 Col 001 080
READY
netstat home
Home address list:
LinkName: IUTIQDF4L
Address: 10.1.4.21
Flags:
LinkName: IUTIQDF5L
Address: 10.1.5.21
Flags:
LinkName: IUTIQDF6L
Address: 10.1.6.21
Flags:
LinkName: VIPA1L
Address: 10.1.1.20
Flags: Primary
LinkName: OSA2080I
Address: 10.1.2.21
Flags:
LinkName: OSA20A0I
Address: 10.1.2.22
Flags:
LinkName: OSA20C0I
356 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Address: 10.1.3.21
Flags:
LinkName: OSA20E0I
Address: 10.1.3.22
Flags:
........................
READY
END
9.5 REXEC TSO client command using the NETRC data set
This section provides an overview of the REXEC TSO client command with a NETRC data
set used to obtain user ID and password information. It includes the following topics:
Description of REXEC TSO client using NETRC
Configuration of REXEC TSO client using NETRC
Verification of REXEC TSO client using NETRC
A NETRC data set must exist and be configured with appropriate machine, user ID, and
password information.
If the NETRC data set is needed because the user ID and password have been omitted from
the client command, and it is not found by the client support function, the client request fails.
Example 9-25 REXEC command format with no user ID or password for use with NETRC data set
REXEC ? -b tab -d -m -n -s portnum -t translate_file foreign_host command
Example 9-26 REXEC TSO client command without a user ID and password
READY
rexec 10.1.1.20 netstat conn
The command is entered as a parameter on the EXEC JCL statement. The results of the
command executed on the remote host are stored on the local host and by default it is written
to the //SYSPRINT DD allocation. The data set characteristics should be consistent with the
output from the command you are executing at the remote host as shown in Example 9-27.
Example 9-27 Batch REXEC TSO client command without a user ID and password
BROWSE CS07.TCPPARMS(JOBRX3) - 01.03 Line 00000000 Col 001 080
//CS07Z JOB (TT,0001),MSGLEVEL=(1,1),MSGCLASS=X,CLASS=C,NOTIFY=CS07
//STEP1 EXEC PGM=REXEC,REGION=0M,
// PARM='10.1.1.20 netstat home'
//SYSPRINT DD SYSOUT=*
//SYSTCPD DD DISP=SHR,DSN=TCPIPB.TCPPARMS(DATAB30)
REXEC uses the following search order to find the NETRC data set:
1. //NETRC DD statement
2. userid.NETRC.DATA
3. tso_prefix.NETRC
4. userid.NETRC
358 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Note: Be aware of the following NETRC characteristics:
If the password is specified by using the -p parameter on the REXEC client
command, no NETRC data set is used. Otherwise, the NETRC data set is used to
acquire the password.
If the password is omitted from both the REXEC client command and the machine
record within the NETRC data set, the REXEC program prompts you for your current
password. You must be running in an interactive TSO session.
If you have submitted a batch job to execute the REXEC client command, and you
omit the password from both the REXEC client command and from the machine
record within NETRC, then the REXEC client command fails because it cannot
prompt for a password in batch.
The format of the records within the NETRC data set is shown in Example 9-28.
The keywords machine, login, and password must be specified in lowercase, exactly as they
are spelled in the example. The remotehost specification can be its DNS name or its IP
address. The user ID and password might be case sensitive at the remote host, and if
supplied in the incorrect case, failure might occur when connecting to a REXEC server.
Example 9-29 shows the NETRC data set that used in the example scenarios. It is a
RECFM=FB, LRECL=80 sequential data set.
When running REXEC in batch, the user ID assigned to the batch job is used as the
high-level qualifier in locating the default userid.NETRC.DATA or the userid.NETRC data set.
Example 9-30 shows the use of the userid.NETRC.DATA data set containing the user ID and
password for the user ID assigned to the batch job. The output is sent to the data set
indicated on the //SYSPRINT DD statement.
Example 9-30 Batch REXEC TSO client command JCL using default NETRC data set
BROWSE CS07.TCPPARMS(JOBRX3) - 01.03 Line 00000000 Col 001 080
//JOBRX3 JOB (TT,0001),MSGLEVEL=(1,1),MSGCLASS=X,CLASS=C,NOTIFY=&SYSUID
//STEP1 EXEC PGM=REXEC,REGION=0M,
// PARM='10.1.1.20 netstat conn'
//SYSPRINT DD SYSOUT=*
//SYSTCPD DD DISP=SHR,DSN=TCPIPB.TCPPARMS(DATAB30)
Example 9-31 Batch REXEC TSO client command JCL overriding default NETRC data set
//RXTEST JOB (TST,0001),MSGLEVEL=(1,1),MSGCLASS=X,CLASS=C,NOTIFY=&SYSUID
//STEP1 EXEC PGM=REXEC,REGION=0M,
// PARM='10.1.1.20 netstat conn'
//SYSPRINT DD SYSOUT=*
//NETRC DD DSN=CS07.OVERRIDE.NETRC,DISP=SHR
Note: The data set containing the JCL cannot have sequence numbers.
You can verify the results of the REXEC TSO client command by reviewing the response that
you get back on your TSO session, as shown in Example 9-32.
Example 9-32 Results of REXEC TSO client command without user ID and password in TSO
User Id Conn State
------- ---- -----
DCD1DIST 0000225A Listen
Local Socket: 0.0.0.0..38241
Foreign Socket: 0.0.0.0..0
DCD1DIST 00002257 Listen
Local Socket: 0.0.0.0..38240
Foreign Socket: 0.0.0.0..0
OMPB 00000026 Establsh
Local Socket: 127.0.0.1..1026
Foreign Socket: 127.0.0.1..1027
TCPIPB 00000017 Listen
Local Socket: 127.0.0.1..1024
Foreign Socket: 0.0.0.0..0
TCPIPB 0000001D Establsh
Local Socket: 127.0.0.1..1024
Foreign Socket: 127.0.0.1..1025
TCPIPB 00000025 Establsh
Local Socket: 127.0.0.1..1027
Foreign Socket: 127.0.0.1..1026
TCPIPB 0000001C Establsh
Local Socket: 127.0.0.1..1025
Foreign Socket: 127.0.0.1..1024
TN3270B 00000034 Listen
Local Socket: ::..23
Foreign Socket: ::..0
TN3270B 00000033 Listen
Local Socket: ::..992
Foreign Socket: ::..0
TCPIPB 000023A9 UDP
Local Socket: ::..3512
Foreign Socket: *..*
***
360 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
An example of the batch job that RXSERVE submits (using the TSOPROC specified in the
RXSERVE parms) is shown in Example 9-33. The originating user job did not specify a user
ID or password on the REXEC command. Therefore, the REXEC program uses the default
NETRC data set because the //NETRC DD statement was not supplied in the originating JCL.
Example 9-33 REXEC using default NETRC when no user ID or password is specified in command
SDSF OUTPUT DISPLAY CS07Z JOB07179 DSID 2 LINE 0 COLUMNS 02- 81
J E S 2 J O B L O G -- S Y S T E M S C 3 0 -- N O D E
362 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
You can verify the results of the batch job REXEC TSO client command by reviewing the
response that it places into the output data, as shown in Example 9-35.
Example 9-35 Results of REXEC TSO client command without user ID and password in batch
BROWSE CS07.NETSTAT.CONN Line 00000000 Col 001 080
User Id Conn State
------- ---- -----
DCD1DIST 0000225A Listen
Local Socket: 0.0.0.0..38241
Foreign Socket: 0.0.0.0..0
DCD1DIST 00002257 Listen
Local Socket: 0.0.0.0..38240
Foreign Socket: 0.0.0.0..0
OMPB 00000026 Establsh
Local Socket: 127.0.0.1..1026
Foreign Socket: 127.0.0.1..1027
TCPIPB 00000017 Listen
Local Socket: 127.0.0.1..1024
Foreign Socket: 0.0.0.0..0
TCPIPB 0000001D Establsh
Local Socket: 127.0.0.1..1024
Foreign Socket: 127.0.0.1..1025
TCPIPB 00000025 Establsh
Local Socket: 127.0.0.1..1027
Foreign Socket: 127.0.0.1..1026
TCPIPB 0000001C Establsh
Local Socket: 127.0.0.1..1025
Foreign Socket: 127.0.0.1..1024
TN3270B 00000034 Listen
Local Socket: ::..23
Foreign Socket: ::..0
TN3270B 00000033 Listen
Local Socket: ::..992
Foreign Socket: ::..0
TCPIPB 00002396 UDP
Local Socket: ::..3507
Foreign Socket: *..*
The parameters -d, -l, -p, and -s are case sensitive and must be entered in lowercase
letters. The user ID and password values might be case sensitive, depending on the remote
operating system requirements.
Use a question mark (?) to obtain command help, as shown in Example 9-37.
364 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Use foreign_host to specify the remote host name or IP address to which you are
sending the indicated command.
Use command to specify the command that is sent to the remote host. The command is
composed of one or more words. The command that you specify must not require a
response from the user to complete. The rexec/orexec command cannot interact with you
after you enter data in the command format.
The port number that is specified in the rexec/orexec command must match the port
number on which the remote rexec server is listening. The default, if not specified here, is
the port number that is specified in the exec entry within the /etc/services file, as shown
in Example 9-38.
z/OS REXEC UNIX requests can be submitted from the z/OS UNIX shell command line. Use
the rexec/orexec command with user ID and password specified, as shown in Example 9-39.
Example 9-39 REXEC UNIC client command with user ID and password
READY
orexec -l CS07 -p CS07PSWD -s 512 10.1.1.20 netstat home
When the MODIFY (F) command is used to modify the RXSERVE parameters, RXSERVE
responds with messages similar to those shown in Example 9-41.
9.7.2 Problem determination for REXEC TSO with user ID and password
When issuing a command to be executed on the remote host, do not place the command in
quotation marks. The REXEC TSO client program cannot process the command stream
properly if quotes are included.
Submitting a long-running command can cause the REXEC program to end abnormally with
a 522 system abend code. You can avoid this issue by specifying TIME=1440 on the EXEC
JCL statement. Job step timing is suppressed.
366 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If the command to be executed on the remote host contains a slash (/), you must use a
preceding slash (/) in the PARM= string, as shown in Example 9-42.
Example 9-42 Executing a remote command that has an embedded slash (/)
//CS07C JOB (TST,0001),MSGLEVEL=(1,1),MSGCLASS=X,CLASS=C,NOTIFY=CS07
//STEP1 EXEC PGM=REXEC,REGION=0M,
// PARM='/-l oper6 -p cold2day 10.1.9.22 ls ./lpp/samples/*'
//SYSPRINT DD DSN=CS07.LPP.SAMPLES.C,DISP=SHR
A condition code of 12 is sent by the system when an REXEC batch request encounters any
of the following error conditions:
The client program cannot connect to TCP/IP:
– TCP/IP might be unavailable on the local or remote machine.
– TCP/IP might not allow the REXEC client program access to the stack.
– REXEC might not be configured or might be configured incorrectly.
The host name cannot be resolved:
– The name might be spelled incorrectly.
– The DNS server might be unavailable.
– Use the IP address to see whether access can be gained.
– Ping the name to see whether DNS can resolve the name and access the server.
– Tracerte the name to see whether network path access is an issue.
There is no REXEC server listening on the remote server:
– You might be using an incorrect port number.
– You might be using an incorrect server name or IP address.
The remote system rejects the connect or submitted command:
– The security might not be correctly set up for your user ID to log on to the remote
server.
– The security might not be correctly set up for your user ID to execute the requested
command on the server.
Submitting a long-running command can cause the REXEC program to end abnormally with
a 522 system abend code. You can avoid this issue by specifying TIME=1440 on the EXEC
JCL statement. Job step timing is suppressed.
If the command to be executed on the remote host contains a slash (/), you must use a
preceding slash (/) in the PARM= string, as shown in Example 9-43.
368 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
9.7.5 Recovery for server job table full condition
If the REXECD server is started with the PURGE=N option, then the entries in the table
remain until the server is recycled, even if the jobs on the JES queue are purged by the user.
If you cannot take any recovery action when the server cannot assign any new job numbers,
then the following results will occur:
Remote jobs are lost.
Several jobs fail before the condition is noted.
Message is issued currently only to the server’s JES spool.
When running a server 24x365, this condition can occur eventually if the server was started
with the PURGE=N option. It can also occur when using a shared JES spool with servers
running on other systems and using the same prefix.
The REXECD server attempts to clean up table entries for jobs that are purged from the JES
spool when starting the server with the PURGE=N option.
Additionally, messages EZA4434I or EZA4435E are written to the console when the server
detects that the table is full:
EZA4434I is issued when job table is 85% full:
EZA4434I rexecd: Number of available job numbers is being depleted
EZA4435E is issued if the REXECD server is not recycled after EZA4434I and the job
table becomes full:
EZA4435E rexecd: Number of available jobs is depleted
The REXECD server tries to find candidate job numbers for reuse based on the time
stamps of internal job table entries.
When messages EZA4434I or EZA4435E are displayed, you have the following options:
Change the setting of the PURGE operand to PURGE=Y so that job numbers are purged
immediately when no longer in use.
Delete jobs from the JES spool.
Restart the server.
By updating your automation to identify the EZA4434I and EZA4435E messages, you can
use automation to recycle the server and bring the situation to the attention of the console
operator. The operator can then manually recycle the server.
The REXECD server provides diagnostic messages that are easy to correlate with a single
remote job request and to identify failing requests.
Table 9-1 lists the trace message IDs and the associated message text.
Table 9-1 Example trace to the JES spool file of the server
1 socket 0: EZA4381I Accept 2 from XX.XX.XX.XX on 512
The first token in the trace line identifies the socket to which the trace entry applies. Socket 0
is the listening socket. The EZA4381I message identifies the socket on which the request is
processed and the IP address and port on which the request was received. Port 512 is for
REXEC requests and port 514 is for RSH requests.
In this table:
1. Indicates that an REXEC request was received on socket 2 for the specified IP address.
Subsequent entries that begin with socket 2: indicate activity that is occurring during the
processing of this request. Message EZA441I is issued when this socket is closed.
2. Shows EZA4382I, which identifies the socket (3) and the IP address and port that the
server uses to connect to the client. This port (1255) was in the packet that the client sent
to the server. Message EZA4442I is issued when this socket is closed. Typically, you see
only the EZA4382I and EZA4442I messages for this socket.
3. Shows the return code from the dynamic allocation of the JES data sent back to the client.
4. Indicates that the request is completed and that the socket is closed.
5. Indicates that the error socket is closed.
370 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Tip: For descriptions of security considerations that affect specific servers or components,
see “UNIX System Services Security Considerations” in z/OS Communications Server: IP
Configuration Guide, SC31-8775.
Environment variables are named variables, with assigned values, that can be accessed by
various processes in the z/OS Communications Server configuration. Applications use
environment variables to define the characteristics of their specific environment. z/OS
Communications Server: IP Configuration Guide, SC27-3650, provides details about where to
find information about the environment variables that are explicitly set by the z/OS
Communications Server and its applications. In addition to an application being able to set its
own environment variables, Language Environment and z/OS UNIX System Services (z/OS
UNIX) also provide environment variables. The following description assists with determining
which applications have access to these additional Language Environment and z/OS UNIX
System Services variables.
Understanding the resolver search orders that are used in native MVS API environments and
in z/OS UNIX environments is key to setting up your system properly. The type of API
environment not only affects what search order is used by the resolver to locate certain files
required for processing, but it also determines which set of environment variables is available
to the resolver and to the server programs. You can indirectly determine which sets of
environment variables an application can use by identifying the caller API value. This value
can be obtained from the output of a resolver trace performed when the application calls the
resolver. For information about dynamically starting the resolver trace, see z/OS
Communications Server: IP Diagnosis Guide, GC31-8782.
The variables associated with the z/OS UNIX System Services API are listed in Table A-3 on
page 375. The variables associated with the Language Environment API are listed in
Table A-4 on page 376.
The variables specific to each application are listed in Table A-5 on page 377. The
application-specific table also indicates which of the API interfaces are used by the
application. When an application uses the indicated API interface, it also has access to that
API’s set of environmental variables.
Table A-1 lists examples of commands and applications that use the native MVS API
environment.
Table A-1 Examples of commands and applications that use the native MVS API environment
TSO commands Applications
374 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
A.3 z/OS UNIX API environment
The following caller API values indicate that the z/OS UNIX API environment search order is
used, and the Language Environment and z/OS UNIX System Services environment
variables are available:
Language Environment C Sockets
z/OS UNIX
Table A-2 lists examples of commands and applications that use the z/OS UNIX environment.
Table A-2 Examples of commands and applications that use the z/OS UNIX environment
z/OS UNIX command Applications
dig FTP
dnsdomainname SNMP agent
domainname z/OS UNIX OPORTMAP
ftp z/OS UNIX OREXECD
host z/OS UNIX ORSHD
hostname z/OS UNIX RPCBIND
netstat
nslookup
ping
rexec
rsh
rpcinfo
sendmail
snmp
traceroute
_BPX_SHAREAS Allows a spawned child process to share the shell's address space
_EDC_ANSI_OPEN_DEFAULT Affects characteristics of z/OS text files opened with default attributes
376 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
_EDC_STOR_INCREMENT_B Controls storage increments below the 16M line
_EDC_STOR_INITIAL Sets initial size of library storage above the 16M line
_EDC_STOR_INITIAL_B Sets initial size of library storage below the 16M line
RESOLVER
z/OS UNIX API variables Has indirect access to these using program call
RESOLVER_TRACE Points to the file into which the resolver trace output is written
z/OS UNIX API variables Has indirect access using program call
Language Environment API variables Has indirect access using program call
MESSAGECASE Overrides any other setting for message case within TCPDATA
SYSLOGD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
z/OS UNIX API variables No access to the variables in Table A-3 on page 375
Language Environment API variables No access to the variables in Table A-4 on page 376
INETD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
OTELNETD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
LC_ALL Sets all the above LC_ variables with one setting
FTP
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
378 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
TFTPD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
TSO REXEC
z/OS UNIX API variables No access to the variables in Table A-3 on page 375
Language Environment API variables No access to the variables in Table A-4 on page 376
UNIX REXECD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
UNIX RSHD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
LC_ALL Sets all the above LC_ variables with one setting
SMTP
z/OS UNIX API variables No access to the variables in Table A-3 on page 375
Language Environment API variables No access to the variables in Table A-4 on page 376
CSSMTP
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
GSK_TRACE Specifies a bit mask that enables system SSL trace options
GSK_TRACE_FILE When set to the name of a file, enables the system SSL trace
LPD/LPR
z/OS UNIX API variables No access to the variables in Table A-3 on page 375
Language Environment API variables No access to the variables in Table A-4 on page 376
DHCP
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
BIND4
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
BIND9
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
OMPROUTE
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
380 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
SNMP
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
SNMPQE
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
SLAP
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
Policy Agent
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
RSVP Agent
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
TIMED
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
SNTPD
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
PORTMAPPER
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
UNIX PORTMAPPER
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
MISCSERV
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
DCAS
z/OS UNIX API variables Has access to the variables in Table A-3 on page 375
Language Environment API variables Has access to the variables in Table A-4 on page 376
382 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
If, instead of a UNIX file, you want to set RESOLVER_CONFIG to the data set
MVSA.PROD.PARMS(TCPDATA), specify the following export command. Be certain to put
the single quotation marks (' ') around the data set name. If you do not, your user ID is
added as a prefix to the data set name when the resolver tries to open the file.
export RESOLVER_CONFIG="//'MVSA.PROD.PARMS(TCPDATA)'"
If the z/OS UNIX application is to be started from JCL instead of from the z/OS shell, the
environment variable must be passed as a parameter in the JCL for the application. For
example, the following lines show the RESOLVER_CONFIG variable pointing to a UNIX file:
//OSNMPD PROC
//OSNMPD EXEC PGM=EZASNMPD,REGION=4096K,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)/',
// 'ENVAR("RESOLVER_CONFIG=/etc/tcpa.data")/-d 0')
The following example shows the RESOLVER_CONFIG variable pointing to a PDS member:
//OSNMPD PROC
//OSNMPD EXEC PGM=EZASNMPD,REGION=4096K,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)/',
// 'ENVAR("RESOLVER_CONFIG=//''TCPA.MYFILE(TCPDATA)''")/-d 0')
The following example shows the RESOLVER_CONFIG variable pointing to the TCPIP.DATA
information from a DD card:
//OSNMPD PROC
//OSNMPD EXEC PGM=EZASNMPD,REGION=4096K,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)/',
// 'ENVAR("RESOLVER_CONFIG=DD:TCPDATA")/-d 0')
//TCPDATA DD DSN=TCPA.MYFILE(TCPDATA),DISP=SHR
In this case, the environment variables are read from the file specified on the STDENV DD
statement.
Important: If this file is a z/OS data set (traditionally referred to as an MVS data set), the
data set must be allocated with RECFM=V.
Using RECFM=F is not recommended because RECFM=F enables padding with blanks
for the environment variables. In this case, if an environment variable is specifying a UNIX
file name, the resulting name includes the trailing blanks of the record, and the system
cannot find the named file. Error messages are issued by the program attempting to locate
the file.
For more information about specifying a list of environment variables using the
_CEE_ENVFILE environment variable pointer, see z/OS XL C/C++ Programming Guide,
SC09-4765.
Table B-1 Sample files that are provided with TCP/IP components
Resolver
SEZAINST(SERVICES) ETC.SERVICES
OMPROUTE
SYSLOGD
386 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
OTELNETD
INETD
FTP
TFTPD
IKED
SMTP
Sendmail
LPD/LPR
SNMP
REXEC
UNIX REXECD
388 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
UNIX RSHD
TIMED
SNTPD
PORTMAPPER
UNIX PORTMAPPER
RPCBIND
NCS INTERFACE
MISCSERV
SLAP
TRMD
Policy Agent
390 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
C applications: policy performance monitoring
394 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; ----------------------------------------------------------------------
TELNETDEVICE IBM-3277 SNX32702,SNX32702
TELNETDEVICE IBM-3278-2-E SNX32702,SNX32702
TELNETDEVICE IBM-3278-2 SNX32702,SNX32702
TELNETDEVICE IBM-3279-2-E SNX32702,SNX32702
TELNETDEVICE IBM-3279-2 SNX32702,SNX32702
TELNETDEVICE IBM-3278-3-E SNX32703,SNX32703
TELNETDEVICE IBM-3278-3 SNX32703,SNX32703
TELNETDEVICE IBM-3279-3-E SNX32703,SNX32703
TELNETDEVICE IBM-3279-3 SNX32703,SNX32703
TELNETDEVICE IBM-3278-4-E SNX32704,SNX32704
TELNETDEVICE IBM-3278-4 SNX32704,SNX32704
TELNETDEVICE IBM-3279-4-E SNX32704,SNX32704
TELNETDEVICE IBM-3279-4 SNX32704,SNX32704
TELNETDEVICE IBM-3278-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3278-5 SNX32705,SNX32705
TELNETDEVICE IBM-3279-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3279-5 SNX32705,SNX32705
;
ENDTELNETGLOBALS
;
TELNETPARMS
PORT 23
INACTIVE 0
TIMEMARK 600
SCANINTERVAL 120
FULLDATATRACE
SMFINIT 0 SMFINIT NOTYPE119
SMFTERM 0 SMFTERM TYPE119
SNAEXT
MSG07
LUSESSIONPEND
ENDTELNETPARMS
;
BEGINVTAM
PORT 23
DEFAULTLUS
SC31BB01..SC31BB99
ENDDEFAULTLUS
The naming convention that is used for the DEFAULTLUS is XXXXyznn: (SC31BBnn):
XXXX is the &SYSNAME of the system.
y is B for stack B that was used for all of the examples in this book.
z is B for the basic port (23) and S for the secure port (992).
nn is 01 through 99.
Start the TCPIPB started task for this scenario by issuing the following command:
S TCPIPB,PROFILE=PROFB30A
396 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
TCPIPSTATISTICS ; default = notcpipstatistics
XCFGRPID 21 ; subplex for TCPIPB on all lpars
IQDVLANID 21
SYSPLEXMONITOR DELAYJOIN RECOVERY TIMERSECS 60
;
IPCONFIG
ARPTO 1200
SOURCEVIPA
IGNOREREDIRECT
DATAGRAMFWD
SYSPLEXROUTING
MULTIPATH PERCONNECTION
PATHMTUDISCOVERY
DYNAMICXCF 10.1.7.21 255.255.255.0 8
;
TCPCONFIG
FINWAIT2TIME 600 ; in seconds, default = 600
INTERVAL 15 ; in minutes, default = 120
; RESTRICTLOWPORTS ; default = unrestrictlowports
SENDGARBAGE FALSE ; default = false
TCPSENDBFRSIZE 256K ; default = 16K
TCPRCVBUFRSIZE 256K ; default = 16K
TCPMAXRCVBUFRSIZE 512K ; default = 256K
TCPTIMESTAMP ; default = tcptimestamp
NODELAYACKS ; default = delayacks
; TTLS ; default = NOTTLS
;
UDPCONFIG
; RESTRICTLOWPORTS ; default = unrestrictlowports
UDPCHKSUM ; default = udpchksum
UDPSENDBFRSIZE 65535 ; default = 64K
UDPRCVBUFRSIZE 65535 ; default = 64K
NOUDPQUEUELIMIT ; default = udpqueuelimit
;
SMFCONFIG ;
TYPE118 TCPIPSTATISTICS ; default = notcpipstatistics
TYPE119 TCPIPSTATISTICS ; default = notcpipstatistics
NOTCPINIT ; default = notcpinit
NOTCPTERM ; default = notcpterm
FTPCLIENT ; default = noftpclient
TN3270CLIENT ; default = notn3270client
IFSTATISTICS ; default = noifstatistics
PORTSTATISTICS ; default = noportstatistics
TCPSTACK ; default = notcpstack
NOUDPTERM ; default = noudpterm
;
AUTOLOG 5
OMPB
FTPDB
INETDB
; LPSERVEB
; RXSERVE
SENDMAIL
SNMPDB
ENDAUTOLOG
;
;INTERFACE OSA20x0I DEFINE IPAQENET (OSA-E) PORTNAME OSA20x0
;TRL MAJ NODE: OSA2080,OSA20A0,OSA20C0,AND OSA20E0
;
INTERFACE OSA2080I
DEFINE IPAQENET
PORTNAME OSA2080
IPADDR 10.1.2.21/24
MTU 1492
VLANID 10
VMAC
;
INTERFACE OSA20A0I
DEFINE IPAQENET
PORTNAME OSA20A0
IPADDR 10.1.2.22/24
MTU 1492
VLANID 10
VMAC
;
INTERFACE OSA20C0I
DEFINE IPAQENET
PORTNAME OSA20C0
IPADDR 10.1.3.21/24
MTU 1492
VLANID 11
VMAC
;
INTERFACE OSA20E0I
DEFINE IPAQENET
PORTNAME OSA20E0
IPADDR 10.1.3.22/24
MTU 1492
VLANID 11
VMAC
;
;HiperSockets definitions
DEVICE IUTIQDF4 MPCIPA
LINK IUTIQDF4L IPAQIDIO IUTIQDF4
DEVICE IUTIQDF5 MPCIPA
LINK IUTIQDF5L IPAQIDIO IUTIQDF5
DEVICE IUTIQDF6 MPCIPA
LINK IUTIQDF6L IPAQIDIO IUTIQDF6
;
; Static VIPA definitions -
DEVICE VIPA1 VIRTUAL 0
LINK VIPA1L VIRTUAL 0 VIPA1
;
VIPADYNAMIC
398 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
;-------------------------------------------------------------------
; Set aside some addresses for use with BIND and SIOCSVIPA IOCTL -
; (10.1.9.21 thru 10.1.9.24) -
;-------------------------------------------------------------------
VIPARANGE define move nondisrupt 255.255.255.0 10.1.9.0
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM algorithm -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.25 ;FTP
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.25 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using ROUNDROBIN -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.21 ;General
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD ROUNDROBIN
10.1.8.21 PORT 992 20 21 23
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using BASEWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.22 ;Admin
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.22 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.23 ; Payrol
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.23 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.24 ; EXTRAS
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.24 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Distribute to 10.1.1.10 via IP routing ( viparoute) -
; Distribute to 10.1.1.20 via normal XCF (no viparoute) -
;-------------------------------------------------------------------
VIPAROUTE DEFINE 10.1.7.11 10.1.1.10 ; sc30's static vipa
;;VIPAROUTE DEFINE 10.1.7.21 10.1.1.20 ; sc31's static vipa
400 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
750 UDP MVSKERBB ; Kerberos
751 TCP ADM@SRVB ; Kerberos Admin Server
751 UDP ADM@SRVB ; Kerberos Admin Server
992 TCP TN3270B NOAUTOLOG ; Secure TN3270 via internal SSL
4992 TCP TN3270B NOAUTOLOG ; Secure TN3270 via AT-TLS
;
; Used for Netview - needed for AON
; SACONFIG ENABLED COMMUNITY public AGENT 161
SACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
ITRACE OFF
START OSA2080I
START OSA20A0I
START OSA20C0I
START OSA20E0I
START IUTIQDF4
START IUTIQDF5
START IUTIQDF6
;
402 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
;
; Hipersockets 10.1.4.x
ospf_interface ip_address=10.1.4.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
attaches_to_area=0.0.0.2
cost0=80
mtu=8192;
; Hipersockets 10.1.5.x
ospf_interface ip_address=10.1.5.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
attaches_to_area=0.0.0.2
cost0=80
mtu=8192;
;
; Dynamic vipa VIPADEFINE
ospf_interface ip_address=10.1.8.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; Dynamic vipa VIPARANGE
ospf_interface ip_address=10.1.9.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; ************************************************************
; *XCF Interfaces
; *XCF Interfaces Created dynamically via DYNAMICXCF stmt in TCPIP
; *XCF Interfaces are point-to-multipoint interfaces
; *XCF Interfaces should not be advertised via OSPF, they are internal
; * to the stack, and therefore external to OSPF
; *Do not specify name for dynamically created interfaces
; * (* wildcard for ip address is to allow dynamics to work....
; * however this means that any address in the 10.1.7.*
; * network that may be found on the stack will be
; * matched to this interface statement...be cautious....
; * the 10.1.7.* subnet should be dedicated to XCF use.
; *
; *Another way to accomplish all this is to just code the following stmt:
; * Global_Options Ignore_Undefined_Interfaces=yes;
; *
; ************************************************************
INTERFACE
IP_Address=10.1.7.*
Subnet_Mask=255.255.255.0
404 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
D
D.1.1 SC30 TN3270A Server PROC for LUNS and LUNR scenario
Example D-1 shows the PROC JCL for the TN3270E Telnet server.
Start the server task for this scenario by issuing the following command:
S TN3270A,PROFILE=TELNA30C
D.1.2 SC30 TN3270A Server PROFILE for LUNS and LUNR scenario
The profile for the TN3270E Telnet server for this scenario is TELNA30C. The naming
convention for the profiles is XXXXyccs:
XXXX is TELN.
y is B for the stack that was used for the examples in this book.
cc is the &SYSCLONE value of this system.
s is a letter that represents the specific scenario (A, B, C, D).
406 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; SSL security. Sysplex Distribution. LUNS/LUNR. -
; -
; ----------------------------------------------------------------------
;
TELNETGLOBALS
TCPIPJOBNAME TCPIPA
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
XCFGROUP
JOIN XCFMONITOR 60
RECOVERYTIMEOUT 60
CONNECTTIMEOUT 60
ENDXCFGROUP
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
; XCFGROUP
; JOIN XCFMONITOR 60
; LUNS 10.1.1.10 4444
; BACKUP
; RANK 99
; RECOVERYTIMEOUT 60
; CONNECTTIMEOUT 60
; ENDXCFGROUP
; ----------------------------------------------------------------------
; These default device type settings will be used by all ports if no -
; TELNETPARMS or PARMSGROUP is used to override the settings. -
; They are logmode names shipped in ISTINCDT with the latest level of -
; VTAM. -
; ----------------------------------------------------------------------
TELNETDEVICE IBM-3277 SNX32702,SNX32702
TELNETDEVICE IBM-3278-2-E SNX32702,SNX32702
TELNETDEVICE IBM-3278-2 SNX32702,SNX32702
TELNETDEVICE IBM-3279-2-E SNX32702,SNX32702
TELNETDEVICE IBM-3279-2 SNX32702,SNX32702
TELNETDEVICE IBM-3278-3-E SNX32703,SNX32703
TELNETDEVICE IBM-3278-3 SNX32703,SNX32703
TELNETDEVICE IBM-3279-3-E SNX32703,SNX32703
TELNETDEVICE IBM-3279-3 SNX32703,SNX32703
TELNETDEVICE IBM-3278-4-E SNX32704,SNX32704
TELNETDEVICE IBM-3278-4 SNX32704,SNX32704
TELNETDEVICE IBM-3279-4-E SNX32704,SNX32704
TELNETDEVICE IBM-3279-4 SNX32704,SNX32704
TELNETDEVICE IBM-3278-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3278-5 SNX32705,SNX32705
TELNETDEVICE IBM-3279-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3279-5 SNX32705,SNX32705
;
ENDTELNETGLOBALS
;
TELNETPARMS
PORT 23
INACTIVE 0
TIMEMARK 600
SCANINTERVAL 120
FULLDATATRACE
SMFINIT 0 SMFINIT NOTYPE119
SMFTERM 0 SMFTERM TYPE119
SNAEXT
MSG07
LUSESSIONPEND
ENDTELNETPARMS
;
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 407
BEGINVTAM
PORT 23
SDEFAULTLUS
SHLU01..SHLU04
ENDSDEFAULTLUS
SLUGROUP
SHRGRP99 SH99LU01..SH99LU04
ENDSLUGROUP
MONITORGROUP SNAONLY
AVERAGE
BUCKETS
NODYNAMICDR
NOINCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 1
BOUNDARY2 2
BOUNDARY3 3
BOUNDARY4 4
ENDMONITORGROUP
408 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
PARMSGROUP NOSSL
NOLUSESSIONPEND
CONNTYPE BASIC ; support non-secure, overrides telnetparms
ENDPARMSGROUP
; ----------------------------------------------------------------------
; The SSLPLAIN group is mapped to use SSL security -
; with no Client Authentication required -
; LUSESSIONPEND = Force a requeue back to the USS table upon logoff -
; ----------------------------------------------------------------------
PARMSGROUP SSLPLAIN
LUSESSIONPEND
CONNTYPE SECURE ; says plain SSL, no client auth specified
ENDPARMSGROUP ; and negotiate all available encryption algorithms
; ----------------------------------------------------------------------
; The SSLCERTS group is mapped to use SSL security -
; and to require Client Authentication (certificates) -
; NOLUSESSIONPEND = Terminate connection upon a logoff from the appl -
; ----------------------------------------------------------------------
PARMSGROUP SSLCERTS
NOLUSESSIONPEND
CONNTYPE SECURE ; Support SSL
CLIENTAUTH SSLCERT ; Client Certificate required
ENCRYPT SSL_DES_SHA ; use these only, do not consider any others
SSL_3DES_SHA
ENDENCRYPT
ENDPARMSGROUP
; ----------------------------------------------------------------------
; The UP2USER group is mapped to use ANY security (user's choice) -
; with no Client Authentication (no certificates) -
; LUSESSIONPEND = Force a requeue back to the defaultappl upon logoff -
; ----------------------------------------------------------------------
PARMSGROUP UP2USER
LUSESSIONPEND
CONNTYPE ANY ; Whatever User wants to do
ENDPARMSGROUP
MONITORGROUP SNAANDIP
AVERAGE
BUCKETS
DYNAMICDR
INCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 1
BOUNDARY2 2
BOUNDARY3 3
BOUNDARY4 4
ENDMONITORGROUP
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 409
PARMSMAP SSLCERTS DESTIPGRP,PAYROLL
DEFAULTAPPL CICSCLP0 DESTIPGRP,PAYROLL
D.1.3 SC30 TNLUNS30 backup LUNS PROC for LUNS and LUNR scenario
Example D-3 shows the PROC JCL for the backup LUNS TNLUNS30.
Start the TNLUNS30 started task for this scenario by issuing the following command:
S TNLUNS30
410 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
D.1.4 SC30 TNLUNS30 PROFILE for LUNS and LUNR scenario
Example D-4 shows that the profile for the backup LUNS is LUNS30.
D.1.5 SC30 TCPIPA stack PROC for LUNS and LUNR scenario
Example D-5 shows that the PROC JCL for the stack is TCPIPA.
Start the TCPIPA started task for this scenario by issuing the following command:
S TCPIPA
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 411
D.1.6 SC30 TCPIPA stack PROFILE for LUNS and LUNR scenario
The PROFILE for the stack is PROFA30. See Example D-6.
412 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
DEFINE IPAQENET
PORTNAME OSA20A0
IPADDR 10.1.2.12/24
MTU 1492
VLANID 10
VMAC
;
INTERFACE OSA20C0I
DEFINE IPAQENET
PORTNAME OSA20C0
IPADDR 10.1.3.11/24
MTU 1492
VLANID 11
VMAC
;
INTERFACE OSA20E0I
DEFINE IPAQENET
PORTNAME OSA20E0
IPADDR 10.1.3.12/24
MTU 1492
VLANID 11
VMAC
;
;HIPERSOCKETS DEFINITIONS
DEVICE IUTIQDF4 MPCIPA
LINK IUTIQDF4L IPAQIDIO IUTIQDF4
DEVICE IUTIQDF5 MPCIPA
LINK IUTIQDF5L IPAQIDIO IUTIQDF5
DEVICE IUTIQDF6 MPCIPA
LINK IUTIQDF6L IPAQIDIO IUTIQDF6
;
;STATIC VIPA DEFINITIONS
DEVICE VIPA1 VIRTUAL 0
LINK VIPA1L VIRTUAL 0 VIPA1
DEVICE VIPA2 VIRTUAL 0
LINK VIPA2L VIRTUAL 0 VIPA2
;
;DYNAMIC VIPA DEFINITIONS
VIPADYNAMIC
;-------------------------------------------------------------------
; Set up Sysplex Distribution for FTP using BASEWLM algorithm -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.25 ;FTP
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.25 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using ROUNDROBIN -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.21 ;General
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD ROUNDROBIN
10.1.8.21 PORT 992 20 21 23
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using BASEWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.22 ;Admin
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 413
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.22 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPADEFINE MOVE IMMED 255.255.255.0 10.1.8.23 ; Payrol
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.23 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPABACKUP 200 MOVE IMMED 255.255.255.0 10.1.8.24 ; EXTRAS
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.24 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Distribute to 10.1.1.10 via IP routing ( viparoute) -
; Distribute to 10.1.1.20 via normal XCF (no viparoute) -
;-------------------------------------------------------------------
;VIPAROUTE DEFINE 10.1.7.11 10.1.1.10 ; sc30's static vipa
VIPAROUTE DEFINE 10.1.7.21 10.1.1.20 ; sc31's static vipa
ENDVIPADYNAMIC
;
HOME
10.1.1.10 VIPA1L
10.1.2.10 VIPA2L
10.1.4.11 IUTIQDF4L
10.1.5.11 IUTIQDF5L
10.1.6.11 IUTIQDF6L
;
PRIMARYINTERFACE VIPA1L
;
AUTOLOG 5
FTPDA JOBNAME FTPDA1
OMPA
IOASRV
; LPSERVE ; LPD Server
; NAMED ; Domain Name Server
; NCPROUT ; NCPROUTE Server
; OROUTED ; OROUTED Server
; OSNMPD ; SNMP Agent Server
; PORTMAP JOBNAME PORTMAP ; zUNIX Portmap Server (SUN 4.0)
; REXECD ; Remote Execution Server
; SMTP ; SMTP Server
; SNMPQE ; SNMP Client
; TCPIPX25 ; X25 Server
ENDAUTOLOG
;
PORT
; 7 UDP MISCSERV ; Miscellaneous Server - echo
; 7 TCP MISCSERV ; Miscellaneous Server - echo
; 9 UDP MISCSERV ; Miscellaneous Server - discard
; 9 TCP MISCSERV ; Miscellaneous Server - discard
; 19 UDP MISCSERV ; Miscellaneous Server - chargen
414 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; 19 TCP MISCSERV ; Miscellaneous Server - chargen
; 20 TCP * NOAUTOLOG ; FTP Server
20 TCP OMVS NOAUTOLOG ; FTP Server
21 TCP FTPDA1 BIND 10.1.1.10 ;Control port
; 23 TCP INTCLIEN ; MVS Telnet Server
; 1023 TCP INTCLIEN ; MVS Telnet Server
; 23 TCP OMVS BIND 10.1.9.11 ; OE Telnet Server
23 TCP TN3270A ; OE Telnet Server
25 TCP SMTP ; SMTP Server
; 53 TCP NAMED ; Domain Name Server
; 53 UDP NAMED ; Domain Name Server
; 111 TCP PORTMAP ; Portmap Server
; 111 UDP PORTMAP ; Portmap Server
; 123 UDP SNTPD ; Simple Network Time Protocol Server
; 135 UDP LLBD ; NCS Location Broker
; 161 UDP OSNMPD ; SNMP Agent
; 162 UDP SNMPQE ; SNMP Query Engine
; 389 TCP LDAPSRV ; LDAP Server
; 443 TCPmHTTPS ; http protocol over TLS/SSL
; 443 UDP HTTPS ; http protocol over TLS/SSL
500 UDP IKED ; @ADI
; 512 TCP OMVS BIND 9.12.4.212 ; Remote Execution Server
; 514 TCP OMVS BIND 9.12.4.212 ; Remote Execution Server
514 UDP OMVS ; Remote Execution Server
; 515 TCP LPSERVE ; LPD Server
520 UDP OMPROUTE NOAUTOLOG ; OMPROUTE RIPV2 port
521 UDP OMPROUTE NOAUTOLOG ; OMPROUTE RIPV2 port
; 580 UDP NCPROUT ; NCPROUTE Server
; 623 TCP INTCLIEN ; Telnet 3270 Server
; 750 TCP MVSKERB ; Kerberos
; 750 UDP MVSKERB ; Kerberos
; 751 TCP ADM@SRV ; Kerberos Admin Server
; 751 UDP ADM@SRV ; Kerberos Admin Server
; 1933 TCP ILMTSRVR ; IBM LM MT Agent
; 1934 TCP ILMTSRVR ; IBM LM Appl Agent
2000 TCP IOASRV
; 3000 TCP CICSTCP ; CICS Socket
; 3389 TCP MSYSLDAP ; LDAP Server for Msys
4500 UDP IKED ; @ADI
PORTRANGE 10000 2000 TCP OMVS ; TCP 10000 - 11999
PORTRANGE 10000 2000 UDP OMVS ; UDP 10000 - 11999
;
SACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
;
SMFCONFIG TYPE119 TCPINIT TCPTERM TCPIPSTATISTICS TN3270CLIENT
FTPCLIENT
;
START OSA2080I
START OSA2081I
START OSA20A0I
START OSA20C0I
START OSA20E0I
START IUTIQDF4
START IUTIQDF5
START IUTIQDF6
******************************** Bottom of Data ********************************
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 415
D.1.7 SC30 OMPROUTE PROC for LUNS and LUNR scenario
Example D-7 shows the PROC JCL for OMPROUTE.
D.1.8 SC30 OMPROUTE STDENV file for LUNS and LUNR scenario
Example D-8 shows the standard environment variable file for OMPROUTE.
416 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Global_Options
Ignore_Undefined_Interfaces=YES ;
; Static vipa
ospf_interface ip_address=10.1.1.10
name=VIPA1L
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
ospf_interface ip_address=10.1.2.10
name=VIPA2L
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; OSA Qdio 10.1.2.x
ospf_interface ip_address=10.1.2.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=0
attaches_to_area=0.0.0.2
cost0=100
mtu=1492;
;
; OSA Qdio 10.1.3.x
ospf_interface ip_address=10.1.3.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=0
attaches_to_area=0.0.0.2
cost0=100
mtu=1492;
;
; Hipersockets 10.1.4.x
ospf_interface ip_address=10.1.4.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
attaches_to_area=0.0.0.2
cost0=80
mtu=8192;
;
; Hipersockets 10.1.5.x
ospf_interface ip_address=10.1.5.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
attaches_to_area=0.0.0.2
cost0=80
mtu=8192;
;
; Hipersockets 10.1.6.x
ospf_interface ip_address=10.1.6.*
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 417
attaches_to_area=0.0.0.2
cost0=190
mtu=8192;
;
; Dynamic vipa VIPADEFINE
ospf_interface ip_address=10.1.8.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; Dynamic vipa VIPARANGE
ospf_interface ip_address=10.1.9.*
subnet_mask=255.255.255.0
attaches_to_area=0.0.0.2
Advertise_VIPA_Routes=HOST_ONLY
cost0=10
mtu=65535;
;Dynamic XCF
interface ip_address=10.1.7.*
subnet_mask=255.255.255.0
mtu=65535;
D.2.1 SC31 TN3270B Server PROC for LUNS and LUNR scenario
Example D-10 shows the PROC JCL for the TN3270E Telnet server.
418 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//PROFILE DD DISP=SHR,DSN=TCPIPB.TCPPARMS(&PROFILE.)
//SYSTCPD DD DISP=SHR,DSN=TCPIPB.TCPPARMS(&TCPDATA.)
Start the server task for this scenario by issuing the following command:
S TN3270B,PROFILE=TELNB31C
D.2.2 SC31 TN3270B Server PROFILE for LUNS and LUNR scenario
The profile for the TN3270E Telnet server for this scenario is TELNB31C. The naming
convention for the profiles is XXXXyccs:
XXXX is TELN.
y is B for the stack that was used for the examples in this book.
cc is the &SYSCLONE value of this system.
s is a letter that represents the specific scenario (A, B, C, D).
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 419
TELNETDEVICE IBM-3279-4 SNX32704,SNX32704
TELNETDEVICE IBM-3278-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3278-5 SNX32705,SNX32705
TELNETDEVICE IBM-3279-5-E SNX32705,SNX32705
TELNETDEVICE IBM-3279-5 SNX32705,SNX32705
;
ENDTELNETGLOBALS
;
TELNETPARMS
PORT 23
INACTIVE 0
TIMEMARK 600
SCANINTERVAL 120
FULLDATATRACE
SMFINIT 0 SMFINIT NOTYPE119
SMFTERM 0 SMFTERM TYPE119
SNAEXT
MSG07
LUSESSIONPEND
ENDTELNETPARMS
;
BEGINVTAM
PORT 23
SDEFAULTLUS
SHLU01..SHLU04
ENDSDEFAULTLUS
SLUGROUP
SHRGRP99 SH99LU01..SH99LU04
ENDSLUGROUP
MONITORGROUP SNAONLY
AVERAGE
BUCKETS
NODYNAMICDR
NOINCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 1
BOUNDARY2 2
BOUNDARY3 3
BOUNDARY4 4
ENDMONITORGROUP
420 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; previously specified to be accessed.
ENDVTAM
;
TELNETPARMS
SECUREPORT 992 ;Port 992 will support SSL
KEYRING SAF TCPIP/SharedRing1 ;keyring shared by servers
INACTIVE 0
TIMEMARK 600
SCANINTERVAL 120
FULLDATATRACE
SMFINIT 0 SMFINIT NOTYPE119
SMFTERM 0 SMFTERM TYPE119
SNAEXT
MSG07
ENDTELNETPARMS
;
BEGINVTAM
PORT 992
DEFAULTLUS
SC31BS01..SC31BS99
ENDDEFAULTLUS
; ----------------------------------------------------------------------
; This NOSSL group is mapped to use no SSL security. -
; NOLUSESSIONPEND = Terminate connection upon a logoff
; ----------------------------------------------------------------------
PARMSGROUP NOSSL
NOLUSESSIONPEND
CONNTYPE BASIC ; support non-secure, overrides telnetparms
ENDPARMSGROUP
; ----------------------------------------------------------------------
; The SSLPLAIN group is mapped to use SSL security -
; with no Client Authentication required -
; LUSESSIONPEND = Force a requeue back to the USS table upon logoff -
; ----------------------------------------------------------------------
PARMSGROUP SSLPLAIN
LUSESSIONPEND
CONNTYPE SECURE ; says plain SSL, no client auth specified
ENDPARMSGROUP ; and negotiate all available encryption algorithms
; ----------------------------------------------------------------------
; The SSLCERTS group is mapped to use SSL security -
; and to require Client Authentication (certificates) -
; NOLUSESSIONPEND = Terminate connection upon a logoff from the appl -
; ----------------------------------------------------------------------
PARMSGROUP SSLCERTS
NOLUSESSIONPEND
CONNTYPE SECURE ; Support SSL
CLIENTAUTH SSLCERT ; Client Certificate required
ENCRYPT SSL_DES_SHA ; use these only, do not consider any others
SSL_3DES_SHA
ENDENCRYPT
ENDPARMSGROUP
; ----------------------------------------------------------------------
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 421
; The UP2USER group is mapped to use ANY security (user's choice) -
; with no Client Authentication (no certificates) -
; LUSESSIONPEND = Force a requeue back to the defaultappl upon logoff -
; ----------------------------------------------------------------------
PARMSGROUP UP2USER
LUSESSIONPEND
CONNTYPE ANY ; Whatever User wants to do
ENDPARMSGROUP
MONITORGROUP SNAANDIP
AVERAGE
BUCKETS
DYNAMICDR
INCLUDEIP
AVGSAMPPERIOD 120
AVGSAMPMULTIPLIER 5
BOUNDARY1 1
BOUNDARY2 2
BOUNDARY3 3
BOUNDARY4 4
ENDMONITORGROUP
DESTIPGROUP GENERALUSER 10.1.8.21 ENDDESTIPGROUP
DESTIPGROUP ADMIN 10.1.8.22 ENDDESTIPGROUP
DESTIPGROUP PAYROLL 10.1.8.23 ENDDESTIPGROUP
DESTIPGROUP SHIPPING 10.1.1.20 ENDDESTIPGROUP
DESTIPGROUP ANY1ELSE 255.0.0.0:10.0.0.0 ENDDESTIPGROUP
422 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
;------------------------------------------------------------------
ALLOWAPPL SC3* ; Netview and TSO
ALLOWAPPL NVAS* QSESSION ; session mngr queues back upon CLSDST
ALLOWAPPL TSO* DISCONNECTABLE ; Allow all users access to TSO
ALLOWAPPL * ; Allow all applications that have not been
; previously specified to be accessed.
ENDVTAM
;
******************************** Bottom of Data ********************************
D.2.3 SC31 TNLUNS31 primary LUNS PROC for LUNS and LUNR scenario
The PROC JCL for the backup LUNS TNLUNS30 is shown in Example D-12.
Start the TNLUNS31 started task for this scenario by issuing the following command:
S TNLUNS31
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 423
ENDXCFGROUP
TNSACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
ENDTELNETGLOBALS
******************************** Bottom of Data ********************************
D.2.5 SC31 TCPIPB stack PROC for LUNS and LUNR scenario
Example D-14 shows that the PROC JCL for the stack is TCPIPB.
Start the TCPIPB started task for this scenario by issuing the following command:
S TCPIPB
D.2.6 SC31 TCPIPB stack PROFILE for LUNS and LUNR scenario
Example D-15 shows that the PROFILE for the stack is PROFB31.
424 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
IGNOREREDIRECT
DATAGRAMFWD
SYSPLEXROUTING
MULTIPATH PERCONNECTION
PATHMTUDISCOVERY
DYNAMICXCF 10.1.7.21 255.255.255.0 8
;
; possible bufrsizes 16K 32K 64K 128K 256K 512K
TCPCONFIG
FINWAIT2TIME 600 ; in seconds, default = 600
INTERVAL 15 ; in minutes, default = 120
; RESTRICTLOWPORTS ; default = unrestrictlowports
SENDGARBAGE FALSE ; default = false
TCPSENDBFRSIZE 256K ; default = 16K
TCPRCVBUFRSIZE 256K ; default = 16K
TCPMAXRCVBUFRSIZE 512K ; default = 256K
TCPTIMESTAMP ; default = tcptimestamp
NODELAYACKS ; default = delayacks
; TTLS ; default = NOTTLS
;
UDPCONFIG
; RESTRICTLOWPORTS ; default = unrestrictlowports
UDPCHKSUM ; default = udpchksum
UDPSENDBFRSIZE 65535 ; default = 64K
UDPRCVBUFRSIZE 65535 ; default = 64K
NOUDPQUEUELIMIT ; default = udpqueuelimit
;
SMFCONFIG ;
TYPE118 TCPIPSTATISTICS ; default = notcpipstatistics
TYPE119 TCPIPSTATISTICS ; default = notcpipstatistics
NOTCPINIT ; default = notcpinit
NOTCPTERM ; default = notcpterm
FTPCLIENT ; default = noftpclient
TN3270CLIENT ; default = notn3270client
IFSTATISTICS ; default = noifstatistics
PORTSTATISTICS ; default = noportstatistics
TCPSTACK ; default = notcpstack
NOUDPTERM ; default = noudpterm
; ----------------------------------------------------------------------
AUTOLOG 5
OMPB
FTPDB
INETDB
; LPSERVEB
; RXSERVE
SENDMAIL
SNMPDB
SNMPOSAB
SNMPQEB
TRAPFWDB
RPCBIND JOBNAME RPCBIND1
ENDAUTOLOG
; ----------------------------------------------------------------------
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 425
;INTERFACE OSA20x0I DEFINE IPAQENET (OSA-E) PORTNAME OSA20x0
;TRL MAJ NODE: OSA2080,OSA20A0,OSA20C0,AND OSA20E0
;
INTERFACE OSA2080I
DEFINE IPAQENET
PORTNAME OSA2080
IPADDR 10.1.2.21/24
MTU 1492
VLANID 10
VMAC
;
INTERFACE OSA20A0I
DEFINE IPAQENET
PORTNAME OSA20A0
IPADDR 10.1.2.22/24
MTU 1492
VLANID 10
VMAC
;
INTERFACE OSA20C0I
DEFINE IPAQENET
PORTNAME OSA20C0
IPADDR 10.1.3.21/24
MTU 1492
VLANID 11
VMAC
;
INTERFACE OSA20E0I
DEFINE IPAQENET
PORTNAME OSA20E0
IPADDR 10.1.3.22/24
MTU 1492
VLANID 11
VMAC
;
;HiperSockets definitions
DEVICE IUTIQDF4 MPCIPA
LINK IUTIQDF4L IPAQIDIO IUTIQDF4
DEVICE IUTIQDF5 MPCIPA
LINK IUTIQDF5L IPAQIDIO IUTIQDF5
DEVICE IUTIQDF6 MPCIPA
LINK IUTIQDF6L IPAQIDIO IUTIQDF6
; Static VIPA definitions -
DEVICE VIPA1 VIRTUAL 0
LINK VIPA1L VIRTUAL 0 VIPA1
;
VIPADYNAMIC
;-------------------------------------------------------------------
; Set aside some addresses for use with BIND and SIOCSVIPA IOCTL -
; (10.1.9.21 thru 10.1.9.24) -
;-------------------------------------------------------------------
VIPARANGE define move nondisrupt 255.255.255.0 10.1.9.0
;-------------------------------------------------------------------
426 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
; Set up Sysplex Distribution for FTP using BASEWLM algorithm -
;-------------------------------------------------------------------
VIPABACKUP MOVE IMMED 255.255.255.0 10.1.8.25 ;FTP
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.25 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using ROUNDROBIN -
;-------------------------------------------------------------------
VIPABACKUP MOVE IMMED 255.255.255.0 10.1.8.21 ;General
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD ROUNDROBIN
10.1.8.21 PORT 992 20 21 23
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using BASEWLM -
;-------------------------------------------------------------------
VIPABACKUP MOVE IMMED 255.255.255.0 10.1.8.22 ;Admin
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD BASEWLM
10.1.8.22 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPABACKUP MOVE IMMED 255.255.255.0 10.1.8.23 ; Payrol
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.23 PORT 992 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Set up Sysplex Distribution for using SERVERWLM -
;-------------------------------------------------------------------
VIPADEFINE 200 MOVE IMMED 255.255.255.0 10.1.8.24 ; EXTRAS
VIPADISTRIBUTE DEFINE SYSPLEXPORTS DISTMETHOD SERVERWLM
10.1.8.24 PORT 20 21
DESTIP 10.1.7.11
10.1.7.21
;-------------------------------------------------------------------
; Distribute to 10.1.1.10 via IP routing ( viparoute) -
; Distribute to 10.1.1.20 via normal XCF (no viparoute) -
;-------------------------------------------------------------------
VIPAROUTE DEFINE 10.1.7.11 10.1.1.10 ; sc30's static vipa
;;VIPAROUTE DEFINE 10.1.7.21 10.1.1.20 ; sc31's static vipa
ENDVIPADYNAMIC
;
;
HOME
10.1.1.20 VIPA1L
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 427
10.1.4.21 IUTIQDF4L
10.1.5.21 IUTIQDF5L
10.1.6.21 IUTIQDF6L
;
PRIMARYINTERFACE VIPA1L
;
PORT
7 UDP MISCSRVB ; Miscellaneous Server - echo
7 TCP MISCSRVB ; Miscellaneous Server - echo
9 UDP MISCSRVB ; Miscellaneous Server - discard
9 TCP MISCSRVB ; Miscellaneous Server - discard
19 UDP MISCSRVB ; Miscellaneous Server - chargen
19 TCP MISCSRVB ; Miscellaneous Server - chargen
20 TCP OMVS ; FTP Server
21 TCP FTPDB1 ; control port
; 21 TCP FTPDB1 bind 10.1.9.11 ; control port
; 23 TCP OMVS BIND 10.1.9.23 ; OE Telnet Server D-VIPA
23 TCP TN3270B NOAUTOLOG ; BIND 10.1.8.21
; 23 TCP TNLUNS31 NOAUTOLOG BIND 10.1.1.20
; 25 TCP SMTPB ; SMTP Server
; 25 TCP SENDMAIL ; Portmap Server
53 TCP OMVS ; Domain Name Server
53 UDP OMVS ; Domain Name Server
110 TCP INETDB1 ; Portmap Server
111 TCP RPCBIND1 ; Portmap Server
111 UDP RPCBIND1 ; Portmap Server
; 123 UDP SNTPD ; Simple Network Time Protocol Server
; 135 UDP LLBD ; NCS Location Broker
161 UDP SNMPDB ; SNMP Agent
162 UDP SNMPQEB ; SNMP Query Engine
; 389 TCP LDAPSRV ; LDAP Server
; 443 TCP HTTPS ; http protocol over TLS/SSL
; 443 UDP HTTPS ; http protocol over TLS/SSL
; 512 TCP OMVS BIND 10.1.9.22 ; UNIX REXECD D-VIPA
; 514 TCP OMVS BIND 10.1.9.22 ; UNIX RSHD D-VIPA
512 TCP RXSERVEB ; TSO REXECD
514 TCP RXSERVEB ; TSO RSHD
515 TCP LPSERVEB ; LPD Server
520 UDP OMPB NOAUTOLOG ; OMPROUTE
; 580 UDP NCPROUT ; NCPROUTE Server
722 TCP CS* ; For LPR printing by users CSxx
723 TCP CS* ; For LPR printing by users CSxx
724 TCP CS* ; For LPR printing by users CSxx
725 TCP CS* ; For LPR printing by users CSxx
726 TCP CS* ; For LPR printing by users CSxx
727 TCP CS* ; For LPR printing by users CSxx
728 TCP CS* ; For LPR printing by users CSxx
729 TCP CS* ; For LPR printing by users CSxx
730 TCP CS* ; For LPR printing by users CSxx
731 TCP CS* ; For LPR printing by users CSxx
750 TCP MVSKERBB ; Kerberos
750 UDP MVSKERBB ; Kerberos
751 TCP ADM@SRVB ; Kerberos Admin Server
751 UDP ADM@SRVB ; Kerberos Admin Server
992 TCP TN3270B NOAUTOLOG ; Secure TN3270 via internal SSL
428 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
4992 TCP TN3270B NOAUTOLOG ; Secure TN3270 via AT-TLS
;
; Used for Netview - needed for AON
SACONFIG ENABLED COMMUNITY j0s9m2ap AGENT 161
ITRACE OFF
START OSA2080I
START OSA20A0I
START OSA20C0I
START OSA20E0I
START IUTIQDF4
START IUTIQDF5
START IUTIQDF6
;
******************************** Bottom of Data ********************************
D.2.8 SC31 OMPROUTE STDENV file for LUNS and LUNR scenario
Example D-17 shows the standard environment variable file for OMPROUTE.
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 429
D.2.9 SC31 OMPROUTE CONFIG for LUNS and LUNR scenario
The config for OMPROUTE is OMPB31 See Example D-18.
430 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
subnet_mask=255.255.255.0
ROUTER_PRIORITY=1
attaches_to_area=0.0.0.2
cost0=80
mtu=8192;
; Dynamic vipa VIPADEFINE
ospf_interface ip_address=10.1.8.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; Dynamic vipa VIPARANGE
ospf_interface ip_address=10.1.9.*
subnet_mask=255.255.255.0
Advertise_VIPA_Routes=HOST_ONLY
attaches_to_area=0.0.0.2
cost0=10
mtu=65535;
;
; Dynamic XCF
interface ip_address=10.1.7.*
subnet_mask=255.255.255.0
mtu=65535;
;
Appendix D. Multiple TN3270E Telnet servers and sysplex distribution using the LUNS and LUNR scenario 431
432 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
E
Section Topic
Stop or
modify
command
HFS
FTP.DATA files MVS
data sets
FTPDn
connect( ) connect( )
Client 1 Client 2
434 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
When a new FTP client connects to the FTPD daemon process, the FTP daemon forks
another address space that uses the execv() services to start the connection-specific server
program, the ftpdns program. When the FTP daemon process forks an FTP server process, a
new job name is generated by z/OS UNIX. If the original job name is less than 8 characters,
z/OS UNIX adds a digit between 1 and 9. At TCP/IP startup, this digit will always be a 1. So in
most cases, the FTP daemon address space would be named FTPD1. If your original job
name is 8 characters, z/OS UNIX uses the same job name for the background job. Similarly,
every instance of the FTP server address space will have a name generated by z/OS UNIX.
See z/OS UNIX System Services Planning, GA22-7800, for details about how job names are
generated in z/OS UNIX.
Because each client gets associated with its own copy of the FTP server, each client can set
its own translation parameters and does not adversely affect the other client/server sessions
in effect.
To cover all requirements, the FTP protocol implements a SITE command, which enables an
FTP client to send embedded parameters to the FTP server over the control connection. See
Figure E-2.
z/OS
SITE parameters
Default SITE
FTP Client FTP parameters
Server
PUT a file
HFS file or
MVS data set
When an FTP client issues a put to transfer a file to the z/OS FTP server, the FTP server
needs specific parameters to allocate a data set. These parameters include record format
(RECFM), record length (LRECL), unit-type (UNIT), and blocksize (BLKSIZE), plus many
others, depending on the specific operation requested. The FTP server has a set of default
values for all the parameters it might need.
z/OS
Default
LOCSITE FTP Client FTP
parameters
GET a file
Server
HFS file or
MVS data set
If you use the z/OS FTP client function and retrieve a file from an FTP server somewhere in
your IP network, the FTP client function also needs a set of parameters similar to those of the
z/OS FTP server. These values allocate a data set in MVS. Again a set of default values
exists for the z/OS FTP client, but you can change these using the LOCSITE command.
For the FTP client, the default LOCSITE parameters are specified in an installation-wide
default configuration data set, or in a user-specific configuration data set. For the FTP server,
the default SITE parameters are specified in an FTP server configuration data set.
The FTP client function searches for a configuration data set that contains the wanted default
parameters. The search order is described in z/OS Communications Server: IP Configuration
Guide, SC27-3650.
If none of these data sets are found, the FTP client uses a set of hardcoded default values for
the local SITE parameters.
If a user needs to use a different setup, that user can make a temporary modification by using
the LOCSITE command. A permanent modification can be made by creating a
userid.FTP.DATA configuration data set. Review the hlq.SEZAINST(FTCDATA) sample
member for client SITE parameters.
Note: Not all SITE parameters can be specified in the FTP.DATA file and not all parameters
specified in the FTP.DATA file can be changed with SITE or LOCSITE commands.
For details about the SITE, LOCSITE, and FTP.DATA client statement parameters, see z/OS
Communications Server: IP User’s Guide and Commands, SC27-3662.
436 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Default FTP Server SITE parameters (FTPDATA)
The FTP server uses a set of default SITE parameters.
When a client connects to the z/OS FTP server, the default SITE parameters become the
actual SITE parameters for that FTP session, unless the client during the session changes
them by using an FTP client SITE command.
Note: Some systems do not support the SITE command. To pass the SITE parameters to
MVS, the user has to enter the QUOTE command in front of SITE. For example, to pass
the RECFM=U parameter to MVS, the user might have to type the following command:
quote site recfm=u
During startup, the server looks for your default SITE parameters in an FTP configuration data
set. The search order for FTP.DATA for the server is documented in z/OS Communications
Server: IP Configuration Guide, SC27-3650.
The search step for FTP.DATA that uses a job name as high-level qualifier will use the original
job name and not the z/OS UNIX generated FTP daemon job name. This original job name is
used to search for both FTP.DATA and translation tables, for example FTPD.FTP.DATA and
FTPD.STANDARD.TCPXLBIN. If the ftpd daemon program is started from the z/OS UNIX
shell, these search steps use the user ID of the process that started the listener program or
the value of the _BPX_JOBNAME environment variable. The datasetprefix used in the last
search step comes from the z/OS UNIX resolver configuration file. In the example setup, this
is the SYSTCPD DD statement. If none of these data sets are found, the server uses a set of
hardcoded default values.
Review the hlq.SEZAINST(FTPSDATA) sample member for server site parameters. Also,
review the z/OS Communications Server: IP Configuration Reference, SC27-3651, for details
about the FTP.DATA configuration statements.
In a z/OS FTP client session, the user can select the DBCS translation by using the DBCS
subcommands of the FTP client function. Similarly, the user can issue FTP subcommands to
select Unicode data transfer and conversion to and from EBCDIC.
The z/OS FTP server accepts the TYPE subcommand with parameters that can specify
DBCS or Unicode translation for the data transfer.
For SBCS translation, the z/OS FTP client user selects a translate table by using the FTP
command line keyword TRANSLATE. The z/OS FTP server then accepts a SITE command
with a translate table name from a remote FTP client.
A user selects DBCS tables independently of SBCS tables. If a remote FTP client wants to
transfer a mixed-mode data stream (a data stream that consists of both DBCS and SBCS
data sections intermixed with shift-in and shift-out control characters), the user has to select a
DBCS translation table using an FTP TYPE command. The user can change an SBCS
translation table using a SITE SBDATACONN command. The user can use the selected
DBCS table to translate the DBCS sections and the SBCS table to translate the SBCS
sections of the mixed-mode data stream.
Both the FTP server and the FTP client allow the use of separate SBCS translation tables for
the data connection and the control connection.
If you use the FTP client and want to change the code pages of the client, you have to use the
LOCSITE FTP subcommand instead of the SITE subcommand.
The FTP protocol deals to a great extent with these issues. However, you, as a user of this
protocol, have to select the proper options to let FTP transfer a file in such a way that it is
usable on the receiving system.
438 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
FTP always transfers data in 8-bit bytes. This is called the transfer size. If the sending or
receiving system uses another byte length, it is up to the FTP client and the FTP server to
implement the proper conversion between local byte sizes and the FTP transfer size. When
FTP transfers ASCII data, it always transfers it in 8-bit bytes. The bits are used to encode the
ASCII character according to a specific ASCII standard, which is called NVT-ASCII (Network
Virtual Terminal ASCII as defined in the TELNET protocol). This implies that when you
transfer ASCII type data between two ASCII hosts, a translation from the local ASCII
representation to NVT-ASCII for transmission and back to the receiving hosts local ASCII
representation always takes place.
When MVS is involved in an ASCII type transfer, MVS translates the received NVT-ASCII into
EBCDIC, and translate data to be transmitted from EBCDIC into NVT-ASCII.
When you request an FTP file transfer, you can characterize the transfer by using the TYPE
attributes. The TYPE attribute is used in the official sources is data type, but you might also
see the term transfer type or representation type. Data type is used to signal how the bits of
the transmitted data should be interpreted by the receiver.
The data type normally has a value of ASCII, DBCS, or Unicode. ASCII is described here.
When you set the data type to ASCII, the receiver knows that the data is character data and
that each line of data is terminated using a control sequence of carriage return-line feed
(CRLF), which in ASCII is X'0D0A'. If MVS is the receiving side, data is translated from
NVT-ASCII to EBCDIC and the CRLF sequences are removed from the data stream and
substituted by traditional MVS record boundaries according to the current settings of the
SITE/LOCSITE parameters: RECFM and LRECL. If RECFM is fixed, the data records are
padded with extra spaces to fill up a record. If MVS is the sending side, the data is translated
from EBCDIC into NVT-ASCII and, based on existing record boundaries, CRLF sequences
are constructed and inserted into the ASCII data stream.
A data type of ASCII is the default data type in all FTP implementations.
RFC 2640 requires you to code an EXTENSIONS UTF8 statement in your server and clients
FTP.DATA
After UTF-8 has been negotiated between client and server, the STAT command will indicate
that UTF-8 is active on the control connection. Example E-2 shows the results of a successful
UTF-8 negotiation.
440 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
211-ASA control characters in ASA files opened for text processing
211-will be transferred as ASA control characters.
211-Trailing blanks are removed from a fixed format
211-data set when it is retrieved.
If you specify an invalid parameter or the FTP server cannot support the specified translation
table, you see the error message that is shown in Example E-4.
If the LOADDBCSTABLES statement is not specified in the TCPIP.DATA file that is allocated
for the FTP server, or the proper code pages are not specified to the LOADDBCSTABLES
statement, the attempt fails and the client receives the message shown in Example E-6.
442 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
EZY2720I Using Japanese translation tables in 'TCP.STANDARD.TCPKJBIN' 4
444 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
PC0296 parseCmd: parameter 1 is (notype
PC0486 fndCmd: entering with sjiskanji.
PC0568 fndCmd: Command found is sjiskanji
PC0305 parseCmd: fndCmd returned the cmdrecord for sjiskanji
PC0386 parseCmd: Using primary session
CT2205 sjiskj: routine entered with parmcount=2
NC1017 get_client_dbcs_table() entered for lang type 1
NC1053 trying to open DBCS file //'KAKKY.FTP.TCPKJBIN' 2
NC1079 fopen failed for //'KAKKY.FTP.TCPKJBIN'.
EDC5049I The specified name could not be located.
NC1053 trying to open DBCS file //'TCP.FTP.TCPKJBIN' 2
NC1079 fopen failed for //'TCP.FTP.TCPKJBIN'.
EDC5049I The specified file could not be located.
NC1053 trying to open DBCS file //'KAKKY.STANDARD.TCPKJBIN' 2
NC1079 fopen failed for //'KAKKY.STANDARD.TCPKJBIN'.
EDC5049I The specified file name could not be located.
NC1053 trying to open DBCS file //'TCP.STANDARD.TCPKJBIN' 2
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1816 read_db_table() ... checking table header
NC1817 byte1 is 00 and byte2 is 00
NC1061 Using Japanese translation tables in 'TCP.STANDARD.TCPKJBIN' 3
CT0334 entering cliDBOptopns() for newftpoptformat=0, parmcount=2
CT0711 cliDBOpt: no cmd sent to server
PC0452 parseCmd: Using primary session.
EZA1460I Command:
Verify the server status by using the STAT FTP subcommand. The output shown in
Example E-12 is part of the output from the STAT subcommand.
If you want to use the z/OS FTP client in Unicode transfer type, issue the UCS2 FTP
subcommand and optionally the LOCSITE subcommand with UCS* parameters before
starting the file transfer. You can also verify the status of the FTP client with the LOCSTAT
FTP subcommand.
446 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
F
z/OS LPAR: A12 z/OS LPAR: A13 z/OS LPAR: A14 z/OS LPAR: A15
HiperSockets
CHPID F4 Devices E800-E81F IPADDR 10.1.4.x
CHPID F5 Devices E900-E91F IPADDR 10.1.5.x
CHPID F6 Devices EA00-EA1F IPADDR 10.1.6.x
CHPID F7 Devices EB00-EB1F (DYNAMICXCF) IPADDR 10.1.7.x
CF38 CF39
CF LPAR: A2E CF LPAR: A2F
10.1.x.x
Switch
192.168.x.x
10.1.x.240
Windows XP
with PCOM
We wrote our books (and ran our implementation scenarios) using four logical partitions
(LPARs) on an IBM z13™ (referred to as LPARs A12, A13, A14, and A15). We implemented
and started one TCP/IP stack on each LPAR. Each LPAR shared the following resources:
HiperSockets inter-server connectivity
Coupling facility connectivity (CF38 and CF39) for Parallel Sysplex scenarios
Eight OSA-Express 1000BASE-T Ethernet ports connected to a switch
Finally, we shared four Windows workstations, representing corporate network access to the
z/OS networking environment. The workstations were connected to the switch. For verifying
scenarios, we used applications such as TN3270 and FTP.
The IP addressing scheme that we used allowed us to build multiple subnetworks so that we
would not impede ongoing activities from other team members.
448 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
VLANs were also defined to isolate the TCP/IP stacks and portions of the LAN environment
(Figure F-2).
VLAN 10 VLAN 11
10.1.2.240 10.1.3.240
VLAN 12
192.168.2.240
R
Switch
10.1.100.240
VLAN 30
XCF
10.1.7.x1
VLAN 10 VLAN 11
10.1.2.240 10.1.3.240
SWITCH
450 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
Related publications
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this book.
IBM Redbooks
The following IBM Redbooks publications provide additional information about the topic in this
document. Note that some publications referenced in this list might be available in softcopy
only.
High Availability Considerations: SAP R/3 on DB2 for OS, SG24-2003
IBM HiperSockets Implementation Guide, SG24-6816
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 1 Base
Functions, Connectivity, and Routing, SG24-8360
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 3 High
Availability, Scalability, and Performance, SG24-8362
IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 4 Security and
Policy-Based Networking, SG24-8363
IP Network Design Guide, SG24-2580
Migrating Subarea Networks to an IP Infrastructure Using Enterprise Extender,
SG24-5957
OSA-Express Implementation Guide, SG24-5948
SNA in a Parallel Sysplex Environment, SG24-2113
TCP/IP Tutorial and Technical Overview, GG24-3376
z/OS 1.6 Security Services Update, SG24-6448
You can search for, view, download or order these documents and other Redbooks,
Redpapers, Web Docs, draft and additional materials, at the following website:
ibm.com/redbooks
Other publications
These publications are also relevant as further information sources:
sendmail, 4th Edition by Costales, Assmann, Jansen, Shapiro, from O’Reilly Media, Inc.
termcap & terminfo, by Mui, O'Reilly, Stran, from O’Reilly Media, Inc.
OSA-Express Customer’s Guide and Reference, SA22-7935
z/OS Communications Server: CSM Guide, SC31-8808
z/OS Communications Server: IP and SNA Codes, SC31-8791
z/OS Communications Server: IP Configuration Guide, SC27-3650
z/OS Communications Server: IP Configuration Reference, SC27-3651
Online resources
These websites are also relevant as further information sources:
Mainframe networking
http://www.ibm.com/servers/eserver/zseries/networking/
z/OS Communications Server support
http://www.ibm.com/software/network/commserver/zos/support/
z/OS Communications Server product overview
http://www.ibm.com/software/network/commserver/zos/
452 IBM z/OS V2R2 Communications Server TCP/IP Implementation: Volume 2 Standard Applications
z/OS Communications Server publications
http://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.cs3/cs
3.htm
SG24-8361-00
ISBN 0738441945
Printed in U.S.A.
®
ibm.com/redbooks