Introduction to the RPC Server for IBM MQ

The EntireX RPC Server for IBM® MQ runs as an RPC server and processes RPC client calls. It is used to send messages to and receive messages from an IBM MQ queue. This means that existing EntireX wrappers can be used for communication with IBM MQ. This document covers the following topics:


Overview

The EntireX RPC Server for IBM® MQ allows standard RPC clients to send and receive asynchronous and synchronous messages to an IBM® MQ queue manager. The RPC Server for IBM MQ uses the IBM® MQ base Java classes from IBM. It can connect to an IBM® MQ either as an IBM® MQ client using TCP/IP (client mode) or in so-called bindings mode where it is connected directly to IBM® MQ running on the same machine. Note that on z/OS, only bindings mode is supported.

The RPC Server for IBM MQ runs as an RPC server and processes RPC client calls. An RPC client can send an asynchronous message ( MQPUT call) if it uses a program with IN parameters. An RPC client can receive an asynchronous message if it uses a program with OUT parameters ( MQGET call). The receiver must use the same parameters in a program as the sender, but with the direction OUT instead of IN. Processing of synchronous messages (request/reply scenario) is possible if the program uses a mixture of IN and OUT parameters. For possibilites on how RPC data is mapped to MQ messages, see Mapping RPC Data to the MQ Message Buffer. The images below illustrate message transport when sending and receiving messages. If the RPC client application uses conversational RPC, the MQ calls are issued transactionally (using the SYNCPOINT option), a Backout Conversation will send a backout to the queue manager, and a Commit Conversation will send a commit to the queue manager.

The RPC Server for IBM MQ registers to one RPC service. On the MQ side it uses one input queue and one output queue.

Sending a Message to an IBM MQ Queue

graphics/sendMessage.png

Note:
All messages sent to an RPC Server for IBM MQ instance via a specific RPC service are put on the same MQ output queue.

Receiving a Message from an IBM MQ Queue

graphics/receiveMessage.png

Note:
All messages retrieved by the RPC Server for IBM MQ from the MQ input queue are passed to the same RPC service. Messages are retrieved in the order they appear on the queue.

Administration using Command Central

Software AG Command Central is a tool that enables you to manage your Software AG products remotely from one location. Command Central offers a browser-based user interface, but you can also automate tasks by using commands to remotely execute actions from a terminal or custom script (for example CI servers such as Jenkins, or generic configuration management tools such as Puppet or Chef).

graphics/intro_cc.png

Command Central can assist with the following configuration, management, and monitoring tasks:

  • Infrastructure engineers can see at a glance which products and fixes are installed, where they are installed, and compare installations to find discrepancies.

  • System administrators can configure environments by using a single web user interface or command-line tool. Maintenance involves minimum effort and risk.

  • Release managers can prepare and deploy changes to multiple servers using command-line scripting for simpler, safer lifecycle management.

  • Operators can monitor server status and health, as well as start and stop servers from a single location. They can also configure alerts to be sent to them in case of unplanned outages.

The Command Central graphical user interface is described under Administering the RPC Server for IBM MQ using the Command Central GUI. For the command-line interface, see Administering the RPC Server for IBM MQ using the Command Central Command Line.

The core Command Central documentation is provided separately and is also available under Guides for Tools Shared by Software AG Products on the Software AG documentation website.

Worker Models

graphics/intro_workerModels-wmq.png

RPC requests are worked off inside the RPC server in worker threads. Every RPC request occupies during its processing a worker thread. If you are using RPC conversations, each RPC conversation requires its own thread during the lifetime of the conversation. The RPC Server for IBM MQ can adjust the number of worker threads to the number of parallel requests. The RPC server provides two worker models:

  • FIXED
    The fixed model creates a fixed number of worker threads. The number of worker threads does not increase or decrease during the lifetime of an RPC server instance.

  • DYNAMIC
    The dynamic model creates worker threads depending on the incoming load of RPC requests.

For configuration with the Command Central GUI, see Worker Scalability under Configuration > Server.

For technical details, see property entirex.server.fixedservers under Administering the RPC Server for IBM MQ with Local Scripts.