Choosing between Half-Duplex and Full-Duplex Conversations
On a half-duplex conversation, only one program has the right to send data at a time. The right to send data must be transferred to the partner program when the program has finished sending and is ready to receive data. On a full-duplex conversation, both programs have the right to send data at the same time and can therefore send and receive data simultaneously. For example, the inquiry and database update types of conversation are naturally half-duplex.
Use a half-duplex conversation if the data that your program receives next depends on the partner program's processing of the data your program is currently sending. For example, the inquiry and database update types of conversations are naturally half-duplex.
Use a half-duplex conversation if your program uses confirmation services. Confirmation is not supported on full-duplex conversations.
Use a full- duplex if the data that your program sends is independent of the data that the partner program sends. For example, an industrial process control program that continuously sends information from sensory devices (for example, temperature, pressure, concentration level) and simultaneously receives and processes operational instructions from a manager program, should use a full-duplex conversation.
You can write a transaction program to participate in conversations that use confirmation requests and in conversations that do not use confirmation requests.