The Java Message Service (JMS) communication point is used to send and receive messages from a JMS Queue (point-to-point connection) or Topic (publish/subscribe connection). The JMS communication point provides a generic way of uploading and downloading messages to a JMS service. It has a JMS 1.1-compatible interface which facilitates the sending and receiving of JMS-compatible messages between third-party messaging services.

A Java Naming and Directory Interface (JNDI) is used to provide a JMS 1.1-compatible implementation at runtime. The InitialContextFactory and ProviderURL properties define the type and location of the JNDI provider used by the communication point, while the connection factory implementation is retrieved from the JNDI provider and is used to establish connections to the messaging service. The retrieved connection factory automatically configures, among other connection details, the appropriate host, port, channel and queue manager.

The IBM Series implementation does not use a JNDI provider and instead implements the connection factory locally and sets the host, port, channel and queue manager manually.

Both the JNDI and IBMSeries implementations require the appropriate .jar files to be added to the Auxiliary Files tab. For example, when using a JMS communication point:

  • To connect to a JMS server such as JBossMQ, the required files are:
    • jbossmq-client.jar
    • jnp-client.jar
  • For a JNDI implementation, using LDAP server, the required files are:
    • ldap.jar, providerUtil.jar
    • jta.jar, dhbcore.jar
    • com.ibm.mq.jar
    • com.ibm.mqjms.jar
  • For a manual implementation, the required files are:
    • jta.jar, connnector.jar
    • dhbcore.jar
    • com.ibm.mq.jar
    • com.ibm.mqjms.jar

The connection created by the connection factory is used to create:

  • Input message consumer.
  • Output queue sender or topic publisher.

For examples on how to configure the JMS communication point:

Supported Operational Modes: All

Input Mode Properties

Property

Description

Implementation

How the connection factory and destinations (Queue/Topic) are created or retrieved:

  • IBM Series.
  • JNDI (default).
  • Glassfish v2. 

If you are using Glassfish, it is recommended you disable the logging of broker and connection information to prevent the Rhapsody log from growing very large. To disable the logging, add the following to the log4j.properties file to disable the log entries:

log4j.logger.javax.resourceadapter.mqjmsra.outbound.connection=OFF

For the changes in the log4j.properties file to take effect, Rhapsody does not need to be restarted.   

InitialContextFactory

The classname of the JNDI initial context factory.

ProviderURL

The URL used to connect to the JMS provider.

Topic Connection Factory

The JNDI name or classname of the Topic connection factory.

This property is only available if Topic is selected in the Input Destination Type.

Queue Connection Factory

The JNDI name or classname of the Queue connection factory.

This property is only available if Queue is selected in the Input Destination Type.

Host Name

The hostname or IP address of the system that runs the Queue Manager.

Host Port

The port number on which the Queue Manager listens.

Queue Manager

The name of the Queue Manager.

Channel

The name of the channel for the Queue Manager to communicate with Rhapsody.

Broker Queue Manager

The name of the controlling broker if different from the Queue Manager name. Required for Topic connection types.

ClientID

The client identifier to use with the destination connection. The identifier associates a connection and its objects with a state maintained on behalf of the client by a provider. In other words, the messaging provider can group messages by the client identifier.

Connection Username

The username to use when opening a connection socket to the Queue Manager.

Connection Password

The password to use when opening a connection socket to the Queue Manager.

Use SSL

Whether to use SSL for this connection:

  • Enabled.
  • false (default).

Cipher Suite

The cipher suite to use when creating an SSL connection.

This property is only available if Use SSL is enabled.

Secure Keys

Click ... to select the private keys to use when authenticating Rhapsody's end of the SSL connection.

This property is only available if Use SSL is enabled.

Trusted Certificates

Click ... to select the certificates to use when authenticating Rhapsody's end of the SSL connection.

This property is only available if Use SSL is enabled.

Additional Parameters

Click ... to provide additional standard JMS configuration parameters when configuring the initial JMS context.

Custom Parameters

Click ... to provide additional custom parameters when configuring the initial JMS context.

Message Selector

Determines which messages are read from the destination. This is an SQL92 style expression.

Input Destination

The JNDI name of the Queue or Topic, associated with the Queue Manager, where messages will be received.

Input Destination Type

Whether the Input Destination is a Queue (point-to-point connection) or Topic (publish/subscribe connection):

  • Queue (default).
  • Topic.

