Accessing IBM MQ features from an IBM MQ classes for JMS application
IBM MQ classes for JMS provides facilities to exploit a number of features of IBM MQ.
Attention: These features are outside the JMS specification or, in certain cases, violate the JMS specification. If we use them, the application is unlikely to be compatible with other JMS providers. Those features which do not comply with the JMS specification are labeled with an Attention notice.
- Reading and writing the message descriptor from an IBM MQ classes for JMS application
You control the ability to access the message descriptor (MQMD) by setting properties on a Destination and a Message.- Accessing IBM MQ Message data from an application using IBM MQ classes for JMS
We can access the complete IBM MQ message data within an application using IBM MQ classes for JMS. To access all the data, the message must be a JMSBytesMessage. The body of the JMSBytesMessage includes any MQRFH2 header, any other IBM MQ headers, and the following message data.- JMS persistent messages
IBM MQ classes for JMS applications can use the NonPersistentMessageClass queue attribute to provide better performance for JMS persistent messages, at the expense of some reliability.- Use TLS with IBM MQ classes for JMS
IBM MQ classes for JMS applications can use Transport Layer Security (TLS) encryption. To do this they require a JSSE provider.- Writing channel exits in Java for IBM MQ classes for JMS
You create channel exits by defining Java classes that implement specified interfaces.- Configure IBM MQ classes for JMS to use channel exits
An IBM MQ classes for JMS application can use channel security, send, and receive exits on the MQI channel that starts when the application connects to a queue manager. The application can use exits written in Java, C, or C++. The application can also use a sequence of send or receive exits that are run in succession.- Specify the user data to be passed to channel exits when using IBM MQ classes for JMS
Up to 32 characters of user data can be passed to a channel exit when it is called.- Use a client channel definition table with IBM MQ classes for JMS
An IBM MQ classes for JMS application can use client connection channel definitions that are stored in a client channel definition table (CCDT). You configure a ConnectionFactory object to use the CCDT. There are some restrictions on its use.- Automatic JMS client reconnection
Configure your JMS client to reconnect automatically following a network, queue manager, or server failure.- IBM MQ classes for JMS object pooling
Using a form of connection pooling outside of Java EE helps to reduce overall load resulting, for example, from some stand-alone applications using frameworks, or being deployed into cloud environments, and also from a greater number of client connections into QueueManagers leading to an increase in server consolidation of applications and queue managers- Sharing a TCP/IP connection in IBM MQ classes for JMS
Multiple instances of an MQI channel can be made to share a single TCP/IP connection.- Specify a range of ports for client connections in IBM MQ classes for JMS
Use the LOCALADDRESS property to specify a range of ports that the application can bind to.- Channel compression in IBM MQ classes for JMS
An IBM MQ classes for JMS application can use IBM MQ facilities to compress a message header or data.- Put messages asynchronously in IBM MQ classes for JMS
Normally, when an application sends messages to a destination, the application has to wait for the queue manager to confirm that it has processed the request. We can improve messaging performance in some circumstances by choosing instead to put messages asynchronously. When an application puts a message asynchronously, the queue manager does not return the success or failure of each call, but we can instead check for errors periodically.- Use read ahead with IBM MQ classes for JMS
The read ahead functionality that is provided by IBM MQ allows non-persistent messages that are received outside of a transaction to be sent to the IBM MQ classes for JMS before an application requests them. The IBM MQ classes for JMS store the messages in an internal buffer, and pass the messages to the application when the application asks for them.- Retained publications in IBM MQ classes for JMS
An IBM MQ classes for JMS client can be configured to use retained publications.Parent topic: Writing IBM MQ classes for JMS applications