What Is a Conversation?
The communication between transaction programs is called a conversation. Conversations occur across LU-LU sessions. A conversation starts when a transaction program issues an APPC verb or CPI Communications call that allocates a conversation. The conversation style associated with the conversation indicates the style of data transfer to be used, two-way alternate or two-way simultaneous.
A conversation that specifies a two-way alternate style of data transfer is also known as a half-duplex conversation. A conversation that specifies a two-way simultaneous style of data transfer is referred to as a full-duplex conversation.
When a full-duplex conversation is allocated to a session, a send-receive
relationship is established between the transaction programs connected to
the conversation, and a two-way alternate data transfer occurs where information
is transferred in both directions, one direction at a time. Like a telephone
conversation, one transaction program calls the other, and they converse
, one transaction program talking at a time, until a transaction program
ends the conversation. One transaction program issues verbs to send data,
and the other transaction program issues verbs to receive data. When it finishes
sending data, the sending transaction program can transfer send control of
the conversation to the receiving transaction program. One transaction program
decides when to end the conversation and informs the other when it has ended.
When a duplex conversation is allocated to a session, both transaction programs connected to the conversation are started in send-and-receive state, and a two-way simultaneous data transfer occurs where information is transferred in both directions at the same time. Both transaction programs can issue verbs to send and receive data simultaneously with no transfer of send control required. The conversation ends when both transaction programs indicate they are ready to stop sending data, and each transaction program has received the data sent by the partner. If an error condition occurs, one transaction program can decide to end both sides of the conversation abruptly.
Parts of a Conversation shows a conversation after it has been set up.

Conversations can exchange control information and data. The transaction program should select the conversation style best-suited for its application.
A Conversation between Two Transaction Programs shows a conversation between two transaction programs as it occurs over a session.

A session can support only one conversation at a time, but one session can support many conversations in sequence. Because multiple conversations can reuse sessions, a session is a long-lived connection compared to a conversation.
When a program allocates a conversation and all applicable sessions are in use, the LU puts the incoming Attach (allocation request) on a queue. It completes the allocation when a session becomes available. See Using the Attach Manager for more information about Attach Manager.
Two LUs can also establish parallel sessions with each other to support multiple concurrent conversations.
Parallel Sessions between LUs shows three parallel sessions between two LUs; each session carries a conversation.

An APPC conversation is a half-duplex conversation. At any instant, only one of the two partner transaction programs has the right to send data. That transaction program is insend state. The other transaction program has the responsibility to receive data. It is said to be in receive state. At specified times, the transaction programs exchange these duties. When the conversation is first set up, the client transaction is in send state and the server program is in receive state.