Client/Server Services

XCF client/server services, which makes use of XCF signaling services, can be used to implement a sysplex-wide protocol that allows clients and servers to send and receive messages in a sysplex. XCF provides the following for sending and receiving messages between clients and servers:
  • The IXCSRVR macro, which allows for the definition of servers and server instances
  • The IXCSEND macro, which allows clients to send requests to servers as well as allows servers to send responses to client requests
  • The IXCRECV macro, which allows programs to obtain the state of messages sent through IXCSEND and as well as receive responses to requests sent by servers
  • The IXCREQ macro to format server request messages to be sent to the XCF Server.

The use of the IXCSEND, IXCRECV and IXCSRVR client/server macros to establish sysplex-wide communications between units of work offers an alternative to the existing XCF signalling services for sending and receiving messages in a multi-system XCF group application. Because of the extra interface layer, the traditional XCF signaling services might be better suited to applications with high signaling rates or with stringent performance requirements. Client/server services are well suited for application developers who are interested in using a basic request and response protocol for a sysplex-wide application that results in reduced complexity and implementation. Client/server services are built as a layer on XCF signaling services and provide a simple implementation model that makes use of XCF and sysplex programming best practices. Note that the processing might not be suitable for some performance-sensitive applications.

Some of the differences between using XCF client/server services and XCF signaling services to communicate in a sysplex are:
  • A client/server application does not have the development expense or complexity of joining an XCF group and establishing an association with a designated address space or unit of work to send server requests (messages) to systems within the sysplex.
  • Client/server applications can develop their applications without concern for XCF member cleanup and termination considerations, writing message and completion exits, and status recording and reporting.
  • SRB mode processing is not required to receive messages or process message completion notifications.
  • Servers and clients can run in any address space in the system, and send messages and perform all client/server related processing in task mode.
  • The IXCRECV macro provides the capability to have a unit of work suspended and immediately released when the server responses have been received and are available for processing by the client. XCF manages all resources associated with message delivery, response monitoring, and status handling.

For details, see Using XCF for client/server communication.