Software AG Products 10.5 | Administering Integration Server | Configuring Integration Server for JMS Messaging | Working with JMS Connection Aliases | Creating a JMS Connection Alias
 
Creating a JMS Connection Alias
 
Allowing Destinations to Be Managed through the JMS Connection Alias and Designer
Allowing Multiple Connections for a JMS Connection Alias
Creating a Dedicated Listener for Receiving Replies
Configuring Producer Caching for Sending JMS Messages
Configuring Automatic Retry when Sending JMS Messages Using the pub.jms:send Service
When you create a JMS connection alias, keep the following points in mind:
*You can use JNDI to retrieve administered objects (Connection Factories and Destinations) and then use the Connection Factory to create a connection. If you intend to use a JNDI provider, you need to configure one or more JNDI provider aliases before creating a JMS connection alias.
- or -
You can use the native webMethods API to create the connection directly on the webMethods Broker. Because you can create Destinations at the Broker, you do not need to configure a JNDI provider alias if you intend to use the native webMethods API.
Note that if you elect to use the webMethods Broker but do not want to connect natively, you will need to use a JNDI provider and configure one or more JNDI provider aliases.
*Each JMS connection alias has an associated transaction type. Within Integration Server, certain functionality must be completed within a non-transacted session. For example, to use Integration Server to send or receive large message streams, you must specify a JMS connection alias whose transaction type is set to NO_TRANSACTION.
*To create a JMS connection alias
1. Open Integration Server Administrator if it is not already open.
2. In the Settings menu of the Navigation panel, click Messaging.
3. Under JMS Configuration, click JMS Settings.
4. Click Create JMS Connection Alias.
5. Set the following General Settings for the JMS connection alias:
For this field
Specify
Connection Alias Name
Name of the connection alias. Each connection alias represents a connection factory to a specific JMS provider.
Description
A description of the JMS connection alias.
Transaction Type
Whether sessions that use this JMS connection alias will be transacted.
Select
To
NO_TRANSACTION
Indicate that sessions that use this JMS connection alias are not transacted.
LOCAL_TRANSACTION
Indicate that sessions that use this JMS connection alias are part of a local transaction.
XA_TRANSACTION
Indicate that sessions that use this JMS connection alias are part of an XA transaction.
Connection Client ID
The JMS client identifier associated with the connections established by this JMS connection alias.
Note:
The connection client ID can be specified in the JMS connection alias or in the Connection Factory. If the connection client ID is specified in both places, Integration Server uses the value from the Connection Factory. For more information about the connection client ID, see About the Connection Client ID.
User (optional)
User name needed to acquire a connection from the connection factory.
For more information about whether or not the JMS provider requires a user name and password to obtain a connection, refer to the product documentation for the JMS provider.
Password (optional)
Password needed to acquire a connection from the connection factory.
For more information about whether or not the JMS provider requires a user name and password to obtain a connection, refer to the product documentation for the JMS provider.
6. In the Create Connection Using list, select one of the following to indicate how administered objects (connection factories and destinations) will be looked up:
*If you intend to use a JNDI provider, select JNDI Lookup.
*If you intend to use the native webMethods API to create the connection directly on the webMethods Broker, select Native webMethods API.
7. If you selected JNDI Lookup in the Create Connection Using list, do the following in the remaining fields under Connection Protocol Settings:
For this field
Specify
JNDI Provider Alias Name
The alias to the JNDI provider that you want this JMS connection alias to use to look up administered objects. For information about creating a JNDI provider alias, see Creating a JNDI Provider Alias.
Connection Factory Lookup Name
The lookup name for the connection factory that you want to use to create a connection to the JMS provider specified in this JMS connection alias.
If the JMS connection alias connects to Universal Messaging, specify the Universal Messaging connection factory that you created when you set up your environment.
If you are using SonicMQ as the JMS provider, specify the lookup name that refers to the serializable Java object file containing the SonicMQ object definitions. Include the .sjo extension as part of the lookup name.
Create Administered Objects On Demand ( Universal Messaging
Whether Integration Server creates administered objects on the JNDI provider if the object is not found when Integration Server looks up the object.
Select the check box if you want Integration Server to create a destination or connection factory when an JNDI lookup for the object fails. For more information about creating administered objects on demand, see Creating Administered Objects.
To create the administered objects on demand, the JNDI provider must be the Universal Messaging JNDI provider and the JMS provider must be Universal Messaging.
Note:Software AG recommends against using this feature in a production environment. That is, leave the Create Administered Objects On Demand check box cleared for an Integration Server running in production.
Enable Follow the Master ( Universal Messaging )
Whether connections created from this JMS connection alias always connect to the master realm server in the Universal Messaging cluster. This setting affects producer and consumer connections created using this JMS connection alias. Do one of the following:
*Select the Enable Follow the Master check box to indicate that Integration Server always connects to the master realm server in a Universal Messaging cluster when Integration Server uses this JMS connection alias to send or receive messages.
*Clear the Enable Follow the Master check box to disable the follow the master behavior for this JMS connection alias when Integration Server uses this JMS connection alias to send or receive messages.
If your solution uses the round-robin feature for sending JMS messages, disable follow the master for the JMS connection alias.
Note:Enable Follow the Master option is available to JMS connection aliases that use Universal Messaging as the JMS provider.

Monitor webMethods
Connection
Factory

How Integration Server monitors the connection factory object for changes, if at all. This only applies if a JMS connection alias connects to the webMethods Broker using a webMethods Connection Factory object in a JNDI server.
Select
To
No
Indicate that Integration Server will not monitor the connection factory. This is the default.
Poll for changes (specify interval)
Monitor the connection factory by polling for changes at an interval that you specify.

Poll for changes (interval
defined by
 webMethods
Connection Factory)
Monitor the connection factory at an interval determined by the refresh interval specified for the webMethods Connection Factory object. For more information about configuring a cluster connection factory, see Administering webMethods Broker and webMethods Broker Messaging Programmer’s Guide.
Register change listener
Monitor the connection factory by registering an event listener.
Polling Interval (minutes)
The number of minutes between polling attempts. The polling interval must be a positive integer. The default value is 60 minutes.
Note:
This field is only available if you selected Poll for changes (specify interval).
8. If you selected Native webMethods API in the Create Connection Using list, do the following to configure the connection to the Broker Server that you want to use as the JMS provider for this JMS connection alias:
For this field
Specify
Broker Host
Name (DNSname:port or ipaddress:port) of the machine on which the Broker Server resides.
Broker Name
Name of the webMethods Broker as defined on the Broker Server. The default name is Broker #1.
Client Group
The name of the client group to which you want Integration Server to belong when it acts as a JMS client. The client group that you specify must already exist on the Broker Server. The default is IS-JMS.
Broker List
A comma delimited list of Broker Servers on which the connection between the Integration Server (acting as the JMS client) and the Broker (acting as the JMS provider) can exist. This provides connection failover. If a connection failure occurs to the first Broker Server in the list, a connection attempt will be made to the next Broker Server listed. Use the following format for each webMethods Broker:
{webMethods Broker Name]@<host>[:port]
Note:
If a connection to a Broker Server is already configured (via Settings > Messaging > webMethods Messaging Settings), Integration Server populates the fields under Connection Protocol Settings with information about that Broker Server. If that Broker Server functions as the JMS provider, you may not need to edit any information. However, make sure that the Client Group field specifies the client group to which you want Integration Server to belong when it functions as a JMS client.
Keystore
The full path to this Integration Server's keystore file. A keystore file contains the credentials (private key/signed certificate) that an entity needs for SSL authentication. If the Broker Server requires an SSL connection, then the information in this file is used to authenticate the Integration Server client to that Broker Server.
The Integration Server's keystore file is stored on the machine on which the Integration Server resides.
Keystore Type
The file type of the Integration Server's keystore file, which can be either PKCS12 or JKS.
Truststore
The full path to this Integration Server client's truststore file. A truststore file contains trusted root certificates for the authorities responsible for signing SSL certificates. For an SSL connection to be made, a valid trusted root for the SSL certificate stored in the keystore must be accessible in a truststore file.
The Integration Server's truststore file is stored on the machine on which the Integration Server resides.
Truststore Type
The file type of the Integration Server's truststore file, which is JKS.
Encryption
Specify whether or not to encrypt the connection between the Integration Server and the webMethods Broker.
9. Under Advanced Settings, specify the following information for the JMS connection alias:
For this field
Specify
Class Loader
The name of the class loader that you want to use with this JMS connection alias. Integration Server will use the specified class loader when performing certain activities with the JMS connection alias (send a message, receive a message, create a connection, create a destination, etc.)
By default, Integration Server uses the server class loader. However, you can specify the class loader for a package instead. This may be helpful when working with third party JMS providers. For example, you might place the third party jars needed for each JMS provider in separate packages, specifically, in the Integration Server_directory /instances/instance_name/packages/packageName/code/jars directory. This can help prevent conflicts between the jars required for different JMS providers.
Maximum CSQ Size (messages)
The maximum number of messages that can exist in the client side queue for this JMS connection alias. Integration Server writes messages to the client side queue if the JMS provider is not available when messages are sent. Each JMS connection alias has its own client side queue.
Specify -1 if you want the client side queue to be able to contain an unlimited number of messages. That is, specify ‑1 if you do not want to set a maximum limit.
If you specify 0, Integration Serverwill not write messages to the client side queue for this JMS connection alias.
Drain CSQ in Order
Whether Integration Server drains the client side queue by sending the messages to the JMS provider in the same order in which Integration Server placed the messages in the client side queue.
Select the check box if you want Integration Server to send messages from the client side queue in the same order in which Integration Server originally placed the messages in the client side queue.
When the Drain CSQ in Order check box is selected, after the connection to the JMS provider is re-established, Integration Server continues to write new messages to the client side queue until the client side queue is completely drained. If the Drain CSQ in Order check box is not selected, after the connection to the JMS provider is re-established, Integration Server sends new messages directly to the JMS provider while it drains the client side queue.
Note:
You can also specify the number of messages Integration Server retrieves from the client side queue for delivery to the JMS provider at one time. By default, Integration Server sends 25 messages at a time. For more information about the watt.server.jms.csq.batchProcessingSize property, see Server Configuration Parameters.
Create Temporary Queue
Whether Integration Server creates a temporary queue on the JMS provider to handle request-reply operations that do not specify a replyTo destination.
Select the check box if you want Integration Server to create a temporary queue. Clear the check box if you do not want Integration Server to create a temporary queue.
You must select the Create Temporary Queue check box if you want to select the Enable Request-Reply Listener for Temporary Queue check box.
Enable Request-Reply Listener for Temporary Queue
Specifies whether or not Integration Server creates a single dedicated MessageConsumer for receiving synchronous replies delivered to the temporary queue for this JMS connection alias. When this check box is cleared, Integration Server creates a new JMS MessageConsumer for each reply message. In many situations, creating one MessageConsumer per response does not impact performance. However, in some situations, such as when many threads invoke pub.jms:sendAndWait concurrently, creating a MessageConsumer for every expected response can impact performance. When this check box is selected, Integration Server creates a dedicated consumer for receiving replies to requests published using this JMS connection alias. For more information about creating a dedicated listener for receiving replies, see Creating a Dedicated Listener for Receiving Replies.
Enable Destination Management with Designer (Broker and Universal Messaging
Whether users can use Designer to create, list, and modify destinations on the webMethods Broker or when working with JMS triggers.
Select the check box if you want Designer users to be able to create, list, and modify destinations using a JMS trigger that uses this JMS connection alias.
Software AG recommends that you prevent Designer users from managing destinations in a production environment.
For more information about using Designer to manage destinations, see Allowing Destinations to Be Managed through the JMS Connection Alias and Designer .
Create New Connection per Trigger
Whether Integration Server creates a separate connection to the JMS provider for each JMS trigger.
Select the check box if you want Integration Server to create a separate connection for each JMS trigger that uses this JMS connection alias.
If you want a concurrent JMS trigger that uses this JMS connection alias to use multiple connections to the JMS provider, you must configure the alias to create a separate connection per trigger.
10. Under Producer Caching, specify the following to configure pools for caching of JMS Session and MessageProducer objects. For more information about producer caching, see Configuring Producer Caching for Sending JMS Messages.
For this field
Specify
Caching Mode
Whether to enable caching of JMS Session and MessageProducer objects for this connection alias.
Select...
To...
DISABLED
Indicate that Integration Server does not cache JMS Session or MessageProducer objects.
ENABLED PER DESTINATION
Enable caching of JMS Session and MessageProducer objects.
For a non-transacted JMS connection alias, Integration Server caches a Session object and a MessageProducer object.
For a transacted JMS connection alias, Integration Server caches a Session object.
Note:Integration Server supports session caching for transacted JMS connection aliases when the JMS provider is Universal Messaging or WebSphere MQ 7.5. For information about Universal Messaging versions supported with this version of Integration Server, see Supported JMS Providers.
Minimum Session Pool Size (unspecified destinations)
The minimum number of entries in the default session pool. The default is 1.
Maximum Session Pool Size (unspecified destinations)
The maximum number of entries in the default session pool. The default is 30.
Minimum Pool Size per Destination
The minimum number of entries in each destination- specific pool.
Maximum Pool Size per Destination
The maximum number of entries in each destination-specific pool. A value of 0 (or blank) indicates that Integration Server does not create separate pools for any of the destinations associated with the JMS connection alias.
Destination Lookup Name List
A semicolon delimited list of the lookup names for the destinations for which you want Integration Server to create separate pools.
Note:
This field appears only when the JMS connection alias specifies JNDI Lookup for creating the connection to the JMS provider.
Queue List
A semicolon delimited list of the queues for which you want Integration Server to create separate pools.
Note:
This field only appears when the JMS connection alias specifies Native webMethods API for creating the connection to the webMethods Broker.
Topic List
A semicolon delimited list of the topics for which you want Integration Server to create separate pools.
Note:
This field only appears when the JMS connection alias specifies Native webMethods API for creating the connection to the webMethods Broker.
Idle Timeout
The number of milliseconds before Integration Server removes an inactive pool entry. The timeout value applies to the default session pool and the destination-specific pools.
A value of 0 indicates that pool entries never expire. A value of -1 indicates that Integration Server uses the system default as defined by the watt.server.jms.producer.pooledSession.timeout parameter.
This default is 60000 milliseconds
11. Under Producer Retry, specify the following to configure automatic retry of pub.jms:send services that use this JMS connection alias to send a message to the JMS provider. For more information about automatic retry, see Configuring Automatic Retry when Sending JMS Messages Using the pub.jms:send Service.
For this field
Specify
Max Retry Count
The maximum number of times that Integration Server will automatically retry a pub.jms:send service that fails because of a transient error. A value of 0 indicates that automatic retry is disabled for this JMS connection alias. The default is 0.
Retry Interval (milliseconds)
The number of milliseconds that Integration Server waits between retry attempts. The default is 1000 milliseconds (1 second).
Note:
If the JMS connection alias is transacted or uses a connection factory to which the multi-send guaranteed policy is applied, Integration Server ignores the producer retry values.
12. Under Enhanced Logging, specify the following to configure additional logging for the sending and/or receiving of JMS messages that use this messaging connection alias.
For this field
Specify
Logging Type
Where Integration Server writes log messages when enhanced logging is enabled for the message producers and/or consumers that use this JMS connection alias to send and/or receive messages.
*SERVER LOG. Write enhanced logging messages to the server log. If you specify the server log as the destination, make sure to increase the logging level for the 0168 Messaging (Enhanced Logging) server log facility to at least Info.
*MESSAGING AUDIT LOG. Write enhanced logging messages to the messaging audit log.
You can select one of the options only. Integration Server cannot write enhanced logging messages to the server log and the messaging audit log.
Enable Producer Message ID Tracking
Select to indicates that Integration Server writes additional log messages when a message producer uses this JMS connection alias to send messages to a destination in Producer Message ID Tracking: Include Destinations.
Producer Message ID Tracking: Include Destinations
The destination names for which Integration Server performs additional logging when sending messages to the destination. Use a semicolon (;) to separate each destination name. Leave this field blank if you want Integration Server to perform enhanced logging for every destination to which this JMS connection alias sends messages.
Enable Consumer Message ID Tracking
Select to indicate that Integration Server writes additional log messages for messaging consumers (triggers) that use this JMS connection alias to receive messages. Integration Server writes additional log message for the JMS triggers listed in Consumer Message ID Tracking: Include Triggers.
Consumer Message ID Tracking: Include Triggers
The fully qualified name of the JMS triggers for which Integration Server performs additional logging during trigger processing. Use a semicolon (;) to separate each trigger name. Leave this field blank if you want Integration Server to perform enhanced logging for every JMS trigger that uses this JMS connection alias to receive messages.
For more information about using enhanced logging for sending and receiving of JMS messages, Using Enhanced Logging for Messaging.
13. Click Save Changes.
14. Enable the JMS connection alias.