[ 
https://issues.apache.org/jira/browse/ARTEMIS-1112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15992865#comment-15992865
 ] 

ASF GitHub Bot commented on ARTEMIS-1112:
-----------------------------------------

Github user bgutjahr commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1204
  
    In the meantime, I have found a way to get what I want without changing 
Artemis code. Not very nice, but seems to work: when I start a slave server, it 
automatically becomes live when there is not live running. There is only one 
exception: on first startup when no live has even been started, the slave waits 
for a live server to start before going into backup mode. But in that case, the 
is no bindings directory. So my solution is to check for the existance of a 
bindings directory and start a master server if it is missing. It becomes live 
and creates the bindings directory. From then on, I always start slave servers.
    
    This means I won't need an Artemis enhancement. Personally, I would prefer 
that the start() method doesn't block infinitely. I.e. start of a master server 
should return even if the master becomes a backup; and start of a slave server 
should also become live even if no live server has even run before. Even 
throwing an exception instead instead of blocking would be better in my 
opinion).
    But since than behavior can't be changed due without breaking backwards 
compatibility, I'll just use my own solution and check for the bindings 
directory.


> EmbeddedJMS.start() doesn't return if shared-store master starts as backup 
> server
> ---------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1112
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1112
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 1.5.4, 2.0.0
>            Reporter: Bernd Gutjahr
>            Priority: Minor
>
> EmbeddedServer.start() doesn't return when a share-store master server has 
> been configured, but at startup another server is already running as live 
> server (i.e. another previously started master).
> In that case, this server becomes a backup server for the currently running 
> live server. The start() method hangs until the currently running live server 
> stops and this server actually becomes the new live server.
> This is inconsistent with starting a server as slave server, where the start 
> method returns and doesn't wait until the slave took over as live server.
> It also blocks the application that called EmbeddedServer.start() to proceed 
> it's normal operation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to