A bootstrap server is an application server running in the same
cell, specifically the same core group, as the service integration bus.
Why and when to perform this task
Connection to a non-default bootstrap server is provided by a
JMS connection factory. The connection allows applications to use a bootstrap
server with a non-default endpoint address. The provider endpoint syntax example
described here is also relevant to bootstrap endpoint configuration in other
tasks, for example when configuring a service integration bus link.
To
use JMS destinations of the default messaging provider, an application connects
to a messaging engine on the target service integration bus where 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 part of the same cell as the service integration bus can normally connect
to a messaging engine on that bus without requiring the configuration of provider
endpoints. However, this is not possible if the cell has been split using
a core group policy. Client applications that are running in a client container,
and client applications running outside the WebSphere Application Server environment
cannot automatically locate the required service integration bus in this way
so it is necessary to configure one or more provider endpoints. Similarly,
an application running on a server in one cell to connect to a bus in another
cell cannot do so without the configuration of provider endpoints, unless
a core group bridge has been established between the two cells.
In these
scenarios, the clients or the servers in another bus must complete a bootstrap
process through a bootstrap server. It is not necessary for the bootstrap
server to be a member of the service integration bus, and it does not have
to contain any messaging engines. It is necessary for the provider endpoint
property of the JMS connection factory used by the client application to be
configured in order for the application to locate the required bootstrap server.
When the bootstrap server receives the client request, it selects a messaging
engine that matches the criteria specified by the connection factory, for
example the target transport chain, target group, connection proximity. It
returns the location information for this messaging engine to the client,
and the client transparently creates a new connection to the target messaging
engine if necessary.
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. If a provider endpoint is not specified in the connection
factory, then a default value will be inserted depending upon whether or not
a password has been supplied by the application. If the application does not
supply a password, a default endpoint address of localhost:7276:BootstrapBasicMessaging
will be used. 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 a password is specified
by the application then the default secure port of 7286 and transport chain
of BootstrapSecureMessaging will be provided in order to prevent the transmission
of an unencrypted password to the server.
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 using a comma
separated list.
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.
Note: When
configuring a connection to a non-default bootstrap server, specify the required
values using colons as separators. The syntax is as follows:
[ [host_name] [ ":" [ port_number] [ ":" chain_name] ] ]
Specifying host_name : chain_name instead of host_name : : chain_name (with
two colons) is incorrect. It is valid to enter nothing, or to enter any of
the following: "host", "host","a, "a:", ":7276", "::chain", and so on. The
default value applies if you do not specify a value, but you must separate
the fields with ":"s.
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
This
value is mandatory. 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.
This value is mandatory. The default is 7276 if
the application has not specified a password, or 7286 if a password has been
specified.
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
if a password has not been provided, or BootstrapSecureMessaging if a password
has been provided.
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. Separate each endpoint address by a comma
character.
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 Application Server administrative console: |
- Start the WebSphere Application Server 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.
|