Use this task to configure a JMS connection factory so that applications
can use a bootstrap server with a non-default endpoint address.
Why and when to perform this task
To use JMS destinations of the default messaging provider, an
application connects to a messaging engine on the target service integration
bus to which the destinations are assigned. For example, a JMS queue is assigned
to a queue destination on a service integration bus.
Applications running
in a server that is a member of a bus can locate a messaging engine in that
bus. Client applications running outside of an application server - for example,
running in a client container or outside the WebSphere Application Server
environment - cannot locate directly a suitable messaging engine to connect
to in the target bus. Similarly, an application running on a server in one
cell to connect to a target bus in another cell cannot locate directly a suitable
messaging engine to connect to in the target bus.
In these scenarios,
the clients (or servers in another bus) must complete a bootstrap process
through a bootstrap server that is a member of the target bus.
A bootstrap server is an application server running the SIB Service, but does
not need to be running any messaging engines. The bootstrap server selects
a messaging engine that is running in an application server that supports
the desired target transport chain. For the bootstrap process
to be possible, you must configure one or more provider end points in the
connection factory used by the client.
Figure 1. 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.
A bootstrap server uses a specific
port and bootstrap transport chain. The port is the SIB_ENDPOINT_ADDRESS (or
SIB_ENDPOINT_SECURE_ADDRESS if security is enabled), of the messaging engine
hosting the remote end of the link. Together with host name, these form the endpoint
address of the bootstrap server.
The properties of a JMS connection
factory used by an application control the selection of a suitable messaging
engine and how the application 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, by default, applications try to use a bootstrap server on the same
host as the client, and using port 7276 and the predefined bootstrap transport
chain called BootstrapBasicMessaging.
If you want an application to use a bootstrap
server with a different endpoint address, you need to specify the required
endpoint address on the Provider endpoints property
of the JMS connection factories that the client application uses. You can
specify one or more endpoint addresses of bootstrap servers.
The endpoint
addresses for bootstrap servers must be specified in every JMS 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.
This
task is based on an application that uses a unified JMS connection factory.
You can use the same task to configure a JMS queue connection factory or JMS
topic connection factory, but during the task would need to select the appropriate
type of connection factory instead of JMS connection factory.
For
an application to use a bootstrap server with a non-default endpoint address,
complete the following steps.
Steps for this task
- Identify the endpoint address of the application server that you
want to use as the bootstrap server. The endpoint address has the
form host_name:port_number:chain_name where:
- host_name
- is the name of the host on which the server runs. It can be an IP address.
In the case of an IPv6 address, put square braces ([]) around host_name as
shown in the example below:
[2002:914:fc12:179:9:20:141:42]:7276:BootstrapBasicMessaging
.
If a value is not specified, the default is localhost.
- port_number
- where specified, is one of the following addresses of the messaging engine
hosting the remote end of the link:
- SIB_ENDPOINT_ADDRESS if security is not enabled
- For secure connections, SIB_ENDPOINT_SECURE_ADDRESS if security is enabled.
If port_number is not specified, the default is 7276.
To
find either of these values using the WebSphere administrative console, complete
the following steps:
- In the navigation pane, click
- In the content pane click the name of the server.
- Under Communications, click Ports
- chain_name
- is the name of a predefined bootstrap transport chain used to connect
to the bootstrap server. If not specified, the default is BootstrapBasicMessaging.
The
following predefined bootstrap transport chains are provided:
- BootstrapBasicMessaging
- This corresponds to the server transport chain InboundBasicMessaging (JFAP-TCP/IP)
- BootstrapSecureMessaging
- This corresponds to the server transport chain InboundSecureMessaging
(JFAP-SSL-TCP/IP)
- BootstrapTunneledMessaging
- Before you can use this bootstrap transport chain, you must define a corresponding
server transport chain on the bootstrap server. (See Servers > Application
servers > server_name > Messaging engine inbound transports.)
This transport chain tunnels JFAP using HTTP wrappers.
- BootstrapTunneledSecureMessaging
- Before you can use this bootstrap transport chain, you must define a corresponding
server transport chain on the bootstrap server. (See Servers > Application
servers > server_name > Messaging engine inbound transports.)
This transport chain tunnels JFAP using HTTP wrappers.
If you want to provide more than one bootstrap server, identify
all the required endpoint addresses.
You should be able
to specify the endpoint address for each bootstrap server; for example: for
a server assigned non-secure port 7278, on host boothost1, and using the default
transport chain BootstrapBasicMessaging:boothost1:7278:BootstrapBasicMessaging
or
boothost1:7278
and for a server assigned secure port 7289, on host boothost2,
and using the predefined transport chain BootstrapTunneledSecureMessaging:boothost2:7289:BootstrapTunneledSecureMessaging
- Configure the endpoint address of the bootstrap server on the Provider
endpoint property of the connection factory.
Option |
Description |
If the client application uses a JMS connection factory in
the client container, use the Client Resource Configuration tool (ACRCT): |
- Start the tool and open the EAR file for which you want to configure the
JMS connection factory. The EAR file contents are displayed in a tree view.
- From the tree, select the JAR file in which you want to configure the
JMS connection factory.
- Expand the JAR file to view its contents.
- Expand .
- Display the general properties of the connection
factory:
- On the General tab, ensure that the Provider Endpoints property
includes the provider endpoint address for each bootstrap server. Type the
value as a comma-separated list of endpoint addresses; for example:
boothost1:7278,boothost2:7289:BootstrapTunneledSecureMessaging
- Click OK.
- To save your changes, click .
|
If the client application uses a JMS connection factory on
the server, use the WebSphere administrative console: |
- Start the WebSphere administrative console.
- Display the default messaging provider. In the navigation pane, expand .
This displays in the content pane a
table of properties for the default messaging provider, including links to
the types of JMS resources that it provides.
- Change the Scope check box
to set the level at which the connection factory is to be visible, according
to your needs.
- In the content pane, under Additional Properties, click JMS
connection factory. This displays any existing connection factories
in the content pane.
- Display the general properties of the connection
factory:
- Ensure that the Provider Endpoints property includes
the provider endpoint address for each bootstrap server. Type the value as
a comma-separated list of endpoint addresses; for example:
boothost1:7278,boothost2:7289:BootstrapTunneledSecureMessaging
- Click OK.
- Save your changes to the master configuration.
|