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

Veaceslav Doina commented on AMQ-5238:
--------------------------------------

Hello,

Tried to configure HA using JDBC and Amazon EFS for scheduled messages.

Today it worked fine. On the restart, new master also acquire lock on shared 
storage for scheduled messages:
----
[root@broker-1 centos]# cat /opt/activemq/data/activemq.log

2018-11-13 12:10:18,185 | INFO | Attempting to acquire the exclusive lock to 
become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker 
| main
2018-11-13 12:10:18,198 | INFO | Becoming the master on dataSource: 
org.apache.commons.dbcp2.BasicDataSource@4a8355dd | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:10:18,200 | INFO | 
PListStore:[/activemq-data/broker-1/tmp_storage] started | 
org.apache.activemq.store.kahadb.plist.PListStoreImpl | main
2018-11-13 12:10:18,358 | INFO | Scheduler Store version 1 loaded | 
org.apache.activemq.store.kahadb.scheduler.JobSchedulerKahaDBMetaData | main
2018-11-13 12:10:18,469 | INFO | Recovering from the scheduled job journal 
@3:2315632 | org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl | 
main
2018-11-13 12:10:18,474 | INFO | Recovery replayed 1 operations from the 
journal in 0.005 seconds. | 
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl | main
2018-11-13 12:10:18,520 | INFO | JobSchedulerStore: /efs/scheduler started. | 
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl | main
2018-11-13 12:10:18,597 | INFO | Apache ActiveMQ 5.15.7 (broker-1, 
ID:broker-1-38641-1542111018366-1:1) is starting | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:18,689 | INFO | Listening for connections at: 
tcp://broker-1:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600 
| org.apache.activemq.transport.TransportServerThreadSupport | main
2018-11-13 12:10:18,691 | INFO | Connector openwire started | 
org.apache.activemq.broker.TransportConnector | main
2018-11-13 12:10:18,694 | INFO | Listening for connections at: 
amqp://broker-1:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600 
| org.apache.activemq.transport.TransportServerThreadSupport | main
2018-11-13 12:10:18,696 | INFO | Connector amqp started | 
org.apache.activemq.broker.TransportConnector | main
2018-11-13 12:10:18,699 | INFO | Listening for connections at: 
stomp://broker-1:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600
 | org.apache.activemq.transport.TransportServerThreadSupport | main
2018-11-13 12:10:18,701 | INFO | Connector stomp started | 
org.apache.activemq.broker.TransportConnector | main
2018-11-13 12:10:18,704 | INFO | Listening for connections at: 
mqtt://broker-1:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600 
| org.apache.activemq.transport.TransportServerThreadSupport | main
2018-11-13 12:10:18,705 | INFO | Connector mqtt started | 
org.apache.activemq.broker.TransportConnector | main
2018-11-13 12:10:18,712 | INFO | Starting Jetty server | 
org.apache.activemq.transport.WebTransportServerSupport | main
2018-11-13 12:10:18,742 | INFO | Creating Jetty connector | 
org.apache.activemq.transport.WebTransportServerSupport | main
2018-11-13 12:10:18,810 | WARN | 
ServletContext@o.e.j.s.ServletContextHandler@4a9f80d3\{/,null,STARTING} has 
uncovered http methods for path: / | org.eclipse.jetty.security.SecurityHandler 
| main
2018-11-13 12:10:18,845 | INFO | Listening for connections at 
ws://broker-1:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600 | 
org.apache.activemq.transport.ws.WSTransportServer | main
2018-11-13 12:10:18,850 | INFO | Connector ws started | 
org.apache.activemq.broker.TransportConnector | main
2018-11-13 12:10:18,851 | INFO | Apache ActiveMQ 5.15.7 (broker-1, 
ID:broker-1-38641-1542111018366-1:1) started | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:18,852 | INFO | For help or more information please see: 
http://activemq.apache.org | org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:18,854 | WARN | Store limit is 102400 mb (current store usage 
is 0 mb). The data directory: / only has 13135 mb of usable space. - resetting 
to maximum available disk space: 13135 mb | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:18,855 | WARN | Temporary Store limit is 51200 mb (current 
store usage is 0 mb). The data directory: / only has 13135 mb of usable space. 
- resetting to maximum available disk space: 13135 mb | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:19,338 | INFO | No Spring WebApplicationInitializer types 
detected on classpath | /admin | main
2018-11-13 12:10:19,568 | INFO | ActiveMQ WebConsole available at 
http://0.0.0.0:8161/ | org.apache.activemq.web.WebConsoleStarter | main
2018-11-13 12:10:19,568 | INFO | ActiveMQ Jolokia REST API available at 
http://0.0.0.0:8161/api/jolokia/ | org.apache.activemq.web.WebConsoleStarter | 
main
2018-11-13 12:10:19,617 | INFO | Initializing Spring FrameworkServlet 
'dispatcher' | /admin | main
2018-11-13 12:10:19,831 | INFO | No Spring WebApplicationInitializer types 
detected on classpath | /api | main
2018-11-13 12:10:19,906 | INFO | jolokia-agent: Using policy access restrictor 
classpath:/jolokia-access.xml | /api | main

 

