Message Queue provides a C API to its messaging services to enable legacy C applications and C++ applications to participate in JMS-based messaging.
The JMS programming model is the foundation for the design of a Message Queue C client. Oracle GlassFish Message Queue 4.4.2 Developer’s Guide for C Clients explains how this model is implemented by the C data types and functions.
Like the Java interface, the C interface supports the following features:
Publish/subscribe and point-to-point connections
Synchronous and asynchronous receives
CLIENT, AUTO, and DUPS_OK acknowledgement modes
Local and distributed transactions
Temporary topics and queues
However, it is important to understand that the Java Message Service specification is a standard for Java clients only; thus the C Message Queue API 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, 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 (Connection Consumer, 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