Table of Contents (exploded view)
Abstract for IP IMS Sockets Guide
Summary of changes for z/OS Version 2 Release 1
Using TCP/IP in the IMS environment
The role of IMS TCP/IP
IMS TCP/IP feature components
The IMS Listener
The IMS Assist module
The MVS TCP/IP socket application programming interface (Sockets Extended)
IMS TCP/IP
Using IMS with SNA or TCP/IP
TCP/IP internets
Mainframe interactive processing
Client/server processing
TCP, UDP, and IP
The socket API
Programming with sockets
Socket types
Addressing TCP/IP hosts
Address families
Socket addresses
IP addresses
Ports
Domain names
Network byte order
A typical client/server program flow chart
Concurrent and iterative servers
The basic socket calls
Server TCP/IP calls
Server SOCKET call
Server BIND call
Server LISTEN call
Server ACCEPT call
Server GIVESOCKET and TAKESOCKET calls
Server READ and WRITE calls
Client TCP/IP calls
Client SOCKET call
Client CONNECT call
Client Read/Write calls — the conversation
Client CLOSE call
Other socket calls
The SELECT call
IOCTL and FCNTL calls
GIVESOCKET and TAKESOCKET calls
Summary of passing the socket process
What you need to run IMS TCP/IP
A summary of what IMS TCP/IP provides
Principles of operation of the Listener and the Assist module
Overview of the Listener and the Assist module
The role of the IMS Listener
The role of the IMS Assist module
Pros and cons for the use of the IMS Assist module
Client/server logic flow
How the connection is established
How the server exchanges data with the client
Explicit-mode transactions
Implicit-mode transactions
How the IMS Listener manages multiple connection requests
Use of the IMS message queue
Input messages
Output messages
Call sequence for the IMS Listener
Application design considerations
Programs that are not started by the IMS Listener
When the client is an IMS MPP
Abend processing
True abends
Pseudo abends
Implicit-mode support for ROLB processing
Restrictions for operation of the Listener and the Assist module
How to write an IMS TCP/IP client program
General client program logic flow
Explicit-mode client program logic flow
Explicit-mode client call sequence
Explicit-mode application data
Format
Data translation
Network byte order
End-of-message indicator
Implicit-mode client logic flow
Implicit-mode client call sequence
Implicit-mode application data stream
Client-to-server data stream
Server-to-client data stream
Implicit-mode application data
Format
Data translation
End-of-message segment
IMS TCP/IP message segment formats
Transaction-request message segment (client to Listener)
Request-status message segment
Request-status message reason codes
Complete-status message segment
End-of-message segment (EOM)
PL/I coding
How to write an IMS TCP/IP server program
General server program logic flow
Explicit-mode server program logic flow
Explicit-mode call sequence
Explicit-mode application data
Format
EBCDIC and ASCII data translation
Transaction-initiation message segment
Program design considerations
I/O PCB explicit-mode server
Status codes
Explicit-mode server PL/I programming considerations
Implicit-mode server program logic flow
Implicit-mode server call sequence
Implicit-mode application data
Format
Data translation
End-of-message segment
Programming to the Assist module interface
Implicit-mode server PL/I programming considerations
Implicit-mode server C language programming considerations
I/O PCB implicit-mode server
Status codes
How to customize and operate the IMS Listener
How to start the IMS Listener
How to stop the IMS Listener
The IMS Listener configuration file
TCPIP statement
LISTENER statement
TRANSACTION statement
The IMS Listener security exit
TCP/IP services definitions
The hlq.PROFILE.TCPIP data set
The hlq.TCPIP.DATA data set
CALL instruction application programming interface
CALL instruction API environmental restrictions and programming requirements
CALL instruction API output register information
CALL instruction API compatibility considerations
CALL instruction application programming interface (API)
Understanding COBOL, Assembler, and PL/I call formats
COBOL language call format
Assembly language call format
PL/I language call format
Converting parameter descriptions
Diagnosing problems in applications using the CALL instruction API
CALL instruction API error messages and return codes
Code CALL instructions
ACCEPT
Parameter values set by the application
Parameter values returned to the application
BIND
Parameter values set by the application
Parameter values returned to the application
BIND2ADDRSEL
Parameter values set by the application
Parameter values returned to the application
CLOSE
Parameter values set by the application
Parameter values returned to the application
CONNECT
Stream sockets
UDP sockets
Parameter values set by the application
Parameter values returned to the application
FCNTL
Parameter values set by the application
Parameter values returned to the application
FREEADDRINFO
Parameter values set by the application
Parameter values returned to the application
GETADDRINFO
Parameter values set by the application
GETCLIENTID
Parameter values set by the application
Parameter values returned to the application
GETHOSTBYADDR
Parameter values set by the application
Parameter values returned to the application
GETHOSTBYNAME
Parameter values set by the application
Parameter values returned to the application
GETHOSTID
Parameter values set by the application
GETHOSTNAME
Parameter values set by the application
Parameter values returned to the application
GETIBMOPT
Parameter values set by the application
Parameter values returned to the application
GETNAMEINFO
Parameter values set by the application
GETPEERNAME
Parameter values set by the application
Parameter Values Returned to the Application
GETSOCKNAME
Parameter values set by the application
Parameter values returned to the application
GETSOCKOPT
Parameter values set by the application
Parameter values returned to the application
GIVESOCKET
Parameter values set by the application
Parameter values returned to the application
INET6_IS_SRCADDR
Parameter values set by the application
Parameter values returned to the application
INITAPI
Parameter values set by the application
Parameter values returned to the application
IOCTL
Parameter values set by the application
Parameter values returned to the application
LISTEN
Parameter values set by the application
Parameter values returned to the application
NTOP
Parameter values set by the application
Parameter values returned to the application
PTON
Parameter values set by the application
Parameter values returned to the application
READ
Parameter values set by the application
Parameter values returned to the application
READV
Parameter values set by the application
Parameter values returned to the application
RECV
Parameter values set by the application
Parameter values returned to the application
RECVFROM
Parameter values set by the application
Parameter values returned to the application
RECVMSG
Parameter values set by the application
Parameter values returned to the application
SELECT
Defining which sockets to test
Read operations
Write operations
Exception operations
MAXSOC parameter
TIMEOUT parameter
Parameter values set by the application
Parameter values returned to the application
SELECTEX
Defining which sockets to test
Read operations
Write operations
Exception operations
MAXSOC parameter
TIMEOUT parameter
Parameter values set by the application
Parameter values returned to the application
SEND
Parameter values set by the application
Parameter values returned to the application
SENDMSG
Parameter values set by the application
Parameter values returned to the application
SENDTO
Parameter values set by the application
Parameter values returned to the application
SETSOCKOPT
Parameter values set by the application
Parameter values returned to the application
SHUTDOWN
Parameter values set by the application
Parameter values returned to the application
SOCKET
Parameter values set by the application
Parameter values returned to the application
TAKESOCKET
Parameter values set by the application
Parameter values returned to the application
TERMAPI
Parameter values set by the application
WRITE
Parameter values set by the application
Parameter values returned to the application
WRITEV
Parameter values set by the application
Parameters returned by the application
Using data translation programs for socket call interface
Assembly language utility programs call format
Data translation
Bit-string processing
EZACIC04
EZACIC05
EZACIC06
EZACIC08
EZACIC09
EZACIC14
EZACIC15
Call interface sample programs
Sample code for IPv4 server program
Sample program for IPv4 client program
Sample code for IPv6 server program
Sample program for IPv6 client program
Common variables used in PL/I sample programs
Common variables used in COBOL sample programs
COBOL call interface sample IPv6 server program
COBOL call interface sample IPv6 client program
IMS Listener samples
IMS TCP/IP control statements
JCL for starting a message processing region
JCL for linking the IMS Listener
EZAIMSCZ JCLIN
EZAIMSPL JCLIN
Listener IMS definitions
PSB definition
Application definition
Sample program explicit-mode
Sample explicit-mode program flow
Sample explicit-mode client program (C language)
Sample explicit-mode server program (Assembly language)
Sample program implicit-mode
Sample implicit-mode program flow
Sample implicit-mode client program (C language)
Sample implicit-mode server program (Assembly language)
Sample program - IMS MPP client
Sample IMS MPP client program flow
Sample client program for non-IMS server
Sample server program for IMS MPP client
WTO output from sample program
Return codes
Sockets return codes (ERRNOs)
Related protocol specifications
Accessibility
Bibliography
Index for Communications Server: IP IMS Sockets Guide
Communicating your comments to IBM