The Message Queue product is an enterprise messaging system that implements the JavaTM Message Specification (JMS) standard as a JMS provider. Message Queue developers can use two programming interfaces to establish a connection to the broker, and send or receive messages:
C clients use the API described in this manual to send messages to and retrieve messages from a Message Queue broker.
Java clients use the Java API, described in the Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients, to send messages to and receive messages from a Message Queue broker.
Message Queue provides a C API to its messaging services to enable legacy C applications and C++ applications to participate in JMS-based messaging. It is important to understand however that the Java Message Service specification is a standard for Java clients only; thus the C API described in this book is specific to the Message Queue provider and cannot be used with other JMS providers. A messaging application that includes a C client cannot be handled by another JMS provider.
The C interface, compared to the Java interface, does not support the following features:
The use of administered objects
Map, stream, or object message types
Consumer-based flow control
Queue browsers
JMS application server facilities (ConnectionConsumer, distributed transactions)
Receiving or sending SOAP messages
Receiving or sending compressed JMS messages
Auto-reconnect or failover, which allows the client runtime to automatically reconnect to a broker if a connection fails
The NO_ACKNOWLEDGE mode
Like the Java interface, the C interface does support the following:
Publish/subscribe and point-to-point connections
Synchronous and asynchronous receives
CLIENT, AUTO, and DUPS_OK acknowledgement modes
Local transactions
Session recover
Temporary topics and queues
Message selectors
The JMS programming model is the foundation for the design of a Message Queue C client. Chapter 2, Using the C API explains how this model is implemented by the C data types and functions used by a Message Queue C client for delivery of messages.
The next section provides a quick introduction to building and running Message Queue clients.