Limitations - shesse/h2ha GitHub Wiki
Note: in some cases it was necessary to decide for a trade-off between automatic operation and the potential of loss of data of a short time period. In these cases automatic operation and good performance were favored. That means, that you should not use this solution if it is essential for you not to lose any commited data.
These are the cases where data loss can occur:
-
forwarding data from primary to secondary system is done asynchronously. A transaction commit on the primary takes a short time (usually significantly less than a second) before it is recorded on the secondary. If the primary or the network fails during this time, the transaction may be lost.
-
h2ha does an automatic recovery after a network partitioning occurs. When the network is partitioned in a way so that primary and secondary cannot see each other, each of them will become active and execute transactions. When resolving such a situation after network connectivity has been re-established, h2ha will discard the changes done within one of the instances and continue working with the other.
-
Upon failover, all existing connections to the old server will be disconnected. The user of an existing JDBC connection will receive an exception on the next attempts to use it. That means, that a program accessing h2ha must be written in a way that expects such exceptions and deals with them gracefully.