[root@broker-2 centos]# cat /opt/activemq/data/activemq.log

2018-11-13 12:10:17,854 | INFO | Apache ActiveMQ 5.15.7 (broker-2, 
ID:broker-2-41696-1542110982743-1:1) is shutting down | 
org.apache.activemq.broker.BrokerService | ActiveMQ ShutdownHook
2018-11-13 12:10:17,857 | INFO | Connector openwire stopped | 
org.apache.activemq.broker.TransportConnector | ActiveMQ ShutdownHook
2018-11-13 12:10:17,858 | INFO | socketQueue interrupted - stopping | 
org.apache.activemq.transport.tcp.TcpTransportServer | ActiveMQ Transport 
Server Thread Handler: 
tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600
2018-11-13 12:10:17,859 | INFO | Could not accept connection during shutdown : 
{} | org.apache.activemq.broker.TransportConnector | ActiveMQ Transport Server 
Thread Handler: 
tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600
java.lang.InterruptedException
 at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)[:1.8.0_192]
 at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2088)[:1.8.0_192]
 at 
java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)[:1.8.0_192]
 at 
org.apache.activemq.transport.tcp.TcpTransportServer$1.run(TcpTransportServer.java:494)[activemq-client-5.15.7.jar:5.15.7]
 at java.lang.Thread.run(Thread.java:748)[:1.8.0_192]
2018-11-13 12:10:17,862 | INFO | Connector amqp stopped | 
org.apache.activemq.broker.TransportConnector | ActiveMQ ShutdownHook
2018-11-13 12:10:17,863 | INFO | Connector stomp stopped | 
org.apache.activemq.broker.TransportConnector | ActiveMQ ShutdownHook
2018-11-13 12:10:17,871 | INFO | Connector mqtt stopped | 
org.apache.activemq.broker.TransportConnector | ActiveMQ ShutdownHook
2018-11-13 12:10:17,878 | INFO | Connector ws stopped | 
org.apache.activemq.broker.TransportConnector | ActiveMQ ShutdownHook
2018-11-13 12:10:18,105 | INFO | JobSchedulerStore: /efs/scheduler stopped. | 
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl | ActiveMQ 
ShutdownHook
2018-11-13 12:10:18,115 | INFO | 
PListStore:[/activemq-data/broker-2/tmp_storage] stopped | 
org.apache.activemq.store.kahadb.plist.PListStoreImpl | ActiveMQ ShutdownHook
2018-11-13 12:10:18,123 | INFO | Apache ActiveMQ 5.15.7 (broker-2, 
ID:broker-2-41696-1542110982743-1:1) uptime 39.918 seconds | 
org.apache.activemq.broker.BrokerService | ActiveMQ ShutdownHook
2018-11-13 12:10:18,124 | INFO | Apache ActiveMQ 5.15.7 (broker-2, 
ID:broker-2-41696-1542110982743-1:1) is shutdown | 
org.apache.activemq.broker.BrokerService | ActiveMQ ShutdownHook
2018-11-13 12:10:18,124 | INFO | Closing 
org.apache.activemq.xbean.XBeanBrokerFactory$1@1a968a59: startup date [Tue Nov 
13 12:09:37 UTC 2018]; root of context hierarchy | 
org.apache.activemq.xbean.XBeanBrokerFactory$1 | ActiveMQ ShutdownHook
2018-11-13 12:10:18,131 | INFO | Destroying Spring FrameworkServlet 
'dispatcher' | /admin | ActiveMQ ShutdownHook
2018-11-13 12:10:19,693 | INFO | Refreshing 
org.apache.activemq.xbean.XBeanBrokerFactory$1@1a968a59: startup date [Tue Nov 
13 12:10:19 UTC 2018]; root of context hierarchy | 
org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
2018-11-13 12:10:20,687 | INFO | JobScheduler using directory: /efs/scheduler | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:20,712 | INFO | Using Persistence Adapter: 
JDBCPersistenceAdapter(org.apache.commons.dbcp2.BasicDataSource@4a8355dd) | 
org.apache.activemq.broker.BrokerService | main
2018-11-13 12:10:21,287 | INFO | Database adapter driver override not found for 
: [mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-13 12:11:12,437 | INFO | Database lock driver override not found for : 
[mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-13 12:11:12,439 | INFO | Attempting to acquire the exclusive lock to 
become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker 
| main
2018-11-13 12:12:03,469 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:13:04,485 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:14:05,500 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:15:06,514 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:16:07,530 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-13 12:17:08,544 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
----
 

Yesterday have some strange behavior with such configuration, when both brokers 
tried to get lock without success and as a resul both dead:
----
[root@broker-1 centos]# cat /opt/activemq/data/activemq.log
2018-11-12 16:40:50,550 | INFO | Refreshing 
org.apache.activemq.xbean.XBeanBrokerFactory$1@1a968a59: startup date [Mon Nov 
12 16:40:50 UTC 2018]; root of context hierarchy | 
org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
2018-11-12 16:40:51,641 | INFO | JobScheduler using directory: /efs/scheduler | 
org.apache.activemq.broker.BrokerService | main
2018-11-12 16:40:51,664 | INFO | Using Persistence Adapter: 
JDBCPersistenceAdapter(org.apache.commons.dbcp2.BasicDataSource@4a8355dd) | 
org.apache.activemq.broker.BrokerService | main
2018-11-12 16:40:52,374 | INFO | Database adapter driver override not found for 
: [mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-12 16:41:43,495 | INFO | Database lock driver override not found for : 
[mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-12 16:41:43,497 | INFO | Attempting to acquire the exclusive lock to 
become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker 
| main
2018-11-12 16:42:34,522 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-12 16:43:35,535 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-12 16:44:36,549 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-12 16:45:37,562 | INFO | Failed to acquire lock. Sleeping for 10000 
milli(s) before trying again... | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main

[root@broker-2 opt]# cat /opt/activemq/data/activemq.log
2018-11-12 16:40:02,638 | INFO | Refreshing 
org.apache.activemq.xbean.XBeanBrokerFactory$1@1a968a59: startup date [Mon Nov 
12 16:40:02 UTC 2018]; root of context hierarchy | 
org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
2018-11-12 16:40:03,637 | INFO | JobScheduler using directory: /efs/scheduler | 
org.apache.activemq.broker.BrokerService | main
2018-11-12 16:40:03,657 | INFO | Using Persistence Adapter: 
JDBCPersistenceAdapter(org.apache.commons.dbcp2.BasicDataSource@4a8355dd) | 
org.apache.activemq.broker.BrokerService | main
2018-11-12 16:40:04,299 | INFO | Database adapter driver override not found for 
: [mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-12 16:40:04,414 | INFO | Database lock driver override not found for : 
[mysql_connector_j]. Will use default implementation. | 
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2018-11-12 16:40:04,416 | INFO | Attempting to acquire the exclusive lock to 
become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker 
| main
2018-11-12 16:40:04,433 | INFO | Becoming the master on dataSource: 
org.apache.commons.dbcp2.BasicDataSource@4a8355dd | 
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2018-11-12 16:40:04,436 | INFO | 
PListStore:[/activemq-data/broker-2/tmp_storage] started | 
org.apache.activemq.store.kahadb.plist.PListStoreImpl | main
2018-11-12 16:40:04,450 | INFO | Database /efs/scheduler/lock is locked by 
another server. This broker is now in slave mode waiting a lock to be acquired 
| org.apache.activemq.store.SharedFileLocker | main
----
 

> Add JDBC Persistence for Scheduler
> ----------------------------------
>
>                 Key: AMQ-5238
>                 URL: https://issues.apache.org/jira/browse/AMQ-5238
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Job Scheduler
>    Affects Versions: 5.9.0
>         Environment: JBoss A-MQ 6.0
>            Reporter: Jason Shepherd
>            Priority: Minor
>
> AMQ-3024 added support for non-KahaDB persistence of scheduled jobs, but a 
> JDBC alternative has yet to be added. 
> If we're using JDBC persistence adapter, we want all persistence for the 
> broker to be done for JDBC. Ideally this would also allows us to view 
> historical statistics of the scheduler as per AMQ-5192.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to