WebSphere WebSphere Application Server Network Deployment, Version 6.0.x Operating Systems: AIX, HP-UX, Linux, Solaris, Windows

Connecting applications to a service integration bus

This topic describes factors that affect how applications connect to a service integration bus so that they can use resources provided by that bus.

To connect to a service integration bus, an application actually connects to a messaging engine on the bus.

In the simplest case, you can configure the environment to automatically connect applications to any available messaging engine on the bus. You can specify extra configuration details to control the connection process; for example, to identify special bootstrap servers, or to limit connection to a subgroup of available messaging engines.

In the case of JMS, the information that controls the connection process is configured on a JMS connection factory.

Applications running in an application server

Applications that are running inside an application server can locate a suitable messaging engine themselves.

If the messaging engine is found in the same server, a connection is created that provides the application with the fastest available connection to a messaging engine. Otherwise, if a messaging engine is found in another process - on the same or a different host - a remote connection is made. If no suitable messaging engine is found the application fails to connect to the bus.

Figure 1. Connection to an messaging engine - Applications running in an application server. This figure shows two applications running in application servers. Application X, on server1, has connected to the messaging engine running in the same server. Application Y, on server2 has connected to the messaging engine running in server3 on a different host, because server2 does not have a suitable messaging engine.This figure shows two applications running in application servers. Application X, on server1, has connected to the messaging engine running in the same server. Application Y, on server2 has connected to the messaging engine running in server3 on a different host, because server2 does not have a suitable messaging engine.

Applications running outside an application server

Client applications running outside of an application server - for example, running in a client container or outside the WebSphere environment - cannot locate a suitable messaging engine themselves and must complete a bootstrap process through a bootstrap server. A bootstrap server is an application server running the SIB Service service, but does not need to be running any messaging engines. The bootstrap server selects a messaging engine that supports the desired target transport chain.

Figure 2. Connection to an messaging engine - Applications running outside an application server. This figure shows a client application running outside an application server. To connect to a messaging engine, the application connects first to a bootstrap server. The bootstrap server selects a messaging engine then tells the client application to connect to that messaging engine.This figure shows a client application running outside an application server. To connect to a messaging engine, the application connects first to a bootstrap server. The bootstrap server selects a messaging engine then tells the client application to connect to that messaging engine.

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

The properties of a JMS connection factory used by a client application control the selection of a suitable messaging engine and how the client connects to the selected messaging engine. By default, a connection factory tries to use a bootstrap server that has an endpoint address of localhost:7276:BootstrapBasicMessaging. That is, the client application tries to use a bootstrap server on the same host as the client, and using port 7276 and the predefined bootstrap transport chain called BootstrapBasicMessaging.

When you create an application server, it is automatically assigned a unique non-secure bootstrap port, SIB_ENDPOINT_ADDRESS, and a secure bootstrap port, SIB_ENDPOINT_SECURE_ADDRESS. If you want to use an application server as a bootstrap server, and the server has been assigned a non-secure port other than 7276, or you want to use the secure port, then you need to specify the endpoint address of the server on the Provider endpoints property of the connection factory.

The bootstrap server selects a messaging engine that is running in an application server that supports a desired target transport chain.

The endpoint addresses for bootstrap servers must be specified in every connection factory that is used by applications outside of an application server. 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 need to specify a short list of bootstrap servers on each connection factory.

Configuring the selection process

The selection process is used to choose a messaging engine that an application should connect to so that it can use the resources of a service integration bus. The information that controls the selection process is configured on the connection factory (or programmatically by the application). The information is used to find the most suitable messaging engine in the bus for the application to connect to. You can configure the properties of the connection factory to restrict the range of messaging engines that applications can connect to.

The default configuration enables applications to connect to any available messaging engine in the bus. For this configuration, you only need to specify the one required connection property, Bus name, which sets the name of the bus to which the application wants to connect.

Although a connection can be made to any available messaging engine, the connection process applies a few simple rules to find the most suitable messaging engine to connect the application to.
  1. For an application running in an application server, the process looks for a messaging engine in the required bus within the same application server. If a messaging engine in the required bus is found in the same application server then a connection is made from the application to the messaging engine. If a suitable messaging engine is not found, the next rule is checked.
  2. For an application running in an application server, the process looks for a messaging engine that is running on the same host as the application. For an application running outside an application server, the process looks for a messaging engine that is running on the same host as the bootstrap server. If a messaging engine is found running on that host, then the application makes a remote connection to the selected messaging engine. If a suitable messaging engine is not found, the next rule is checked.
  3. The process looks for a messaging engine anywhere in the bus. If a suitable messaging engine is found the application makes a remote connection to the selected messaging engine. If a suitable messaging engine is not found, the connection attempt fails.

You can restrict the range of suitable messaging engines to a subgroup of those available in the service integration bus, by using the connection properties of the connection factory.

Target inbound transport chain
The messaging engine inbound transport chain that must be supported by the application server in which the messaging engine runs.

These transport chains specify the communication protocols that can be used to communicate with the application server that the client application is connected to. The following predefined messaging engine inbound transport chains are provided:

InboundBasicMessaging
JFAP over TCP/IP
InboundSecureMessaging
JFAP over SSL over TCP/IP
Connection proximity
For an application running in an application server, this property defines the proximity of messaging engines relative to the application server. For an application running outside an application server, this property defines the proximity of messaging engines relative to the bootstrap server.
Bus

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

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 messaging engines.

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

Host
A suitable messaging engine in the same server is selected ahead of a suitable messaging engine in the same host.
Server
Target group
The name of a target that resolves to a group of messaging engines on which the connection proximity check is applied to select a suitable messaging engine.

Before the connection proximity search is performed the set of messaging engines that are members of the specified target group are selected. The connection proximity search is then restricted to these messaging engines. If a target group is not specified (the default), then all messaging engines 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 group specifies the name of the bus member from which suitable messaging engines can be chosen.

Target type
The type of target named in the Remote target group parameter; for example, if set to Bus member, the connection factory retrieves the active messaging engines in the named bus member.
Bus member name
Custom messaging engine group name
Messaging engine name
Target significance
This property defines whether or not the connection proximity search must be restricted to only the messaging engines in the target group.
Preferred
Required
Related concepts
Using a JNDI namespace to connect to different JMS provider environments
Related tasks
Defining outbound chains for bootstrapping
Configuring connection to a non-default bootstrap server
Configuring the messaging engine selection process for applications
Related reference
Port number settings in WebSphere Application Server versions

Concept topic

Terms of Use | Feedback

Last updated: 5 Oct 2005
http://publib.boulder.ibm.com/infocenter/ws60help/index.jsp?topic=/com.ibm.websphere.pmc.nd.doc\concepts\cjb0001_.html

© Copyright IBM Corporation 2004, 2005. All Rights Reserved.
This information center is powered by Eclipse technology. (http://www.eclipse.org)