[ 
https://issues.apache.org/jira/browse/DERBY-3205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12563424#action_12563424
 ] 

Jørgen Løland commented on DERBY-3205:
--------------------------------------

Hi Narayanan,

I had a look at the failover_impl_3205_v1 patch, which looks good for the most 
part. I have some comments - most of which are nits:

1) Indentation in EmbedConnection around line 340 is strange - do you use tab 
length of four spaces? From the diff file I would guess you have a tab space of 
8...
2) Typo in javadoc of EmbedConnection#isReplicationFailover - "stopSlave" 
instead of "failover".
3) AccessFactory - I think the new method "failover" would be easier to find if 
it was placed close to the other replication methods. Feel free to ignore...
4) There are two Attribute.java files. I'm not sure if both are in use, but 
previously replication attributes have been added to both files. We either need 
some insight on which file can be ignored or continue to add the attributes to 
both files.
5) RawStore.failover - Do you intend to write a follow-up patch with error 
handling for the case that MasterFactory is not found by the Monitor?
6) The javadoc for failover in all the classes say StandardException is thrown 
on error, but MasterController will always throw an exception. It would be 
easier to understand the code if the javadoc described the reason for throwing 
an exception even if failover was successful.
7) I tried to run the failover command on the master, which seems to work fine 
as long as the master and slave are still connected. If the slave has been 
stopped for some reason, however, failover hangs on 
MasterController#startFailover here: 
ack = transmitter.readMessage();
I'm not sure if this patch is the right one to fix this bug...


> 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, 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
>
>
> 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.

Reply via email to