Hi Markus,

we are using Sequoia 2.10.10 and have two controllers on dedicated
systems each with one backend database.
Yesterday I started a backup on controller2 and after that the database
was not enabled again. So I restarted the virtual-database but since
that the controller hangs.
After searching for some info about the problem (no log file entries) I
dicovered that there are 7 pending transactions on controller1 which
seem to block the controller. They do not seem to timeout and I have
found no option to rollback/timeout them with the console or JMX.
Yes, it is true that there is no option in the console to rollback a transaction, this is probably a feature we should add. If you close the client connections (can probably easily be done by resetting the app. side connection pool) that will automatically rollback the connections. Open transactions usually come from an application that does not commit/rollback transactions in all cases (and thus transactions remain uncommitted). Another caveat of the JDBC API is that a commit/rollback automatically starts a new transaction. So if you don't force the connection to setAutoCommit(true) after a commit/rollback they will be in a new transaction. And Sequoia can only perform enable.disable/backup/shutdown operations on transaction boundaries. We never implemented a kill/abort command because it cannot be implemented deterministically (what do you do is the transaction has already committed on a backend and you try to cancel cluster-wide?). This could however be implemented for open transaction with no active request. Feel free to add a feature request in JIRA if you think this could be a useful tool to have.
Am I missing something? Can someone give me a hint on how to stabilize
the system again. Or is the only solution to kill both controllers,
initialize the database again (or restore from dump) and synchronize the
controllers again afterwards?
In your case, the 2nd backend was still in backup mode waiting for transactions to complete. If you are not able to terminate the transactions by closing your application connections, you can reset the virtual database by using a force shutdown (this will abort pending transactions). You will probably have to resynchronize the 2nd controller with its backend upon restart to make sure that they are properly synchronized.

Hope this helps,
Emmanuel

--
Emmanuel Cecchet
FTO @ Frog Thinker Open Source Development & Consulting
--
Web: http://www.frogthinker.org
email: [EMAIL PROTECTED]
Skype: emmanuel_cecchet

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to