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