z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Client/server socket programs: Concurrent server socket programs

z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference
SC27-3660-00

A concurrent server accepts a client connection, delegates the connection to a child process of some kind, and immediately signals its availability to receive the next client connection.

The following list describes the concurrent server process.

  1. When a connection request arrives in the main process of a concurrent server, it schedules a child process and forwards the connection to the child process.
  2. The child process takes the connection from the main process.
  3. The child process receives the client request, processes it, and returns a reply to the client.
  4. The connection is closed, and the child process terminates or signals to the main process that it is available for a new connection.

You can implement a concurrent server in the following MVS™ environments:

  • Native MVS (batch job, started task, or TSO). In this environment you implement concurrency by using traditional MVS subtasking facilities. These facilities are available from assembler language programs or from high-level languages that support multitasking or multithreading; for example, C/370™.
  • CICS®. The concurrent main process is started as a long-running CICS task that accepts connection requests from clients, and initiates child processes by way of the EXEC CICS START command. CICS sockets include a generic concurrent server main program called the CICS LISTENER.
  • IMS™. The concurrent main process is started as a BMP that accepts connection requests from clients and initiates child processes by way of the IMS message switch facilities. The child processes execute as IMS message processing programs (MPP). IMS sockets include a generic concurrent server main program called the IMS LISTENER.

In the iterative and concurrent server scenarios described above, client and server processes could have exchanged a series of request and reply sequences before closing the connection.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014