Hi, paul, I see that with HA-JDBC version 3.0.3, you removed "this.stateManager.beforeInvocation(event);" in DistributedStateManager.beforeInvocation method, and the same to afterInvocation/afterInvoker/beforeInvoker too. Why?
In this.stateManager.beforeInvocation(event), HA-JDBC may try to save the transaction info if Cluster state management is not configured to simple, and durability is fine/coarse.
But with version 3.0.3, you removed it, then can transaction info be saved as before? Maybe you think there is no necessary to save it, but what may happen if all HA-JDBCs die after a transaction is partial commited?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is not needed in 3.0.3, because the local node is no longer excluded from calls to CommandDispatcher.executeAll(...). The local state manager's beforeInvocation(..) is triggered from PreInvocationCommand.execute(...).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No, in 3.0.3, The local state manager's beforeInvocation(..) is not triggered from PreInvocationCommand.execute(...)!
And if local state manager's beforeInvocation(..) is triggered from PreInvocationCommand.execute(...), then every HA-JDBC will save the transaction info in their own embedded database, Can them avoid repeatly recover on startup?
Last edit: yylqinghao 2014-08-15
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, paul, I see that with HA-JDBC version 3.0.3, you removed "this.stateManager.beforeInvocation(event);" in DistributedStateManager.beforeInvocation method, and the same to afterInvocation/afterInvoker/beforeInvoker too. Why?
In this.stateManager.beforeInvocation(event), HA-JDBC may try to save the transaction info if Cluster state management is not configured to simple, and durability is fine/coarse.
But with version 3.0.3, you removed it, then can transaction info be saved as before? Maybe you think there is no necessary to save it, but what may happen if all HA-JDBCs die after a transaction is partial commited?
It is not needed in 3.0.3, because the local node is no longer excluded from calls to CommandDispatcher.executeAll(...). The local state manager's beforeInvocation(..) is triggered from PreInvocationCommand.execute(...).
No, in 3.0.3, The local state manager's beforeInvocation(..) is not triggered from PreInvocationCommand.execute(...)!
And if local state manager's beforeInvocation(..) is triggered from PreInvocationCommand.execute(...), then every HA-JDBC will save the transaction info in their own embedded database, Can them avoid repeatly recover on startup?
Last edit: yylqinghao 2014-08-15
Hi, Paul, were you look into this issue?
I'll sort this out today.
https://github.com/ha-jdbc/ha-jdbc/commit/16534afe2789ea8b007c7a36a817c4424f11bf1c