A bootstrap server is an application server running in the same cell, specifically the same core group, as the service integration bus.
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 two core groups, defined each with their own policies. 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.
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.
JMS connection factory properties control how an application connects to a messaging engine and which messaging engine is selected. If you deploy the application to an application server on which the SIB service is enabled, the system uses the SIB service to locate a messaging engine that matches the connection factory criteria. The SIB service is aware of all the messaging engines running on servers in the core group of which the application server to which the application is deployed is a member.
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.
[ [host_name] [ ":" [ port_number] [ ":" chain_name] ] ]Specifying host_name : chain_name instead of host_name : : chain_name (with two colons) is incorrect. 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: