Fault tolerance, Message flow in a cluster, Fault tolerance message flow in a cluster – HP Integrity NonStop H-Series User Manual
Page 12

represents a cluster of brokers.
Figure 3 Cluster of brokers
N
on
Sto
p Clu
ster I/O Pro
toco
ls
Producer
Consumer
Bn
B1
B3
B2
SQL/MX
Database
B1
Local Host: 6161
B1’
B2
Local Host: 6162
B2’
Bn
Local Host: 616n
Bn’
B3
Local Host: 6163
B3’
tc
p:/
/<
Hos
tname IP
Address
>:<
Po
rt
N
o.
>
Bn
B1
: Brokers
......
Fault tolerance
Fault tolerance is the ability to prevent a system from failure when an unexpected problem occurs.
In NSMQ, fault tolerance is achieved by enabling persistence.
Persistence is a feature used by applications to achieve fault tolerance irrespective of a cluster
start, stop, or restart. NSMQ provides fault tolerance by persisting messages to the SQL/MX
database. Messages are stored in a database before they are dispatched. If a broker fails, the
undelivered messages are retrieved from the database and rerun when the broker restarts. The
messages are deleted from the database after the message delivery is confirmed.
NSMQ communicates to the database using JDBC T2 driver version 3.2 or later (T1275R32) for
persisting messages to the database. NSMQ requires SQL/MX 3.2 or later versions for providing
this feature.
NOTE:
•
By default, ActiveMQ uses a separate database for every broker in a cluster. Managing
multiple databases is complex as each broker has its own database. To overcome this, NSMQ
persists messages from different brokers to a single database (that is, a single set of tables).
•
If persistence is not enabled, then there is no
. Also, NSMQ will not
be fully JMS 1.1 compliant.
Message flow in a cluster
This section illustrates with an example how a message flows in a cluster of brokers.
In a cluster of brokers, a message produced at any broker is available to any consumer connected
to any other broker.
12
Introduction to NSMQ