[
https://issues.apache.org/jira/browse/DERBY-3205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12564802#action_12564802
]
Jørgen Løland commented on DERBY-3205:
--------------------------------------
Øystein,
It's a few days since I wrote this patch, and I just remembered what caused
problem: When the stop slave command comes from the master, we can't throw the
database severity exception to a thread that will hand it to
TransactionResourceImpl#handleException. I'm not sure why, but there seems to
be some caching or a reference to the booted database in the EmbedConnection
layer which needs to be cleaned up. Hence the internal connection in
SlaveDatabase#handleShutdown
In the case that stopSlave is executed on the slave database (from a client,
through EmbedConnection#handleStopReplicationSlave), everything works fine
without the internal connection.
> Replication: Add connection url command options for starting, stopping slave
> and for failover
> ---------------------------------------------------------------------------------------------
>
> Key: DERBY-3205
> URL: https://issues.apache.org/jira/browse/DERBY-3205
> Project: Derby
> Issue Type: Sub-task
> Components: JDBC
> Affects Versions: 10.4.0.0
> Reporter: Jørgen Løland
> Assignee: V.Narayanan
> Attachments: derby-3205_startslave_dontcommit.diff,
> derby-3205_startslave_dontcommit.stat,
> failover_impl_3205_NotForCommit_v1.diff,
> failover_impl_3205_NotForCommit_v1.stat, failover_impl_3205_v1.diff,
> failover_impl_3205_v1.stat, failover_impl_3205_v2.diff,
> failover_impl_3205_v2.stat, Socket_Close_Fix_v1.diff,
> Socket_Close_Fix_v1.stat, startSlave_1a.diff, startSlave_1a.stat,
> startSlave_1b.diff, startSlave_1b.stat, startSlave_1c.diff,
> startSlave_1d.diff, StopSlave_impl_3205_NotForCommit_v1.diff,
> StopSlave_impl_3205_NotForCommit_v1.stat, stopSlave_v1a.diff,
> stopSlave_v1a.stat, stopSlave_v1b.diff, stopSlave_v1b.stat,
> stopSlave_v1c.diff, stopSlave_v1c.stat
>
>
> Add commands to start and stop the replication slave using properties or
> connection url. Example:
> 'jdbc:derby:<host><dbname>;startSlave=true';
> 'jdbc:derby:<host><dbname>;stopSlave=true';
> 'jdbc:derby:<host><dbname>;failover=true;
> Connection url options that must be recognized:
> startSlave=true
> stopSlave=true
> failover=true
> slaveHost=<host> (optional, defaults to localhost) (only for startSlave)
> slavePort=<port> (optional, defaults to 8001) (only for startSlave)
> See functional specification on Derby-2872 for further details.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.