+

Search Tips   |   Advanced Search

How JMS applications connect to an messaging engine on a bus


Overview

Applications connect to messaging engines (ME) on a service integration bus. Connections are generally automatic to any available ME, however, you can influence the connection process to...

If the ME is found in the same server, a connection is created to fastest available ME. Otherwise, if a ME is found in another JVM process - on the same or a different host - a remote connection is made.

Client applications running outside an appserver, such as in client container or outside the WAS environment, cannot locate a suitable ME themselves and must complete a bootstrap process through a bootstrap server. A bootstrap server is an appserver that is running the SIBService service, but is not necessarily running any MEs. The bootstrap server selects an ME that is running in an appserver that supports the required target transport chain.

A bootstrap server uses a specific port and bootstrap transport chain, which with the host name forms the endpoint address.

localhost:Port:Predefined_bootstrap_transport_chain

By default, a JMS connection factory expects to use a bootstrap server that has an endpoint address of...

localhost:7276:BootstrapBasicMessaging

The client application expects to use...

clienthost:7276:BootstrapBasicMessaging

When you create an appserver, it is automatically assigned a unique non-secure and secure bootstrap ports...

SIB_ENDPOINT_ADDRESS
SIB_ENDPOINT_SECURE_ADDRESS

To use an appserver with a non-secure port other than 7276, specify the endpoint address of the server on the Provider endpoints property of the JMS connection factory.

The endpoint addresses for bootstrap servers must be specified in every connection factory that is used by applications outside of an appserver. To avoid having to specify a long list of bootstrap servers, you can provide a few highly-available servers as dedicated bootstrap servers. Then you only have to specify a short list of bootstrap servers on each connection factory.

 

The ME selection process

The information that controls the selection process is configured in...

JMS client applications JMS connection factory
Message-driven bean applications Activation specification
Other types of application Programmatically by the application

The selection process for an ME...

ME running in the required bus within the same appserver A connection is made from the application to the ME. If no suitable ME found, the next rule is checked.
ME running on the same host as the application The application makes a remote connection to the selected ME. If no suitable ME found, the next rule is checked.
ME running anywhere in the bus The application makes a remote connection to the selected ME. If no suitable ME found, the connection attempt does not succeed.

For an application running outside an appserver, connection requests are workload balanced across all the available MEs in the bus.

To restrict the range of MEs available set the connection properties of the JMS connection factory or activation specification...

Target Identifies a group of MEs.

Before the connection proximity search is performed to select a suitable ME, the set of MEs that are members of the specified target group are selected. The connection proximity search is then restricted to these MEs. If a target group is not specified (the default), all MEs in the bus are considered during the connection proximity search.

For example, if the Target type property is set to Bus member name, the Target property specifies the name of the bus member from which suitable MEs can be chosen.

Target type The type of target named in the Target property.

Bus member name Retrieve the active MEs hosted by the named bus member (an appserver or server cluster).
Custom ME group name Retrieve active MEs registered with the named custom group.
Messaging engine name Retrieve available endpoints used to reach the named ME.
Target significance Define whether the connection proximity search is restricted to only the MEs in the target group.

Preferred If available, it is preferred that an ME is selected from the target group. If not available, an ME outside the target group is selected if available in the same service integration bus.
Required It is required that an ME is selected from the target group. If an ME is not available in the target group, the connection process fails.
Target inbound transport chain Name of the ME inbound transport chain that the application should target when connecting to an ME in a separate process to the application.

Specify the communication protocols used to communicate with the appserver to which the client application is connected. If an ME in another process is chosen, a connection can be made only if the ME is in a server that runs the specified inbound transport chain.

The following predefined ME inbound transport chains are provided:

InboundBasicMessaging JFAP over TCP/IP
InboundSecureMessaging JFAP over SSL over TCP/IP
Connection proximity Define the proximity of MEs relative to the appserver. For apps running outside an appserver, this property defines the proximity of MEs relative to the bootstrap server.

Bus Connections can be made to MEs in the same bus.

A suitable ME in the same server is selected ahead of a suitable ME in the same host, and in turn ahead of a suitable ME in another host.

Cluster Connections can be made to MEs in the same server cluster. If the application is not running in a clustered server, or the bootstrap server is not in a cluster, then there are no suitable MEs.

A suitable ME in the same server is selected ahead of a suitable ME in the same host, and in turn ahead of a suitable ME in another host.

Host Connections can be made to MEs in the same host. A suitable ME in the same server is selected ahead of a suitable ME in the same host.
Server Connections can be made to MEs in the same appserver.

For MDB applications connecting to a cluster bus member, you can enable either of the following...

All servers in the cluster can receive messages from the MDB application Make full use of the processing power in the cluster
Just one server at a time can receive messages from the MDB application Ensure sequential processing of the messages

To create or modify a JMS connection factory...

To create or modify an activation specification...