To elaborete, I do realize that if the first (server) process shuts down *during* incomplete transaction, then obviously that has to trigger an exception in the client because the transaction could not be completed, and even if a server would be re-started at that point, it would be probably difficult to guarantee ACID properties of the transaction.
But I don't understand why there is an exception even if the transaction is started way *after* the first (server) process has shut down - couldn't the client just start a server in that case? Is this just a corner case that happens to be handled the way it is handled currently, or is there a specific reason why is has to be handled that way? Best Regards, Joonas perjantai 25. syyskuuta 2015 13.37.15 UTC+3 Joonas Pulakka kirjoitti: > > From http://h2database.com/html/features.html#auto_mixed_mode and > http://h2database.com/html/features.html#auto_reconnect : > > - (Mixed mode) When the first connection is closed, the server stops. > If other (remote) connections are still open, one of them will then start > a > server (auto-reconnect is enabled automatically). > - The auto-reconnect feature causes the JDBC driver to reconnect to > the database if the connection is lost. The automatic re-connect only > occurs when auto-commit is enabled; if auto-commit is disabled, an > exception is thrown. > > So this means that when mixed mode is used with auto-commits disabled, and > the first (server) process shuts down, then the second (client) process > throws an exception when processing the next statement, instead of > re-connecting to the DB. Furthermore (result of experimentation) it *does* > reconnect to the DB just by retrying the statement that threw the > exception. After that everything works fine again. Only the first statement > that's issued after the server died, receives Connection is broken: > "session closed" [90067-185];; Error code: 90067. > > > Question: what's the point of *automatic re-connect only occurs when > auto-commit is enabled; if auto-commit is disabled, an exception is thrown*? > Does this mean that if I want to use mixed mode with auto-commits disabled, > I have to make all my transactions to check for "session closed" exception > and retry in that case? Is there a better way? > > > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
