2016-09-30 94 views
0

我想通過msyql配置activeMQ主/從集羣。我所做的: 首先創建兩個實例配置。如何解決activeMQ msyql集羣獲取嘗試獲取獨佔鎖定錯誤?

activemq create instanceA 
activemq create instanceC 

然後修改端口和mysql適配器,instanceA有:

//conf 
<persistenceAdapter > 
     <!-- <kahaDB directory="${activemq.data}/kahadb"/> --> 
     <jdbcPersistenceAdapter dataDirectory="${activemq.data}/kahadb" dataSource="#mysql-ds"/> 
    </persistenceAdapter> 

<transportConnectors> 
     <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 
     <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
    </transportConnectors> 

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     --- 
    </bean> 

instanceC有:

--conf 
<persistenceAdapter > 
      <!-- <kahaDB directory="${activemq.data}/kahadb"/> --> 
      <jdbcPersistenceAdapter dataDirectory="${activemq.data}/kahadb" dataSource="#mysql-ds"/> 
     </persistenceAdapter> 
<transportConnectors> 
      <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 
      <transportConnector name="openwire" uri="tcp://0.0.0.0:61619?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="amqp" uri="amqp://0.0.0.0:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="stomp" uri="stomp://0.0.0.0:61615?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1884?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
      <transportConnector name="ws" uri="ws://0.0.0.0:61600?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 
     </transportConnectors> 

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     --- 
    </bean> 

最後,我開始instanceC ./instanceC start,做工精細。我開始instanceA ./instanceA start,得到錯誤:

2016-09-30 18:11:42,612 | INFO | Attempting to acquire the exclusive lock to become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main 
2016-09-30 18:12:33,760 | INFO | Failed to acquire lock. Sleeping for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main 

如何解決這個問題?

回答

0

You are done =)該消息表示實例A正在輪詢數據存儲上的排它鎖。如果你關閉了instanceC,你會看到instanceA接管爲主。

相關問題