Use channel exits not written in Java with IBM MQ classes for Java

How to use channel exit programs written in C from a Java application.

In IBM® WebSphere MQ Version 7.0, we can specify the name of a channel exit program written in C as a String passed to the channelSecurityExit, channelSendExit, or channelReceiveExit fields in the MQEnvironment object or properties Hashtable. However, we cannot use a channel exit written in Java in an application written in another language.

Specify the exit program name in the format library(function) and ensure that the location of the exit program is specified as described in Path to exits.

For information about how to write a channel exit in C, seeChannel-exit programs for messaging channels.


Use external exit classes

In versions of IBM MQ earlier than Version 7.0, three classes were provided to enable you to use channel exits written in languages other than Java:

  • MQExternalSecurityExit, which implements the MQSecurityExit interface
  • MQExternalSendExit, which implements the MQSendExit interface
  • MQExternalReceiveExit, which implements the MQReceiveExit interface
The use of these classes remains valid but the new method is preferred.

To use a security exit that is not written in Java, an application first had to create an MQExternalSecurityExit object. The application specified, as parameters on the MQExternalSecurityExit constructor, the name of the library containing the security exit, the name of the entry point for the security exit, and the user data to be passed to the security exit when it was called. Channel exit programs that are not written in Java were stored in the directory shown inTable 1.