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 GlassFish Message Queue 4.4 Technical Overview, 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
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
Temporary topics and queues
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.