Message Queue Manager

Standard-Format Queries

The following list describes the syntax and semantics of MQM's standard queries, used to obtain message queue information from the underlying software in order to display the MQM graphical representation. Information on these elements will be found elsewhere in the MQM Web pages.


Standard queries
Data types
Active updating mechanism

Standard Queries

All queries return an integer status code. Arguments marked "IN" are used but not updated by the query routines. Arguments marked "OUT" are updated. Arguments marked "INOUT" are both used and updated. The list does not include gather, scatter, reduction, or more complex collective operations, since these operations are not supported by the current version of MQM.

The queries have been organized into three groups, each containing all queries that share an argument structure.

  1. MQM_GetProcessList

    Returns process count and a list of all processes in the application.

    Arguments:      OUT:    MQM_process_list_size

  2. MQM_WaitingMsgs
  3. MQM_IncompleteSends
  4. MQM_WaitingSends
  5. MQM_IncompleteRecvs
  6. MQM_WaitingRecvs

    Returns count and list of descriptors for all messages satisfisfying the appropriate condition:

    • WaitingMsgs - messages queued to be received; applies to the destination of all send operations and send portion of combined point-to-point communication.
    • IncompleteSends - messages being sent by nonblocking operations; applies to the source of nonblocking sends, either acknowledged or unacknowledged.
    • WaitingSends - messages being sent by blocking operations; applies to the source of blocking sends, either acknowledged or unacknowledged.
    • IncompleteRecvs - messages being received by nonblocking operations; applies to the destination of nonblocking receives.
    • WaitingRecvs - messages being received by blocking operations; applies to the destination of blocking receives.
    Arguments:      IN:     MQM_process_list_size
                    OUT:    MQM_desc_list_size

    The queries can be restricted to a subset of processes, by specifying their count/list in the first two arguments. Otherwise, MQM_ALL is used as the first argument to signify all processes, while a null pointer can be used for the second argument. If the OUT arguments return as MQM_NONE and MQM_NULL_LIST, respectively, no processes were found to satisfy the query.

  7. MQM_BarrierArrived

    Returns number and list of processes that are currently blocked at any barrier.

    Arguments:      IN:     MQM_process_list_size
                    OUT:    MQM_process_list_size

    Can be restricted to a process subset as in (2)-(6).

Data Types

Active Updating Mechanism

With active updating, whenever a change in the state of one or more message queues is detected (e.g., at quiescent moments under control of an interactive debugger), the underlying software can force MQM to update its displays.

The update is handled by the Update Module as long as the ACTIVE_UPDATE variable in file gui/mqm_main has been set to 1 (the default value). Then, any call to the C routine MQM_ActiveUpdate (in file query_manager/main.c) will cause the Update Module to perform the display update.

MQM home page