[ 
https://issues.apache.org/jira/browse/DERBY-3184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jørgen Løland updated DERBY-3184:
---------------------------------

    Attachment: derby-3184-2b.stat
                derby-3184-2b.diff

Øystein,

Thanks for reviewing the patch. I have addressed all your comments. Notes on 
the revised patch:


5:
AFAIK, inner classes don't have constructors, but I added a setParams method 
that does the same. Hence, removed local_*

11:
The methods of the Database interface are used in two scenarios:
1) After getting a connection to the database. This is taken care of by 
throwing an exception from setupConnection, and thereby never returning a 
connection.
2) When the connection is established, i.e. in the constructor of 
EmbedConnection. The only Database method used from EmbedConnection is 
getAuthenticationService, which is handled in SlaveDatabase by throwing an 
exception.

I think this should suffice.

12:
I made the storage factory of UpdateServiceProperties volatile. 
UpdateServiceProperties is only used during boot of a database, so this should 
not result in a noticeable performance degradation.

13:
I changed the sleep time to 500 millis. The previous setting was used for 
testing and I forgot to change it back. 

Patch 2b is ready for review

> Replication: Connection attempts to a database in slave mode must fail
> ----------------------------------------------------------------------
>
>                 Key: DERBY-3184
>                 URL: https://issues.apache.org/jira/browse/DERBY-3184
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Services
>    Affects Versions: 10.4.0.0
>            Reporter: Jørgen Løland
>            Assignee: Jørgen Løland
>         Attachments: derby-3184-1.diff, derby-3184-1.stat, 
> derby-3184-2a.diff, derby-3184-2a.stat, derby-3184-2b.diff, 
> derby-3184-2b.stat, derby-3184-bugfix-1a.diff, derby-3184-bugfix-1a.stat
>
>
> When a database 'X' is booted in slave mode, the call to  
> Monitor.startPersistentService("X",...) will not complete because the call 
> gets stuck in LogToFile#recover. This is intentional.
> For as long as startPersistentService is blocked, however, other threads that 
> try to connect to 'X' (effectively calling Monitor.findService("X", ...)) 
> will also hang. This is unacceptable, and needs to raise an error.

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