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