JMS Input Properties

A list of property names that will be read from the incoming JMS message and set on the Rhapsody message. The Rhapsody property will have the same name as the properties defined in this list. Click ... to set the input JMS property name and its corresponding Rhapsody property name.

User Input Properties

User-defined properties to copy from the JMS message to the Rhapsody message. Click ... to set the properties.

Subscription Name

The name of the durable subscription.

This property is only available if Topic is selected in the Input Destination Type.

Ignore Local Messages

Whether locally generated messages should be ignored:

  • Enabled.
  • False (default).

This property is only available if Topic is selected in the Input Destination Type.

Input Message Encoding

If the incoming message is a text message, the character set to use for encoding input text messages to bytes. The default message encoding is UTF-8.

Receiving Mode

How Rhapsody is to receive messages from the JMS Server:

  • Listening - implements the MessageListener interface in the JMS API when the JMS Server pushes JMS messages to the communication point.
  • Polling (default) - the communication point pulls messages from the server.

Output Mode Properties

Property

Description

Implementation

How the connection factory and destinations (Queue/Topic) are created or retrieved:

  • IBM Series.
  • JNDI (default).
  • Glassfish v2

If you are using Glassfish, it is recommended you disable the logging of broker and connection information to prevent the Rhapsody log from growing very large. To disable the logging, add the following to the log4j.properties file to disable the log entries:

log4j.logger.javax.resourceadapter.mqjmsra.outbound.connection=OFF

For the changes in the log4j.properties file to take effect, Rhapsody does not need to be restarted.   

InitialContextFactory

The classname of the JNDI initial context factory.

ProviderURL

The URL used to connect to the JMS provider.

Topic Connection Factory

The JNDI name or classname of the Topic connection factory.

This property is only available if Topic is selected in the Input Destination Type.

Queue Connection Factory

The JNDI name or classname of the Queue connection factory.

This property is only available if Queue is selected in the Input Destination Type.

Host Name

The hostname or IP address of the system that runs the Queue Manager.

Host Port

The port number on which the Queue Manager listens.

Queue Manager

The name of the Queue Manager.

Channel

The name of the channel for the Queue Manager to communicate with Rhapsody.

Broker Queue Manager

The name of the controlling broker if different from the Queue Manager name. Required for Topic connection types.

ClientID

The client identifier to use with the destination connection. The identifier associates a connection and its objects with a state maintained on behalf of the client by a provider. In other words, the messaging provider can group messages by the client identifier.

Connection Username

The username to use when opening a connection socket to the Queue Manager.

Connection Password

The password to use when opening a connection socket to the Queue Manager.

Use SSL

Whether to use SSL for this connection:

  • Enabled.
  • False (default).

Cipher Suite

The cipher suite to use when creating an SSL connection.

This property is only available if Use SSL is enabled.

Secure Keys

Click ... to select the private keys to use when authenticating Rhapsody's end of the SSL connection.

This property is only available if Use SSL is enabled.

Trusted Certificates

Click ... to select the certificates to use when authenticating Rhapsody's end of the SSL connection.

This property is only available if Use SSL is enabled.

Additional Parameters

Click ... to provide additional standard JMS configuration parameters when configuring the initial JMS context.

Custom Parameters

Click ... to provide additional custom parameters when configuring the initial JMS context.

Output Destination

The JNDI name of the Queue or Topic, associated with the Queue Manager, where messages will be sent.

Output Destination Type

Whether the Output Destination is a Queue (point-to-point connection) or Topic (publish/subscribe connection):

  • Queue (default).
  • Topic.

JMS Output Properties

A list of property names that will be read from the Rhapsody message and set on the outgoing JMS message. The JMS property will have the same name as the properties defined in this list. Click ... to set the output JMS property name and its corresponding Rhapsody property name.

User Output Properties

User-defined properties to copy from the Rhapsody message to the JMS message. Click ... to set the properties.

Output Message Type

JMS message type to output:

  • Bytes.
  • Object (default).
  • Text.

Output Message Encoding

If the outgoing message is a text message, the character set to use for encoding output text messages to bytes. The default encoding is UTF-8.

Bidirectional, In->Out and Out->In Mode

The configuration properties for the JMS communication point in Bidirectional, In->Out and Out->In modes are a combination of the properties described above.

Refer to In->Out and Out->In Properties for general details on a communication point's In->Out and Out->In modes.