CICS Family Interproduct Communication
CICS Family Interproduct Communication
CICS Family Interproduct Communication
Interproduct Communication
SC34-6267-00
CICS Family
Interproduct Communication
SC34-6267-00
Note!
Before using this information and the products it supports, be sure to read the general information under Notices on page
73.
Summary of changes . . . . . . . . . . . . . . . . . . . . . . ix
Changes for the ninth edition . . . . . . . . . . . . . . . . . . . . ix
Changes for the eighth edition . . . . . . . . . . . . . . . . . . . ix
Changes for the seventh edition . . . . . . . . . . . . . . . . . . . ix
Changes for the sixth edition . . . . . . . . . . . . . . . . . . . . ix
Changes for the fifth edition . . . . . . . . . . . . . . . . . . . . ix
Changes for the fourth edition . . . . . . . . . . . . . . . . . . . . x
iv Interproduct Communication
Data retrieval by a started transaction . . . . . . . . . . . . . . . 55
Terminal acquisition by a remotely-initiated CICS transaction . . . . . . . 56
System programming considerations . . . . . . . . . . . . . . . . . 56
Asynchronous processing example (with NOCHECK) . . . . . . . . . . . 57
Part 3. Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . 69
CICS Family intercommunication books . . . . . . . . . . . . . . . . 69
CICS on System/390 intercommunication books. . . . . . . . . . . . . 69
| CICS Transaction Server for z/OS Version 2 Release 3 . . . . . . . . . 69
CICS Transaction Server for z/OS Version 2 Release 2 . . . . . . . . . 69
CICS Transaction Server for OS/390 Release 3 . . . . . . . . . . . . 69
CICS Transaction Server for VSE/ESA Release 1.1.1 . . . . . . . . . . 69
CICS/VSE Version 2 . . . . . . . . . . . . . . . . . . . . . . 69
CICS non-System/390 intercommunication books . . . . . . . . . . . . 69
CICS Transaction Gateway and CICS Universal Clients . . . . . . . . . . 69
Non-CICS books . . . . . . . . . . . . . . . . . . . . . . . . 69
SNA books . . . . . . . . . . . . . . . . . . . . . . . . . 69
Determining if a publication is current . . . . . . . . . . . . . . . . 70
Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . 71
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Contents v
vi Interproduct Communication
Preface
What this book is about
This book introduces the subject of intercommunication between CICS family
members. It shows what functions are available, and how the systems are
configured.
Important: These are generic terms for subsets of CICS products. Their meanings
are defined in Terminology.
Terminology
Throughout this book, when the term CICS is used without specifying any
particular product or version level, it can be taken as a generic term for all the CICS
family products.
In this book, the term System/390 is used to refer to any System/370, System/390,
or zSeries computer on which one of the above products can run. The term
non-System/390 refers to the hardware platforms used by other CICS
productsfor example, iSeries (used by CICS/400), IBM-compatible personal
In statements that apply to each of the CICS products that runs on a System/390
hardware platform, the generic term CICS on System/390 is used to represent all
of them. One of these CICS products is referred to by name only if there is a
difference in its interface to non-System/390 products as compared with the
interface from other System/390 products. Subject to explicitly-stated exceptions,
interpret all references to CICS as applying to your CICS on System/390 product.
The term CICS Transaction Server for z/OS, without a qualifying Version number, is
used as a generic term for:
| v CICS Transaction Server for z/OS Version 2 Release 3
v CICS Transaction Server for z/OS Version 2 Release 2
| The term CICS Transaction Server for OS/390, without a qualifying Version number,
| refers to CICS Transaction Server for OS/390 Release 3.
| The term CICS Transaction Server for Windows, without a qualifier, means CICS
| Transaction Server for Windows, Version 5.0.
The term CICS Transaction Server for VSE/ESA means CICS Transaction Server
for VSE/ESA Release 1.1.1.
This part lists briefly the changes that have been made for the following editions:
There was a new chapter, Chapter 5, Configuring CICS for SNA communications,
on page 17, which introduced the concepts and practice of configuring CICS for
SNA communications.
x Interproduct Communication
Part 1. Introduction to CICS interproduct communication
This part includes the following chapters:
v Chapter 1, CICS interproduct communication, on page 3 introduces CICS
interproduct communication, and describes the documentation plan used for each
CICS product.
v Chapter 2, CICS communication support, on page 5 describes the CICS
intercommunication functions, and shows what functions are supported between
any pair of CICS systems.
v Chapter 3, CICS Clients, on page 11 introduces the CICS client products, and
shows what functions are supported with each CICS server.
v Chapter 4, Data conversion, on page 15 explains why data conversion is
necessary, explaining its concepts and terminology.
v Chapter 5, Configuring CICS for SNA communications, on page 17 introduces
the concepts and practice of system configuration for SNA communications.
The configurations with all the CICS products, and the associated documentation,
are shown in Figure 1 on page 4. This shows each CICS product in communication
with another product of the same type, and then all products being interconnected.
The highlighted numbers in the figure refer to the following manuals:
1. CICS on System 390 Intercommunication Guide. (This means the
Intercommunication Guide for your CICS on System/390 product.)
2. CICS Family: Communicating from CICS on System/390
| 3. CICS TS for Windows, Intercommunication
4. CICS on Open Systems Intercommunication Guide
5. CICS/400 Intercommunication
The order numbers of these manuals are listed in Bibliography on page 69.
half-session
SESSION
half-session
half-session half-session
SESSION
half-session
3 CICS/400
3 half-session half-session
CICS TS for Windows
3 half-session
SESSION
SESSION
3 half-session
half-session
SESSION
half-session
Figure 1. Sessions between CICS systems. This figure shows the coverage of each of the CICS intercommunication
books. The numbers refer to the books in the list of books on page 3.
4 Interproduct Communication
Chapter 2. CICS communication support
This chapter has two sections:
v What is a products communication ability? is an introduction to intersystem
communication terminology, and to the CICS communication functions.
v CICS product communication support on page 7 shows the ways in which any
pair of CICS products can communicate.
For more information about these functions, see Part 2, CICS intercommunication
functions, on page 25.
Communication protocols
If two systems are to communicate successfully they must use a common set of
rules that both understand. A communications protocol is such a set of rules that
defines, for example, a set of standard requests and responses, and the order in
which they can be sent.
| Note: CICS TS for z/OS Version 2.2 and later support native TCP/IP
connections to clients. The CICS External Call Interface (ECI) is
supported, but not the External Presentation Interface (EPI) nor the
External Security Interface (ESI). See Table 5 on page 13.
All CICS on System/390 products except CICS TS for VSE/ESA and CICS/VSE
2.3 can make use of the AnyNet product, which allows SNA flows to be
transmitted over a TCP/IP network.
NetBIOS
The Network Basic Input/Output System (NetBIOS) is a local area network
| (LAN) protocol for personal computers. It is supported by CICS Transaction
| Server for Windows.
You can use IBM NetBIOS, or another NetBIOS emulator. For example,
Novells NetBIOS emulator provides NetBIOS flows over its Internetwork Packet
eXchange (IPX) protocol.
Synchronization
During CICS interproduct communication, partner transactions may make
logically-related updates to their data stores data sets, databases, temporary
storage, transient data, and so on. Data integrity would be lost if both transactions
did not commit (or back out) the updates they made to their resources.
Synchronization levels
SNA APPC architecture defines three levels of synchronization, which it calls
NONE, CONFIRM, and SYNCPOINT. CICS refers to these as synchronization
levels 0, 1, and 2, respectively.
Level 0 Provides no synchronization support.
6 Interproduct Communication
Level 1 Allows transactions to exchange confirmation requests which they
may use to provide some degree of synchronization. CICS is not
involved in this process.
Level 2 Provides system-level syncpoint exchanges.
The synchronization level that two connected CICS systems can use is established
when they first establish the connection. A connection established at
synchronization level 2 can support a synchronization level 0, 1, or 2 conversation,
and a connection established at synchronization level 1 can support a
synchronization level 0 or 1 conversation.
The synchronization level you can use depends upon the capabilities of the
particular CICS systems, and the capability of the network that they are using for
the connection. The synchronization levels for all pairings of CICS systems is
summarized in CICS product communication support.
Data conversion
CICS products use two interchange codes for character data representation,
EBCDIC and ASCII. Data in CICS on System/390 products and CICS/400 is held in
| EBCDIC format. Data in CICS Transaction Server for Windows and CICS on Open
Systems is typically held in ASCII format.
All CICS on System/390 products except CICS TS for VSE/ESA and CICS/VSE 2.3
can make use of the AnyNet product, which allows SNA flows to be transmitted
over a TCP/IP network.
| Only CICS TS for z/OS Version 2.2 and later support native TCP/IP connections to
clients. The CICS External Call Interface (ECI) is supported, but not the External
Presentation Interface (EPI) nor the External Security Interface (ESI). See Table 5
on page 13.
Chapter 2. CICS communication support 7
Synchronization level supported
CICS on System/390 can support synchronization levels 0, 1, and 2. The
synchronization level used depends upon the support available in the partner
system. This is summarized in Table 1.
| Table 1. CICS on System/390 synchronization level support
| CICS on CICS on Open CICS/400 CICS
| System/390 Systems Transaction
| Server for
| Windows
| Maximum synchronization level 2 2 2 1
| supported:
|
8 Interproduct Communication
The choice of communication protocol depends upon the function supported by the
partner system, and is summarized in Table 3.
| Table 3. CICS on Open Systems communication protocol, and synchronization level support
| CICS on Open CICS CICS on CICS/400
| Systems Transaction System/390
| Server for
| Windows
| Communication protocols SNA SNA SNA SNA
| supported: TCP/IP (1) TCP/IP(1)
| TCP/IP (2)
| Maximum synchronization level 2 1 2 2
| supported:
| Note:
| 1. TCP/IP (1) - CICS family TCP/IP support
| 2. TCP/IP (2) - Encina PPC TCP/IP support
|
|
10 Interproduct Communication
Chapter 3. CICS Clients
Terminology
| In this book, we use the term CICS Clients as a generic term for:
| v The CICS Universal Client (for Windows NT, Windows 2000, and Windows
| XP)
| v The CICS Client elements of the CICS Transaction Gateway products
| (which are available on all the platforms listed in CICS Clients on page 12)
| v The client daemons of the CICS Transaction Gateway products
The CICS Clients are not themselves full-function CICS systems, but they contain
functions that enable them to access the resources of CICS systems running on
other machines in the network. The CICS systems to which Clients are connected
are known as CICS servers.
There is a CICS Client for many different operating systems. These are described in
CICS Clients on page 12.
The client program can make the following types of call to a CICS server:
v Program link calls, which can be synchronous (that is, the calling program waits
for a response from the linked-to program), or asynchronous (that is, the two
programs continue to execute independently). The client program can issue a
number of such calls, which can all run within the same unit of work (UOW), or
they may run as individual units of work.
v Calls to retrieve a response from a previous asynchronous call.
v Calls that return a value indicating the status of the CICS system. This allows an
application to test for availability of the CICS server or to monitor it by waiting for
a change in its status.
The EPI consists of a set of calls that can be made from an application program.
The calls are provided in a library that is linked to the application. Among the
functions available are calls to:
v Initialize the EPI.
v Terminate the EPI.
v Obtain a list of CICS servers to which a terminal may attach.
v Attach a pseudo-terminal.
v Detach a pseudo-terminal.
v Start a transaction for a terminal.
v Send data from a terminal to a transaction.
v Obtain details of an event that has occurred for a terminal. An example of an
event is when the transaction is expecting a reply from the terminal.
v Obtain detailed error information for the last error that occurred for a terminal.
Terminal emulation
CICS Clients can run 3270 terminal emulators. A client terminal emulator transmits
or receives standard CICS transaction routing flows to or from a CICS server. This
allows a user to interact with the server, and run transactions, as if the client were a
locally-attached 3270 terminal.
Users can customize the colors and keyboard mapping of their emulators.
Double-byte character sets (DBCS) are supported but note that CICS clients
attached to CICS/400 servers do not support double-byte character sets.
CICS Clients
There is a CICS Client for each of the following operating systems:
v AIX
| v Microsoft Windows XP
v Microsoft Windows 2000
v Microsoft Windows NT
v Solaris
v HP-UX
v Linux 390
Each Client can attach to any or all of the following CICS servers:
v CICS Transaction Server for z/OS
v CICS Transaction Server for OS/390
v CICS Transaction Server for VSE/ESA
v CICS/VSE Version 2.3
12 Interproduct Communication
v CICS/400
| v CICS Transaction Server for Windows
v CICS on Open Systems
| and above
CICS TS for z/OS Version 2.1 Y Y Y Y Y - Y2
CICS TS for OS/390 Y Y Y Y Y - Y2
CICS TS for VSE/ESA Y Y Y Y Y - -
3
CICS/VSE V2.3 Y - - Y Y - -
Notes:
Y Function or protocol is supported
- Function or protocol not supported
ECI External Call Interface
EPI External Presentation Interface
Autoinstall
User does not need to predefine the client connection to the server
1. Native TCP/IP is supported. Using ECI over TCP/IP, all clients are supported,
but only the ECI (not the EPI nor the ESI) can be used.
2. TCP/IP is supported through the use of IBM TCP62 and the AnyNet feature of
VTAM. Using this method, only the Windows clients are supported, but both
the ECI and EPI can be used.
3. Only single-session LU6.2 connections can be autoinstalled.
Numeric data
The main ways of holding numeric data are binary and packed decimal. If these
types of data are held differently in two CICS systems, resource definitions in each
system may be sufficient to cause automatic data conversion.
In some cases, you can arrange for one system to hold data in a way that is
| compatible with the other, avoiding the need for conversion. For example, if a CICS
| Transaction Server for Windows COBOL II application program is compiled with the
IBMCOMP and SIGN EBCDIC directives, packed decimal data is held in
System/390-compatible format.
Automatic data conversion is not available in some cases. For example, conversion
between workstation packed decimal data and System/390 packed decimal data
requires user-written conversion code. This code can be inserted in a
user-replaceable conversion program in the CICS on System/390 product.
Character data
The smallest unit of computer data is a bit, or binary digit. A bit has only two
possible values, 0 or 1. To represent character data, bits must be grouped. The
most common grouping is the 8-bit byte, providing up to 256 different characters.
A double-byte character set (DBCS) allows the representation of more than 256
characters, each character being represented by a pair of bytes. Some languages
The different languages in some countries (such as Japan) may use both SBCS
and DBCS.
Code pages
A code page defines the code points for the characters in a particular character
set. It consists of a list of byte values or 2-byte values and the characters they
represent. The EBCDIC and ASCII interchange codes include more than one code
page, so data conversion can be necessary even between two systems that use the
same interchange code.
Most CICS products use in-built conversion tables to handle conversion between
common code pages. Some products allow you to define your own conversion
tables. For nonstandard conversion, you can supply a user-written conversion
program.
For detailed information about data conversion, see the CICS Intercommunication
manuals for your CICS products.
Notes:
1. CICS for OS/400 uses a comprehensive set of conversion tables provided by
AS/400, and does not support user-defined tables.
2. CICS on Open Systems uses the operating systems iconv routines, which
provide data conversion by both table-driven and algorithmic methods. A
comprehensive set of converters is supplied. A CICS on Open Systems user
can create or customize a converter.
16 Interproduct Communication
Chapter 5. Configuring CICS for SNA communications
Before two systems can communicate, they each need to know:
v The identity of the other system
v The characteristics of the other system
v The communication methods to be used
v The services and functions to be used
This chapter shows how you specify that information when configuring CICS
systems for SNA communication.
This chapter gives you the information on SNA and CICS that you will need to
establish that first basic configuration. You should not consider proceeding beyond
that first stage until you have completed and successfully tested a basic, simple
SNA connection.
There are other manuals that give broader and more detailed information about
SNA. There are manuals that explain the SNA architecture, manuals that explain
how individual products have implemented the architecture, and manuals that
explain how to configure various combinations of different systems. There is a list of
useful books in SNA books on page 69.
The scenario chosen for the discussion is based on an established SNA network of
interconnected CICS on System/390 systems. To this we will be adding a CICS for
AIX system, which will use SNA to connect to one of the CICS on System/390
systems.
SNA does not specify how a system should implement the architecture. Indeed, a
fundamental objective of SNA is to allow systems that have very different internal
hardware and software design to communicate. The only requirement is that the
network flows meet the rules of the architecture.
SNA concepts
network
A network is a collection of interconnected computers and devices, together with
the physical and logical connections that connect them.
network address
A network address is a unique code that is assigned to every device in a
network. With a personal computer, for example, it is likely to be the medium
access control (MAC) address in its network adapter card.
link and node
A link connects two nodes, where a node is any device in a network that
transmits and receives data.
logical unit (LU)
A logical unit represents the logical destination of a communication data flow.
The formal definition of an LU is that it is the means by which an end user gains
entry into a network, and an end user is defined as the ultimate source, or
destination, of data flow in a network. SNA supports several different types of
LUs. These are grouped together in numbered LU types, such as LU type 2 for
3270 display terminals, and LU type 4 for printers. The LU type for
CICS-to-CICS communication is LU type 6.2, and is frequently referred to as
advanced program-to-program communication (APPC). Each LU is given a
unique name that identifies it in the network, and this is referred to as the
LU name.
Sometimes the name of the network that the LU is in is appended to the name
of the LU. It is then known as the network-qualified LU name, or the fully
qualified LU name, and it takes the form network-name.LU-name.
physical unit (PU)
A physical unit is the hardware and software components in a device that
manage its network resources. LUs reside within a PU, and one PU may hold
many LUs. There are several different types of PU. VTAM running in a
mainframe host is a PU type 5, and NCP running in a 37x5 network controller is
a PU type 4. When workstations connect together in a peer-to-peer manner they
act as PU type 2.1. When a workstation connects to a mainframe host in a
hierarchical manner, it acts as a PU type 2.0. The PU type 2.1 is described as
an independent node (because it is independent of a mainframe host), and the
PU type 2.0 is a dependent node.
control point (CP)
The SNA concept that relates LUs to PUs is a control point. A CP can be
thought of as that part of a PU that manages the LU.
exchange identification (XID)
Associated with the PU and CP is the exchange identification. XID is actually the
name of a data flow that PUs exchange during the early stages of their attempt
to establish a connection, but, in the context of SNA configuration, XID refers to
one of the fields within that XID flow. It is a hexadecimal field which the PUs use
to confirm the identity of each other.
18 Interproduct Communication
session
SNA uses the term session to refer to various types of data flow in a network. To
avoid ambiguity, it should always be qualified by a description of the type of data
flow, for example CP-CP session. However, when used by CICS for APPC, it
can be assumed to refer to data flow between LUs, and so is an LU-LU session.
There are usually several sessions between any two LUs, and these are known
as parallel sessions.
connection
CICS uses the term connection to refer to a group of sessions that connect two
CICS systems.
transaction program (TP)
In SNA, the term transaction program refers to the application program in an
APPC environment. The TP uses the LU to gain access to the network. When
CICS is using APPC, the TP is a CICS transaction.
conversation
In SNA, the term conversation describes the communication between two TPs.
That is, when two APPC TPs are in communication, they are said to be holding
a conversation. Conversations flow on LU-LU sessions. Each conversation is
allocated a session for its own private use. When the conversation ends, the
session is free to be used by another conversation. There can only be one
conversation between any two TPs, but one TP could have multiple
conversations with different TPs.
mode
There may be a choice of many routes and paths in the network that an LU-LU
session could use. One route might be suitable for large volumes of batch data,
another might be reserved for smaller, high speed exchanges. SNA allows for
these different route types to be grouped into modes. A TP can select an
appropriate mode when it first establishes a conversation. The conversation will
flow on an LU-LU session that follows the route defined by the node.
local, remote, partner
These terms are used in many contexts. For example, you could refer to the
local system, the remote system, and the partner system. When you are at a
workstation, you regard the workstation as the local system, the machine your
workstation is communicating with is the remote system, and that remote system
is your partner. However, these terms are all relative to your point of reference,
so the remote system regards itself as being a local system with your
workstation being its remote system, and each system is a partner of the other.
In summary, it may help you to understand these terms if you visualize a session as
being like a pipe that links LUs. When the LU inserts data into the pipe it is
inevitable that the data will be passed to the LU at the other end of the pipe. Pipes
with similar characteristics are grouped together in a mode. These pipes are
created when the systems are first initialized and SNA is started, or when a TP first
requests the use of one. Several pipes usually run in parallel between two CICS
systems. When a CICS transaction wants to hold a conversation with a transaction
on another system, it requests the use of a pipe. It is given the sole use of a pipe.
When the transaction ends, the pipe is returned to the pool and can be allocated to
the next transaction.
SNA products
CICS does not provide its own SNA support. That is, CICS does not structure the
network data flows into the SNA format, nor is it responsible for initiating the SNA
protocol when a data flow is received. These SNA functions are provided by a
When you configure your systems, you have to configure both the CICS product
and the associated SNA product.
You could regard the first step as the system registering its name and address with
the network; the second step as a system specifying its intended partners name
and address so that the network can establish a link to it; and the third step as your
partner registering your systems name so that it will recognize your systems
requests when it receives them.
Matching parameters
The names that are used to define system resources include the network name, LU
name, PU name, CP name and XID.
Some of these names are used as parameters when configuring the CICS product,
and others are used as parameters when configuring the SNA product. Some are
used in both products. Some are used in one product on the local system and in
another product on the remote system. When a parameter is used in more than one
place, it is important that the same name is used. That is, the parameters must
match.
Mode name
The partners must use matching mode names. Any mode may be used, but a
convenient one is the #INTER architected mode.
Alias names
Some resources (typically the LU) may have an alias or local name as well as a
real name. The alias is only used internally within a local system. The partner
system recognizes only the real name, and it is that name that must match across
the systems.
The scenario
In the scenario chosen for this discussion, we assume that there is an established
SNA network of interconnected CICS on System/390 systems into which we are
adding a CICS for AIX system. This chapter is written from the perspective of the
AIX systems administrator who connects the workstations to the mainframe host.
20 Interproduct Communication
To avoid the potential problem of duplicate names being used, and to assist
management of the network, the VTAM system administrator may act as
coordinator for the network resource names. You therefore need to agree the
network names of your workstations with the VTAM systems administrator.
Configuration details
The tables in the following sections show where the resource names are configured
in the CICS and SNA products. The information is generally given by naming the
attribute in which the resource name is specified as a parameter, and giving the
name of the definition statement or front-end panel in which that attribute appears.
If you need further information on the configuration tools used by the different
product you should refer to the product-specific manuals listed in SNA books on
page 69.
If the tables show that a name is specified in both CICS and the SNA product, then
the same matching name must be used in both. When a name is not defined in one
of the products, this is indicated by a dash (-).
There is not complete symmetry in the configuration details in the mainframe host
and the workstations. For example, the workstation configuration requires that it
knows the address of the mainframe host, but the mainframe is not given the
address of the workstation. This is because the workstations are regarded as the
calling system, and the mainframe the listener. This means that the session will be
initiated by the workstation calling the mainframe. Therefore the information the
workstation needs about the mainframe is different from the information the
mainframe needs about the workstation.
The workstations need to know the address of the mainframe host. This is a
12-character hexadecimal code assigned to the front-end processor. This code is
not used in the configuration of CICS on System/390 or VTAM and so is not shown
in the table. The network administrator will be able to tell you the address.
Table 6. Defining local resources to CICS on System/390 and VTAM.
CICS on System/390 VTAM
Network name - NETID= attribute in VTAM startup
procedure
LU name APPLID= attribute in the SIT The label on the APPL statement
that defines CICS to VTAM
AIX is a versatile platform and offers many ways of connecting CICS to the
network. The AIX SNA product can be in a different machine from the CICS for AIX
product. It can be using an Encina PPC Gateway, with CICS using TCP/IP to
communicate with the gateway before gaining access to the SNA network. The
machines can be in different networks. The example shown here describes the
basic case of a single machine, that is running both CICS for AIX and AIX SNA,
and that is in the same network as the mainframe.
22 Interproduct Communication
Defining the connection to CICS on System/390
Table 9 shows how you define the connection to the mainframe. All you have to
provide is the LU name (which is effectively the name of the CICS on System/390
system), and the hardware address.
Table 9. Defining the connection to CICS on System/390
CICS for AIX AIX SNA
LU name RemoteLUName attribute in the Fully qualified partner LU name
Communications Definition attribute in the Add LU 6.2 Partner
LU Profile panel
Address - Link address attribute in Link
station information in the Initial
Node Setup panel
As stated in the introduction, your first aim must be to configure a basic setup and
test it with a simple application. For instance:
v APING is the APPC equivalent of the TCP/IP PING program. It can be used
independently of CICS as a stand-alone APPC application and so will test the
configuration of your SNA products.
v The CICS Server ISC PING Transaction is available as SupportPac CC02 at
this web site:
www.ibm.com/software/ts/cics/txppacs/cc02.html
Only after you are satisfied that you have a working APPC link should you expand
the configuration to include your own applications.
Function shipping
A program in system CICSA accesses resources (such as files or transient data
queues) that are owned by remote system CICSB as though they were locally
owned. The diagram shows a data-access request.
CICSA CICSB
Program
response
Data
CICSA CICSB
Terminal
transaction initiation Transaction
request
Program
response
CICSA CICSB
Program
CICSA CICSB
Program
Dialog
Program
28 Interproduct Communication
Which intercommunication function?
To help you choose the right intercommunication function, the list below gives
typical requirements and the functions that meet them:
v A terminal user needs to run a transaction owned by a different system
than the one to which he or she is connected.
Use transaction routing.
v A transaction wants to read/write data owned by another system.
Use function shipping. However, function shipping has higher overheads than
transaction routing, so it is better to use transaction routing unless the transaction
accesses data in the local system as well as data in the remote system.
v A transaction wants to read/write IMS or DL/I data to which another
system has access.
Use distributed program link.
v A transaction needs to signal a remote system that it should start a named
transaction.
Use asynchronous processing.
v A transaction wants several accesses to remote data, possibly with some
processing between the accesses.
Use distributed program link if possible. This requirement can be met with
several function shipping requests, but DPL minimizes the data flows on the
network. If DPL cannot meet the whole requirement, a mixture of DPL and
function shipping is more efficient use of the network than total reliance on
function shipping.
v An application requires communication between two or more systems with
interdependent resource updates based on data exchanges.
Use distributed transaction programming.
CICA CICB
. file access
EXEC CICS READ CICS MIRROR
FILE (NAMES) request transaction
INTO(XXXX) (issues READ
. command and
. response passes data
. back)
The definition of a remote resource can include both the name by which the
resource is known in the remote system, and a different name by which it is known
locally. When the resource is requested by its local name, CICS substitutes the
remote name before sending the request. This facility is useful when resources
exist with the same name on more than one system, but each contains data
peculiar to the system on which it is located.
Application programs can use the SYSID option of various EXEC CICS commands
to name remote systems explicitly. If this option is specified, the request is routed
directly to the named system, and the resource definition tables on the local system
are not used. Using SYSID in this way destroys the programs independence of the
resources location. The advantage is that any system, including the local system,
can be named in the SYSID option. The decision whether to access a local
resource or a remote one can be taken at execution time.
Care should be taken when designing systems that use remote file requests
containing physical record identifier values (examples include BDAM, VSAM RBA,
and files with keys not embedded in the record). Application programs in remote
systems must have access to the correct values following updating or
reorganization of such files.
32 Interproduct Communication
IMS databases
Function shipping allows a CICS on System/390 transaction to access IMS/ESA
DM and IMS/VS DB databases associated with a remote CICS OS/390 system, or
DL/I for VSE/ESA databases associated with a remote CICS/VSE system.
| CICS Transaction Server for Windows, CICS/400, and CICS on Open Systems
systems cannot access IMS or DL/I databases by function shipping, but can do so
by distributed program link (see Chapter 9, Distributed program link, on page 47).
The following discussion applies to CICS on System/390 systems only.
The IMS/ESA DM (DL/I) database associated with a remote CICS system can be a
local database owned by the remote system, or a database accessed using IMS
database control (DBCTL). To the CICS system that is doing the function shipping,
this database is simply remote.
As with file control, updates to remote DL/I databases are not committed until the
application reaches a syncpoint. In IMS/ESA DM, it is not possible to schedule more
than one PSB for a single logical unit of work, even when the PSBs are defined to
be on different remote systems. For this reason, logically-related DL/I updates on
different systems cannot be made in a single logical unit of work.
The PSB directory list (PDIR or DLZACT) is used to define a PSB as being on a
remote system. The remote system owns the database and the associated PCB
definitions. When DL/I access requests are made to another processor system by a
CICS system but no local requests are made, it is not necessary to install IMS on
the requesting system.
Temporary storage
Function shipping enables application programs to send data to, or retrieve data
from, temporary storage queues located on remote systems. A recoverable queue
must be defined as recoverable in its local (resource-owning) system.
Transient data
An application program can access intrapartition or extrapartition transient data
queues on remote systems. The resource definition in the requesting system
defines the named queue as being on the remote system. The queue definition in
the remote system specifies whether the queue is recoverable, and whether it has a
trigger level and associated terminal.
The remote naming capability enables a program to send data to the CICS service
destinations, such as CSMT, in both local and remote systems.
DL/I (EXEC DL/I or CALL DLI) requests use the DL/I interface, which also provides
part of the transformer programs function.
A transformer program converts the request to a form suitable for transmission, and
calls the intercommunication component to send the request to the resource-owning
system.
The CICS intercommunication component sends the request to the remote system.
On the first request to a particular remote system on behalf of a transaction, the
communication component in the local system precedes the formatted request with
the mirror-transaction identifier, in order to attach this transaction in the remote
system. The local transformer program keeps track of whether the remote mirror
transaction terminates, and reinvokes it as required.
When a reply is received from the remote system, a second transformer program
decodes it. CICS uses the decoded reply to complete the original command-level
request.
The remote system uses its own transformer programs in dealing with the request
(see next section).
CICA CICB
Returns
Transformer 4 response
Decodes
response
34 Interproduct Communication
The mirror transaction
A resource-owning system passes an incoming function-shipping request to the
mirror transaction. The first request from a particular remote transaction causes the
initiation of a new instance of the mirror transaction, which uses CICS
intercommunication facilities to communicate with the requesting system.
Using a CICS transformer program, the mirror transaction decodes the formatted
request, and executes the command. On completion of the command the mirror
transaction uses a transformer program to construct a formatted reply, and returns
this to the requesting system.
The mirror transaction remains active after sending its reply to the current command
in any of the following cases:
v Execution of a future command depends on the retention of system-specific
information established during execution of the current command, for example:
REWRITE depends on prior READ UPDATE
READNEXT depends on prior STARTBR
v Execution of a future command may depend on the retention of
application-specific information established during execution of the current
command, for example when a recoverable resource has been updated.
v The mirror remained active after replying to a previous command for one of the
reasons above (the mirror then remains active until the end of the logical unit of
work in the requesting system).
In other cases, the mirror terminates after replying to the current command.
Multiple mirrors
A transaction can access recoverable and nonrecoverable resources in any order,
and is not affected by the location of recoverable resources (they could all be in
different remote systems, for example). When a local transaction accesses
resources in more than one remote system, the intercommunication component
invokes a mirror transaction in each remote system to execute requests for the local
transaction. Each mirror transaction follows the above rules for termination, and
when the transaction reaches a synchronization point, the intercommunication
component exchanges synchronization point messages with those mirror
transactions that have not yet terminated (if any).
Chained mirrors
The mirror transaction uses the EXEC CICS interface to execute CICS requests
and the DL/I CALL or the EXEC DLI interface to execute DL/I requests. The request
is thus processed as for any other transaction and the requested resource is
located in the appropriate resource table. If its entry defines the resource as being
remote, the mirror transactions request is formatted for transmission and sent to
the specified remote system, which activates its own mirror transaction. This is
called a chained-mirror.
Application Transaction
.
.
EXEC CICS READ
FILE('RFILE') 'READ' request
... Attach mirror transaction.
Process READ request.
'READ' Reply, Last
Free session. Reply is Free session. Terminate
passed back to the mirror.
application, which
continues processing.
Figure 4. Function shippingsimple inquiry. Here, no resource is being changed; the session is freed and the mirror
task is terminated immediately.
36 Interproduct Communication
System A Transmitted Information System B
Application Transaction
.
.
EXEC CICS READ UPDATE
FILE('RFILE') 'READ UPDATE' request
. Attach mirror transaction.
.
. 'READ UPDATE' reply
Reply passed to application Perform READ UPDATE.
. Enqueue on update record.
. Mirror waits.
EXEC CICS REWRITE 'REWRITE' request
FILE('RFILE') Mirror performs REWRITE.
'REWRITE' reply
Reply passed to application
. Mirror waits, still holding the
. enqueue on the updated record.
.
EXEC CICS SYNCPOINT 'SYNCPOINT' request,last
Figure 5. Function shippingupdate. Because the mirror must wait for the REWRITE, it does not terminate until
SYNCPOINT is received. Note that the enqueue on the updated record would not be held beyond the REWRITE
command if the file was not recoverable.
Figure 6 shows a terminal connected to one CICS system running with a user
transaction in another CICS system. Communication between the terminal and the
user transaction is handled by a CICS-supplied transaction called the relay
transaction.
CICSA CICSB
Terminal
LU6.2
CICS Relay User
Transaction Transaction
In transaction routing, the term terminal is used in a general sense to mean such
things as an IBM 3270, or a single-session APPC device, or an APPC session to
another CICS system, and so on. All terminal and session types supported by
CICS on System/390 are eligible for transaction routing, except those given in the
following list:
v LUTYPE6.1 connections and sessions
v Pooled 3600 or 3650 pipeline logical units
v MVS system consoles.
| CICS Transaction Server for Windows, CICS/400, and CICS on Open Systems
support minimum BMS. (They support SEND TEXT.) Only CICS on System/390
systems support batch data interchange, standard BMS, and full BMS. Depending
on these product capabilities, a user transaction can use CICS terminal control,
BMS, or batch data interchange facilities to communicate with the terminal, as
appropriate for the terminal or session type. Mapping and data interchange
functions are performed in the application-owning system (CICS B in Figure 6).
BMS paging operations are performed in the terminal-owning system (CICS A in
Figure 6).
In static transaction routing, the request is routed to the system named in the
REMOTESYSTEM option. If REMOTESYSTEM is unspecified, or if it names the
local CICS system, the transaction is a local transaction, and transaction routing is
not involved.
Specifying DYNAMIC(YES) means that you want the opportunity to route the
terminal data to an alternative transaction at the time the defined transaction is
invoked. CICS enables this by allowing a user-supplied program, called the
40 Interproduct Communication
dynamic transaction routing program, to examine the terminal input data and
redirect it to any transaction and system it chooses. In CICS on System/390, this
program has the default name of DFHDYP, but an alternative name may be defined
by using the DTRPGM system initialization parameter.
Parameters are passed in a communications area between CICS and the routing
program. The program may change some of these to influence subsequent CICS
action. For example, in CICS on System/390, some of the parameters are:
v Invocation reason. The routing program can be reinvoked after an unsuccessful
routing attempt or when the target transaction has terminated.
v Error information.
v The SYSID of the target system. Initially, the one specified on the
REMOTESYSTEM option for the installed transaction (or REMOTESYSID in
CICS on Open Systems).
v The name of the target transaction. Initially, the name specified on the
REMOTENAME option for the installed transaction.
v A pointer to a data area containing the initial input data from the terminal.
The dynamic transaction routing program can issue most EXEC CICS commands.
| CICS Transaction Server for Windows: CICS Transaction Server for Windows
| provides a user exit in which a user program can change the target system of a
| transaction routing request. This exit can also change the target system for any
| shipped function request and provide a target system for a transaction not defined
| in the local system.
An ATI request can cause the initiation of a transaction in a remote system (see
Figure 7 on page 43).
ATI also allows a request for a transaction owned by a particular CICS system to
name a terminal that is owned by another, connected system (see Figure 7).
Although the original ATI request occurs in the application-owning system, it is sent
by CICS to the terminal-owning system, where it causes the relay transaction to be
initiated in conjunction with the specified terminal.
Chapter 8. Transaction routing 41
The user transaction in the application-owning system is then initiated as described
on page 40 for terminal-initiated transaction routing, with one important difference.
The extra factor in this case is the AID (automatic initiate descriptor) associated with
an ATI request. The AID specifies the names of the remote transaction and system,
(P1 and S1 in Figure 7). In Figure 7, the terminal-owning system (S2) must find a
transaction definition that specifies REMOTENAME (P1) and REMOTESYSTEM
(S1) (or REMOTESYSID on CICS on Open Systems).
In the transaction-owning system, the normal rules for ATI apply. The transaction
can be initiated from a transient data queue when the trigger level is reached, or on
expiry of an interval control START request. Note particularly that, for transient data
initiation, the transient data queue must be in the same system as the transaction.
42 Interproduct Communication
Initiating Transaction- Terminal-
system owning system owning system
S0 S1 S2
START
TRANSID( P1 ) Asynchronous Determines
SYSID( S1 ) processing that T2 is
TERMID( T2 ) request owned by S2 ,
sends request
to S2
T2
Function Checks for
shipped transaction
ATI request defined with
REMOTENAME
(P1)
and initiates
relay program
Initiates Transaction
transaction routing
P1 request
However, terminal definitions are not shipped at the time an ATI request is
received. If an ATI request names a terminal not already known in the
transaction-owning system, the terminal-not-known condition occurs.
Although CICS determines the program to be associated with the relay transaction,
the users definition for the remote transaction determines the other attributes of the
relay transaction. These are usually those of the real transaction in the remote
system.
The relay transaction remains in existence for the life of the user transaction and
has exclusive use of the session to the remote system during this period. When the
users transaction terminates, an indication is sent to the relay transaction, which
terminates and frees the terminal and the intersystem session.
The mapping operations of BMS are performed in the system on which the users
transaction is running; that is, the application-owning system. The mapped
information is routed between the terminal and this transaction via the relay
transaction, as for terminal control operations.
When transaction routing with BMS, you should be aware of the limitations of BMS,
and of the possible different levels of support in the application owning region and
the terminal owning region when they are running on CICS systems on different
platforms.
where xxxx is the local name of the remote system. The transaction then indicates
that a routing session has been established, and the user enters input of the form:
yyyyzzzzzz
where yyyy is the name by which the required remote transaction is known on the
remote system, and zzzzzz is the initial input to that transaction. Subsequently, the
44 Interproduct Communication
remote transaction can be used as if it had been defined locally and invoked in the
ordinary way. All further input is directed to the remote system until the operator
terminates the routing session.
In secure systems, operators are normally required to sign on before they can
invoke transactions. The first transaction that is invoked in a routing session is
therefore usually the sign-on transaction CESN; that is, the operator signs on to the
remote system. The use of CRTE itself can also be restricted by security.
The CRTE facility is particularly useful for invoking the master terminal transaction,
CEMT, on a particular remote system. It is an alternative to installing a definition of
the remote CEMT in the local system. CRTE is also useful for testing remote
transactions before final installation.
Introduction to DPL
When a CICS application program issues an EXEC CICS LINK command, control
passes to a second program, named in the command. The second program
executes and, when it completes, control returns to the first program at the
instruction following the LINK command. The linked-to program can return data to
the linking program if the LINK command has used the COMMAREA option to pass
the address of a communication area.
Distributed program link (DPL) extends the use of the EXEC CICS LINK command
so that the linking and linked-to programs can be in different CICS systems. The
systems can be copies of the same CICS product or of different CICS products.
In certain circumstances, the use of DPL can improve performance by reducing the
number of data flows between connected CICS systems.
You can specify that the linked program is to run on a connected CICS system by
coding the SYSID option in the LINK command, or by specifying the remote system
name in the local definition of the program.
Program A Program B
EXEC CICS
LINK
EXEC CICS
RETURN
Synchronization
DPL provides two ways to handle synchronization:
1. If you code SYNCONRETURN, the linked-to program commits its resource
updates immediately before returning control to the linking program. There are
separate units of work in the two communicating systems.
The linked-to program may take one or more syncpoints during its execution.
However, the response the linking program is given (which may be Normal or
Rollback) corresponds to the outcome of the syncpoint taken by CICS on return
from the linked-to program, and does not relate to the outcome of any of the
syncpoints the linked-to program may have initiated.
2. If you do not code SYNCONRETURN, the linking program initiates commitment
in both systems, either by issuing a SYNCPOINT command or implicitly at task
end.
Data integrity considerations govern the decision whether or not to use the
SYNCONRETURN option.
You should not link to programs that issue syncpoints (unless SYNCONRETURN is
coded in the LINK command). See Taking syncpoints on page 64.
Because there is no terminal involved, you should not link to programs that issue:
v Terminal control commands to the system in which the linking program is running
v Commands that inquire on terminal attributes (such as ASSIGN commands)
v BMS commands
v Batch data interchange commands
v Commands that address the TCTUA (programs can use the communication area
to pass data).
48 Interproduct Communication
For DPL between any combination of CICS products, the maximum recommended
length of a communications area is 32500 bytes.
System A System B
Asynchronous Processing
TRAN3
TRAN3 initiates TRAN4 and sends
request. At a later time, TRAN4
initiates TRAN5 and sends reply
No direct correlation between
TRAN4
executions of TRAN3 and TRAN5.
Example
A typical asynchronous processing application is online inquiry on remote
databases; for example, a credit rating check application. A terminal operator uses a
local transaction to enter a succession of inquiries without waiting for replies. For
each inquiry, the local transaction initiates a remote transaction to process the
request, so that many copies of the remote transaction can be executing
concurrently. The remote transactions send their replies by initiating a local
transaction (possibly the same transaction) to deliver the output to the operator
terminal. The replies may not arrive in the same order as the inquiries were issued;
correlation between the inquiries and the replies must be made by means of fields
in the user data.
A CICS transaction can use the EXEC CICS ASSIGN STARTCODE command
to determine how it was initiated.
52 Interproduct Communication
DTP can be used for CICSnon-CICS communication, as well as for
CICSCICS communication.
If data conversion is required, the DTP application must contain logic to handle
this.
Distributed transaction programming is more fully discussed under Chapter 11,
Distributed transaction programming, on page 59.
You can include time-control information on the shipped START command, using
the INTERVAL or TIME option. Before a command is shipped, a TIME specification
is converted by CICS to a time interval relative to the local clock. If the ends of a
link are in different time zones, use the INTERVAL option.
The time interval specified in a START command is the time at which the remote
transaction is to be initiated, not the time at which the request is to be shipped to
the remote system.
A START command shipped to a remote CICS system can be canceled, before the
expiry of the time interval, by shipping a CANCEL command to the same system.
The START command to be canceled is uniquely identified by the REQID value
specified on the START command and on the associated CANCEL command. Any
task can issue the CANCEL command.
A typical use for the START NOCHECK command is in the remote inquiry
application described in Example on page 52.
The remote system performs the requested inquiry on its local database, then
issues a start request for the originating system. This command passes back the
requested data, together with the operators terminal identifier. Again, only one
message passes between the two systems. The transaction that is then started in
the originating system must format the data and display it at the operators terminal.
If a system or session fails, the terminal operator must reenter the inquiry, and be
prepared to receive duplicate replies. To aid the operator, either a correlation field
must be shipped with each request, or all replies must be self-describing.
The NOCHECK option is always required when shipping of the START command is
queued pending the establishment of links with the remote system (see Local
queuing of START commands for remote transactions on page 55).
54 Interproduct Communication
Successful completion of the syncpoint guarantees that the start request has been
delivered to the remote system. It does not guarantee that the remote transaction
has completed, or even that it will be initiated.
START requests with NOCHECK are deferred until one of the following events
occurs:
v The transaction issues a syncpoint.
v The transaction terminates with an implicit syncpoint.
v The transaction issues any other type of function shipping requestfor example,
a WRITE TS, or a START without the NOCHECK option.
v A sufficient number of START NOCHECK requests for the same remote system
have accumulated on the local system to make transmission efficient.
The first, or only, start request transmitted from a transaction to a remote system
carries the begin-bracket indicator; the last, or only, request carries the end-bracket
indicator. Also, if any of the start requests issued by the transaction specifies
PROTECT, the last request carries the syncpoint-request indicator. Deferred
sending allows the indicators to be added to the deferred data, and thus reduces
the number of transmissions required. The sequence of requests is transmitted
within a single SNA bracket and all the requests are handled by the same mirror
task.
CICS on System/390 products support the XISLCLQ global user exit, which allows
flexibility by enabling a user-written program to make a decision about local
queueing, overriding the LOCALQ option.
Thus, it is possible to design a transaction that can handle the data associated with
multiple start requests. Typically, a long-running transaction could be designed to
accept multiple inquiries from a terminal and ship start requests to a remote system.
From time to time, the transaction could issue RETRIEVE commands to receive the
replies, the absence of further replies being indicated by the ENDDATA condition.
The WAIT option of the RETRIEVE command can be used to put the transaction
into a WAIT state pending the arrival of the next start request from the remote
system. Overall application design should ensure that a transaction cannot get into
a permanent wait state due to the absence of further start requestsfor example,
the transaction can be defined with a timeout interval. (Note that this option is not
supported by CICS on Open Systems.)
Starting transactions
You can name a system, rather than a terminal, in the TERMID option of the
START command.
If CICS finds that the terminal named in a start request is a system, it selects an
available session to that system and makes it the principal facility of the started
transaction. If no session is available, the request is queued until there is one.
56 Interproduct Communication
TRAN5. This is the intended use of the RTRANSID option; its actual use is
application-dependent. TRAN5 must be defined to System B.
DTP is the most flexible and the most powerful of the CICS intercommunication
facilities, but it is also the most complex. This chapter introduces you to the basic
concepts.
The following two examples describe cases where function shipping is an obvious
but not ideal solution.
Example 1
You are browsing a remote file to select a record that satisfies some criteria.
Solution 1: Use function shipping. CICS ships each GETNEXT request across the
link, and the mirror reads the record and ships it back to the requester.
There are two network data flows per record; the data flow can be quite significant.
For a browse on a large file, the overhead can be unacceptably high.
Solution 2: Use distributed program link. CICS links to a program that is running
in the system that owns the file.
Solution 3: Use a DTP conversation. The local transaction sends the selection
criteria. The remote transaction returns the keys and relevant fields from the
selected records. This drastically reduces both the number of flows and the amount
of data sent over the link.
Solution 1: Use function shipping to write each reorder record to a remote file as
it arises. This method is simple, but has several drawbacks:
v Data is transmitted to the remote systems irregularly in small packets. This
means inefficient use of busy links.
v The transactions associated with the point-of-sale devices are competing for
sessions with the remote systems. This could mean unacceptable delays at
point-of-sale.
v Failure of a link causes a catastrophic suspension of operations at a branch.
v Intensive intercommunications activity (for example, at peak periods) causes
reduction in performance at the point-of-sales terminals.
Solution 2: Each sales transaction writes its reorder records to a transient data
queue, and continues its conversation with the terminal.
Restocking requests are not urgent, so sorting and sending the data is delayed until
an off-peak period. Alternatively, the transient data queue can be set to trigger the
sender transaction when a predefined data level is reached. Either way, the sender
transaction has the same job to do.
The sender transaction can use function shipping to transmit the reorder records.
After the sort process, each record is written to a remote file in the relevant remote
system.
This method is not ideal either. The sender transaction must wait after writing each
record to make sure that it gets the right response. Apart from using the link
inefficiently, waiting between records makes the whole process very slow.
Each distribution center then processes the reorder records like any other local file.
This solution is a much more efficient use of the link.
DTP (like asynchronous processing and distributed program link) lets you process
data at the point where it arises, instead of overworking network resources by
assembling it at a central processing point. However, DTP is much more flexible
than either asynchronous processing or DPL. For example, it:
v Can be used to communicate with both CICS and non-CICS systems.
60 Interproduct Communication
v Enables synchronous communication and data transfer between applications
running on different systems.
v Can provide a common interface to transactions owned by different systems.
v Allows some measure of parallel processing to shorten response times.
v Provides a buffer between a security-sensitive file or database and applications,
so that no application need know the format of the file records.
v Enables batching of less urgent data destined for a remote system.
Conversations
In DTP, transactions pass data to each other directly. While one sends, the other
receives. The exchange of data between two transactions is called a conversation.
Although several transactions can be involved in a single distributed process,
communication between them breaks down into a number of self-contained
conversations between pairs. Each such conversation uses a CICS resource known
as a session.
Transaction TRAA
Session 1
CICSB
Transaction TRBB
Session 2 Session 3
CICSC CICSD
Session 4 Session 5
CICSE
Application design
DTP has none of the transparency of function shipping or transaction routing. A
conversation transfers data from one transaction to another. For this to function
properly, each transaction must know what the other intends. It is therefore
necessary to design, code, and test front end and back end as one software unit.
The same applies when there are several conversations and several transaction
programs. Each new conversation adds to the complexity of the overall design.
62 Interproduct Communication
In Example 2 on page 60, the DTP solution (Solution 3) is to transfer a file of data
from one transaction to anotherin this case, transmit the entire contents of the
transient data queue from the front end to the back end. The next stage of
complexity is to cause the back end to return data to the front end, perhaps the
result of some processing. Here, the front end is programmed to request
conversation turnaround at the appropriate point.
Control flows
During a conversation, data passes over the link in both directions. A single
transmission is called a flow. Issuing a SEND command does not always cause a
flow. This is because the transmission of user data can be deferred; that is, held in
a buffer until some event takes place. The APPC architecture defines data formats
and packaging. CICS handles these things for you, and they concern you only if
you need to trace flows for debugging.
The APPC architecture defines a data header for each transmission, which holds
information about the purpose and structure of the data following. The header also
contains bit indicators to convey control information to the other side. For example,
if one side wants to tell the other that it can start sending, CICS sets a bit in the
header that signals a change of direction in the conversation.
Either end of the conversation can cause a change of state, usually by issuing a
particular command from a particular state. CICS tracks these changes, and stops a
transaction from issuing a command that is wrong for its current state.
Synchronization
Many things can go wrong during the running of a transaction. The conversation
protocol helps you to recover from errors and ensures that the two sides remain in
step with each other. This use of the protocol is called synchronization.
Synchronization allows you to protect resources such as transient data queues and
files. Whatever goes wrong during the running of a transaction should not leave the
associated resources in an inconsistent state.
Even if a further abend can be prevented, there is the problem of how to continue
the process without loss of data. It is uncertain how many queue items have been
received and how many have been correctly written to the file. The only safe way of
continuing is to go back to a point where you know that the contents of the queue
are consistent with the contents of the file. The sending system must restore the
queue entries that have been sent, and the receiving system must delete any
entries made in the file. CICS helps you to do this (see Taking syncpoints).
Taking syncpoints
If you log your own data movements, you can arrange backout of your files and
queues. However, this involves very complex programming. To save you the
trouble, CICS arranges resource recovery for you.
CICS can commit and back out changes to resources, but the service has a
performance trade-off. Some transactions do not need such facilities. If the recovery
of resources is not a problem, use simpler methods of synchronization.
64 Interproduct Communication
The three synchronization levels
The APPC architecture defines three levels of synchronization:
Level 0 NONE
Level 1 CONFIRM
Level 2 SYNCPOINT
If you select synchronization level 1, you can use specific commands for
communication between the two conversation partners. One transaction can confirm
the continued presence and readiness of the other. The user is responsible for
preserving the data integrity of recoverable resources.
CICS implies a syncpoint when it starts a transaction; that is, it initiates logging of
changes to recoverable resources, but no control flows take place. CICS takes a full
syncpoint when a transaction is normally terminated. Transaction abend causes
rollback. The transactions themselves can initiate syncpoint or rollback requests.
However, a syncpoint or rollback request is propagated to another transaction only
when the originating transaction is in conversation with the other transaction, and
synchronization level 2 has been selected for the conversation between them.
Remember that syncpoint and rollback are not peculiar to any one conversation
within a transaction. They are propagated on every current synchronization level 2
conversation within the transaction.
Table 10 on page 66 compares the two methods to help you to decide which API to
use for a particular application.
66 Interproduct Communication
Part 3. Appendixes
Determining if a publication is
current
IBM regularly updates its publications with new
and changed information. When first published,
both hardcopy and BookManager softcopy
versions of a publication are in step, but
subsequent updates will probably be available in
softcopy before they are available in hardcopy.
70 Interproduct Communication
Accessibility
Accessibility features help a user who has a physical disability, such as restricted
mobility or limited vision, to use software products successfully.
You can perform most tasks required to set up, run, and maintain your CICS system
in one of these ways:
v using a 3270 emulator logged on to CICS
v using a 3270 emulator logged on to TSO
v using a 3270 emulator as an MVS system console
IBM Personal Communications (Version 5.0.1 for Windows 95, Windows 98,
Windows NT and Windows 2000; version 4.3 for OS/2) provides 3270 emulation
with accessibility features for people with disabilities. You can use this product to
provide the accessibility features you need in your CICS system.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you any
license to these patents. You can send license inquiries, in writing, to:
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
The following paragraph does not apply in the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A
PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore this statement may not apply to
you.
Licensees of this program who wish to have information about it for the purpose of
enabling: (i) the exchange of information between independently created programs
and other programs (including this one) and (ii) the mutual use of the information
which has been exchanged, should contact IBM United Kingdom Laboratories,
MP151, Hursley Park, Winchester, Hampshire, England, SO21 2JN. Such
information may be available, subject to appropriate terms and conditions, including
in some cases, payment of a fee.
Trademarks
The following terms are trademarks of International Business Machines Corporation
in the United States, or other countries, or both:
Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Sun Microsystems Inc, in the United States, or other countries, or
both.
Other company, product, and service names may be trademarks or service marks
of others.
74 Interproduct Communication
Index
A CICS Clients (continued)
for Microsoft Windows 12
allocating APPC terminal or connection 40
for Sun Solaris 12
alternate facility 62
functions provided
American National Standard Code for Information
External Security Interface 12
Interchange (ASCII) 16
overview 11
APIs 65
servers supported 12
APPC terminals, transaction routing 40
CICS on System/390
APPC, communication protocol 5
dynamic transaction routing 40
application design, DTP 62
CICS Transaction Server for Windows
application programming interfaces 65
dynamic transaction routing 41
APPLID passed with START command 54
client/server computing 11
ASCII 16
clients, CICS
asynchronous processing 51, 57
functions provided
compared with synchronous processing (DTP) 51
External Call Interface 11
initiated by DTP 52
External Presentation Interface 11
initiating asynchronous processing 52
Terminal Emulation 12
START/RETRIEVE interface 53, 56
overview 11
terminal is a system 56
code pages 16
canceling remote transactions 53
committing changes to resources 64
information passed with START command 53
communication functions
information retrieval 55
functions listed 5
local queuing of START requests 55
product support for 5, 11
NOCHECK option, START command 54
communication protocols
performance improvement 54
APPC 5
PROTECT option, START command 54
IPX 5
RETRIEVE command 55
LU6.2 5
starting remote transactions 53
NetBIOS 5
terminal acquisition 56
TCP/IP 5
system programming considerations 56
configuring CICS for SNA 17
typical application 52
control flows 63
ATI (automatic transaction initiation) 41
conversation 61, 65
restricted by CRTE routing transaction 45
alternate facility 62
with transaction routing 41
back end 62
basic 66
control flows 63
B data header 63
back end 62 error detection 63
backout 64 front end 62
basic conversation 66 principal facility 62
basic mapping support (BMS), transaction routing 39, session 61
44 state 63
synchronization 63, 65
Conversation
C initiation 61
CANCEL command 53 CPI Communications 65
CEMT master terminal transaction, invoked by CRTE transaction 44
CRTE 45
choosing an intercommunication function 29
CICS clients D
functions provided data conversion 15, 17
External Call Interface 11 ASCII 16
External Presentation Interface 11 character data 15, 17
Terminal Emulation 12 code pages 16
CICS Clients EBCDIC 16
for AIX 12 numeric data 15
for HP-UX 12 data header, APPC architecture 63
for Linux 390 12 data integrity 6, 64
E M
EBCDIC 16 MBCS, multi-byte character set 16
ECI (External Call Interface) 11 mirror transaction 31, 35
EPI (External Presentation Interface) 11 chained mirrors 35
error detection, conversation 63 multiple mirrors 35
ESI (External Security Interface) multi-byte character set (MBCS) 16
overview 12
examples
ATI 42 N
function shipping 36 NetBIOS, communication protocol 5
EXEC CICS, API 65 NOCHECK option, START command
exits, user deferred sending 55
XALTENF 53 improving performance 54, 55
XICTENF 53 local queuing 55
Extended Binary-Coded Decimal Interchange Code
(EBCDIC) 16
External Call Interface (ECI) 11 P
External Presentation Interface (EPI) 11 principal facility 62
PROTECT option, START command 54
protocols, for communication
F APPC 5
file control 32 IPX 5
front end 62 LU6.2 5
function shipping 27, 31, 37 NetBIOS 5
DL/I databases 33 TCP/IP 5
examples 36 pseudoconversation 40
file control 32
how it works 34
IMS databases 33 R
interval control 31 recipient, conversation 62
limitations 59 relay program (DFHCRP) 43
mirror transaction 31, 35 relay transaction 39
synchronization 36 RETRIEVE command 52
temporary storage 33 RETRIEVE command, WAIT option 56
transformer program 34 retrieving data sent with START command 55
transient data 33 rollback 64
transparency to application 32 routing transaction, CRTE 44
H S
hierarchy, transaction 61 SBCS, single-byte character sets 15
76 Interproduct Communication
session
used by a conversation 61
W
WAIT option, RETRIEVE command 56
shipping terminal definitions 41, 43
SNA configuration 17
CICS for AIX 22
CICS on System/390 21 X
SNA terminology 17 XALTENF, user exit 53
SQL databases, accessed by DPL 48 XICTENF, user exit 53
START command 52
deferred sending 55
local queuing 55
NOCHECK option 54
PROTECT option 54
START/RETRIEVE, asynchronous processing 53
state, conversation 63
synchronization 6
DPL 48
DTP 63, 65
backout 64
committing changes to resources 64
data integrity 64
rollback 64
syncpoints 64
unit of work (UOW) 64
function shipping 36
synchronization levels 6
two-phase commit 6
synchronization levels 6, 65
syncpoints 64
T
TCP/IP, communication protocol 5
temporary storage, function shipping 33
terminal-not-known condition 43
terminals, shipping definitions 43
transaction hierarchy 61
transaction routing 28, 39, 45
ATI (automatic transaction initiation) 41
basic mapping support (BMS) 39, 44
dynamic transaction routing 41
eligible sessions 39
eligible terminals 39
initiating transaction routing 40
pseudoconversation 40
relay program 43
routing transaction, CRTE 44
shipping terminal definitions 43
static transaction routing 40
terminal-initiated transaction routing 40
transformer program 34
transient data, function shipping 33
two-phase commit 6
U
unit of work (UOW) 64
UOW (unit of work) 64
user exits
XALTENF 53
XICTENF 53
Index 77
78 Interproduct Communication
Sending your comments to IBM
If you especially like or dislike anything about this book, please use one of the
methods listed below to send your comments to IBM.
Feel free to comment on what you regard as specific errors or omissions, and on
the accuracy, organization, subject matter, or completeness of this book.
Please limit your comments to the information in this book and the way in which the
information is presented.
To ask questions, make comments about the functions of IBM products or systems,
or to request additional publications, contact your IBM representative or your IBM
authorized remarketer.
When you send comments to IBM, you grant IBM a nonexclusive right to use or
distribute your comments in any way it believes appropriate, without incurring any
obligation to you.
You can send your comments to IBM in any of the following ways:
v By mail, to this address:
User Technologies Department (MP095)
IBM United Kingdom Laboratories
Hursley Park
WINCHESTER,
Hampshire
SO21 2JN
United Kingdom
v By fax:
From outside the U.K., after your international access code use
441962816151
From within the U.K., use 01962816151
v Electronically, use the appropriate network ID:
IBMLink: HURSLEY(IDRCF)
Internet: idrcf@hursley.ibm.com
Printed in USA
SC34-6267-00
Spine information: