[ https://issues.apache.org/jira/browse/AMQ-9013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17573540#comment-17573540 ]
DannyChan commented on AMQ-9013: -------------------------------- [~jbonofre] I updated the configuration to the description, thanks:D <persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#oracle-ds" lockKeepAlivePeriod="3000"> <locker> <lease-database-locker lockAcquireSleepInterval="4000"/> </locker> </jdbcPersistenceAdapter> </persistenceAdapter> > ERROR | XXXX, no longer able to keep the exclusive lock so giving up being a > master > ------------------------------------------------------------------------------------ > > Key: AMQ-9013 > URL: https://issues.apache.org/jira/browse/AMQ-9013 > Project: ActiveMQ > Issue Type: Bug > Components: JDBC > Affects Versions: 5.9.0 > Reporter: DannyChan > Priority: Major > Attachments: image-2022-08-01-09-04-31-857.png > > > In our production environment, ActiveMQ often restarts randomly. Refer to > official documents for configuration JDBC Master Slave. Twice failover in > half an hour. check vm and oracle healthy in during failover,please analyze > the problem, thanks > > xxxx1 activemq log: > first failover > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | xxxx1 Lease held by xxxx2 > till Sun Jul 31 16:25:03 CST 2022 > INFO | jvm 1 | 2022/07/31 16:25:01 | ERROR | xxxx1, no longer able to > keep the exclusive lock so giving up being a master > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | Apache ActiveMQ 5.9.0 > (xxxx1, ID:xxxx1-50824-1658747295825-0:1) is shutting down > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Connector openwire stopped > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | > PListStore:[/home/apache-activemq-5.9.0/bin/linux-x86-64/../../data/xxxx1/tmp_storage] > stopped > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Apache ActiveMQ 5.9.0 > (xxxx1, ID:xxxx1-50824-1658747295825-0:1) uptime 11 days 13 hours > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Apache ActiveMQ 5.9.0 > (xxxx1, ID:xxxx1-50824-1658747295825-0:1) is shutdown > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Closing > org.apache.activemq.xbean.XBeanBrokerFactory$1@6415d653: startup date [Wed > Jul 20 03:15:12 CST 2022]; root of context hierarchy > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Destroying Spring > FrameworkServlet 'dispatcher' > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Destroying hawtio > authentication filter > INFO | jvm 1 | 2022/07/31 16:25:03 | Restarting broker > INFO | jvm 1 | 2022/07/31 16:25:03 | Loading message broker from: > xbean:activemq.xml > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Refreshing > org.apache.activemq.xbean.XBeanBrokerFactory$1@294574e5: startup date [Sun > Jul 31 16:25:03 CST 2022]; root of context hierarchy > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | > PListStore:[/home/apache-activemq-5.9.0/bin/linux-x86-64/../../data/xxxx1/tmp_storage] > started > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Using Persistence Adapter: > JDBCPersistenceAdapter(org.apache.commons.dbcp.BasicDataSource@9158362) > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | JMX consoles can connect to > service:jmx:rmi:///jndi/rmi://x.x.x.x:10616/jmxrmi > INFO | jvm 1 | 2022/07/31 16:25:03 | INFO | Database adapter driver > override recognized for : [oracle_jdbc_driver] - adapter: class > org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter > INFO | jvm 1 | 2022/07/31 16:25:15 | INFO | xxxx1 attempting to acquire > exclusive lease to become the master > INFO | jvm 1 | 2022/07/31 16:25:15 | INFO | xxxx1 Lease held by xxxx2 > till Sun Jul 31 16:25:17 CST 2022 > INFO | jvm 1 | 2022/07/31 16:25:15 | INFO | xxxx1 failed to acquire > lease. Sleeping for 4000 milli(s) before trying again... > second failover > INFO | jvm 1 | 2022/07/31 16:37:16 | INFO | xxxx1 Lease held by xxxx2 > till Sun Jul 31 16:37:20 CST 2022 > INFO | jvm 1 | 2022/07/31 16:37:16 | INFO | xxxx1 failed to acquire > lease. Sleeping for 4000 milli(s) before trying again... > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | xxxx1, becoming master with > lease expiry Sun Jul 31 16:37:20 CST 2022 on dataSource: > org.apache.commons.dbcp.BasicDataSource@9158362 > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Apache ActiveMQ 5.9.0 > (xxxx1, ID:xxxx01-50824-1658747295825-0:2) is starting > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Listening for connections > at: > tcp://xxxx01:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600 > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Connector openwire started > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Apache ActiveMQ 5.9.0 > (xxxx1, ID:xxxx01-50824-1658747295825-0:2) started > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | For help or more > information please see: > [http://activemq.apache.org|http://activemq.apache.org/] > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Welcome to hawtio 1.2-M23 : > [http://hawt.io/] : Don't cha wish your console was hawt like me? ;) > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Starting hawtio > authentication filter, JAAS realm: "activemq" authorized role: "admins" role > principal classes: "org.apache.activemq.jaas.GroupPrincipal" > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Using file upload > directory: /tmp/uploads > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | jolokia-agent: Using access > restrictor classpath:/jolokia-access.xml > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | ActiveMQ WebConsole > available at [http://localhost:8151/] > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Initializing Spring > FrameworkServlet 'dispatcher' > xxxx2 activemq log: > first failover > INFO | jvm 1 | 2022/07/31 16:24:56 | INFO | xxxx2 failed to acquire > lease. Sleeping for 4000 milli(s) before trying again... > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | xxxx2, becoming master with > lease expiry Sun Jul 31 16:24:59 CST 2022 on dataSource: > org.apache.commons.dbcp.BasicDataSource@60b25aef > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | Apache ActiveMQ 5.9.0 > (xxxx2, ID:xxxx202-42432-1658258111781-0:2) is starting > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | Listening for connections > at: > tcp://xxxx202:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600 > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | Connector openwire started > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | Apache ActiveMQ 5.9.0 > (xxxx2, ID:xxxx202-42432-1658258111781-0:2) started > INFO | jvm 1 | 2022/07/31 16:25:01 | INFO | For help or more > information please see: > [http://activemq.apache.org|http://activemq.apache.org/] > INFO | jvm 1 | 2022/07/31 16:25:01 | WARN | Store limit is 102400 mb, > whilst the data directory: > /home/apache-activemq-5.9.0/bin/linux-x86-64/../../data only has 102006 mb of > usable space - resetting to maximum available disk space: 102006 mb > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | Welcome to hawtio 1.2-M23 : > [http://hawt.io/] : Don't cha wish your console was hawt like me? ;) > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | Starting hawtio > authentication filter, JAAS realm: "activemq" authorized role: "admins" role > principal classes: "org.apache.activemq.jaas.GroupPrincipal" > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | Using file upload > directory: /tmp/uploads > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | jolokia-agent: Using access > restrictor classpath:/jolokia-access.xml > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | ActiveMQ WebConsole > available at [http://localhost:8151/] > INFO | jvm 1 | 2022/07/31 16:25:02 | INFO | Initializing Spring > FrameworkServlet 'dispatcher' > second failover > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | xxxx2 Lease held by xxxx1 > till Sun Jul 31 16:37:24 CST 2022 > INFO | jvm 1 | 2022/07/31 16:37:20 | ERROR | xxxx2, no longer able to > keep the exclusive lock so giving up being a master > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Apache ActiveMQ 5.9.0 > (xxxx2, ID:xxxx02-42432-1658258111781-0:2) is shutting down > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Connector openwire stopped > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | > PListStore:[/home/xxxx/apache-activemq-5.9.0/bin/linux-x86-64/../../data/xxxx2/tmp_storage] > stopped > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Apache ActiveMQ 5.9.0 > (xxxx2, ID:xxxx02-42432-1658258111781-0:2) uptime 5 days 21 hours > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Apache ActiveMQ 5.9.0 > (xxxx2, ID:xxxx02-42432-1658258111781-0:2) is shutdown > INFO | jvm 1 | 2022/07/31 16:37:20 | INFO | Closing > org.apache.activemq.xbean.XBeanBrokerFactory$1@6735523a: startup date [Mon > Jul 25 19:08:17 CST 2022]; root of context hierarchy > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Destroying Spring > FrameworkServlet 'dispatcher' > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Destroying hawtio > authentication filter > INFO | jvm 1 | 2022/07/31 16:37:21 | Restarting broker > INFO | jvm 1 | 2022/07/31 16:37:21 | Loading message broker from: > xbean:activemq.xml > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Refreshing > org.apache.activemq.xbean.XBeanBrokerFactory$1@4adb323: startup date [Sun Jul > 31 16:37:21 CST 2022]; root of context hierarchy > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | > PListStore:[/home/apache-activemq-5.9.0/bin/linux-x86-64/../../data/xxxx2/tmp_storage] > started > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Using Persistence Adapter: > JDBCPersistenceAdapter(org.apache.commons.dbcp.BasicDataSource@1da39517) > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | JMX consoles can connect to > service:jmx:rmi:///jndi/rmi://x.x.x.x:10616/jmxrmi > INFO | jvm 1 | 2022/07/31 16:37:21 | INFO | Database adapter driver > override recognized for : [oracle_jdbc_driver] - adapter: class > org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter > INFO | jvm 1 | 2022/07/31 16:37:26 | INFO | xxxx2 attempting to acquire > exclusive lease to become the master > INFO | jvm 1 | 2022/07/31 16:37:26 | INFO | xxxx2 Lease held by xxxx1 > till Sun Jul 31 16:37:27 CST 2022 > INFO | jvm 1 | 2022/07/31 16:37:26 | INFO | xxxx2 failed to acquire > lease. Sleeping for 4000 milli(s) before trying again... > cpu & memory usage: > !image-2022-08-01-09-04-31-857.png! > network: > no dropped no errors > > cat activemq.xml > <!-- START SNIPPET: example --> > <beans > xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > [http://www.springframework.org/schema/beans/spring-beans.xsd] > [http://activemq.apache.org/schema/core] > [http://activemq.apache.org/schema/core/activemq-core.xsd]"> > <!-- Allows us to use system properties as variables in this > configuration file --> > <bean > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="locations"> > > <value>[file:$|file://%24/]{activemq.conf}/credentials.properties</value> > </property> > </bean> > <!-- Allows accessing the server log --> > <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery" > lazy-init="false" scope="singleton" > init-method="start" destroy-method="stop"> > </bean> > <!-- > The <broker> element is used to configure the ActiveMQ broker. > --> > <broker xmlns="http://activemq.apache.org/schema/core" > brokerName="xxxx01" dataDirectory="${activemq.data}"> > <destinationPolicy> > <policyMap> > <policyEntries> > <policyEntry topic=">" > > <!-- The constantPendingMessageLimitStrategy is used to > prevent > slow topic consumers to block producers and affect > other consumers > by limiting the number of messages that are retained > For more information, see: > > [http://activemq.apache.org/slow-consumer-handling.html] > --> > <pendingMessageLimitStrategy> > <constantPendingMessageLimitStrategy limit="1000"/> > </pendingMessageLimitStrategy> > </policyEntry> > </policyEntries> > </policyMap> > </destinationPolicy> > <managementContext> > <managementContext createConnector="true" connectorPort="10616" > connectorHost="10.x.x.x"/> > </managementContext> > <persistenceAdapter> > <jdbcPersistenceAdapter dataDirectory="${activemq.data}" > dataSource="#oracle-ds" lockKeepAlivePeriod="3000"> > <locker> > <lease-database-locker lockAcquireSleepInterval="4000"/> > </locker> > </jdbcPersistenceAdapter> > </persistenceAdapter> > <systemUsage> > <systemUsage> > <memoryUsage> > <memoryUsage percentOfJvmHeap="70" /> > </memoryUsage> > <storeUsage> > <storeUsage limit="100 gb"/> > </storeUsage> > <tempUsage> > <tempUsage limit="50 gb"/> > </tempUsage> > </systemUsage> > </systemUsage> > <transportConnectors> > <transportConnector name="openwire" > uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/> > </transportConnectors> > <!-- destroy the spring context on shutdown to stop jetty --> > <shutdownHooks> > <bean xmlns="http://www.springframework.org/schema/beans" > class="org.apache.activemq.hooks.SpringContextHook" /> > </shutdownHooks> > </broker> > <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" > destroy-method="close"> > <property name="driverClassName" > value="oracle.jdbc.driver.OracleDriver"/> > <property name="url" value="jdbc:oracle:thin:@//x.x.x.x:1521/amqdb"/> > <property name="username" value="xxxxx"/> > <property name="password" value="xxxxxx"/> > <property name="poolPreparedStatements" value="true"/> > </bean> > <import resource="jetty.xml"/> > </beans> > <!-- END SNIPPET: example --> > > -- This message was sent by Atlassian Jira (v8.20.10#820010)