A enterprise service bus that consists of multiple servers provides advantages of scalability, the ability to handle more client connections and greater message throughput. You can also deploy SCA modules to different servers; for example, to provide different resources and qualities of service, or to provide some separation for different departments within organizations, or perhaps to separate test and production facilities.
To create more than one server in your bus environment, you need to have a managed node in a deployment manager cell.
You configure each server for the SCA runtime required by mediation modules. This advanced configuration defines whether queue destinations exploited by the SCA runtime are hosted locally on the server or on a remote server. If you specify that the server is to host queue destinations, the server is made a member of the SCA.SYSTEM bus and gets a messaging engine to which the queue destinations are assigned. If you specify that the server does not host queue destinations, it does not need to be a member of the SCA.SYSTEM bus, so does not need a messaging engine.
Consider the scenario shown in the figure Figure 1.
All of the messaging engines in the SCA.SYSTEM bus are implicitly connected, and requests can be processed by any messaging engine in the bus. Knowledge of the resources assigned to each messaging engine in a bus is shared between all the messaging engines in the bus.
There is no requirement for all the messaging engines in the bus to be running at the same time; if one of the messaging engines is stopped, the rest of the messaging engines continue to operate. However resources owned by a messaging engine, specifically queue points for mediation modules, are unavailable if the engine is stopped. Also, a messaging engine can only run in the server it was created for. The server is therefore a single point of failure; if the server cannot run, the messaging engine is unavailable. By configuring a server cluster as a bus member, a messaging engine has the ability to run in one server in the cluster, and if that server fails, the messaging engine can run in an alternative server within the cluster.
There are several different ways to create a multiple-server enterprise service bus: