You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by pimperator <er...@br.de> on 2012/06/11 11:21:52 UTC

Re: [jira] [Commented] (AMQ-3654) JDBC Master/Slave : Slave cannot acquire lock when the master loose database connection.

Hi Guys, 

I also do have the same problem with a loadbalanced mysql master-slave
replication.

The OS on the DB-Servers is RHEL 6.1 with kernel 2.6.32-220.2.1.el6.x86_64
which works with MySQL Version 
Arch        : x86_64
Version     : 5.1.52
Release     : 1.el6_0.1


The ActiveMQ-Servers are working with 
RHEL 6.2 2.6.32-220.7.1.el6.x86_64
with Java
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6)
(rhel-1.43.1.10.6.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

with Active MQ
Version     : 5.5.1
Release     : 1.el6

with MySQL-Connector mysql-connector-java-5.1.18-bin.jar

I am very interested in a solution and therefor I have set up an identical
environment for testing. Unfortunately in my environment-system this failure
never exceeds :S

Here is my log from activemq-master:

{code}
2012-06-08 15:24:07,396 | ERROR | Failed to update database lock:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link
failure

The last packet successfully received from the server was 29.995
milliseconds ago.  The last packet sent successfully to the server was 0
milliseconds ago. | org.apache.activemq.store.jdbc.DefaultDatabaseLocker |
ActiveMQ Cleanup Timer
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link
failure

The last packet successfully received from the server was 29.995
milliseconds ago.  The last packet sent successfully to the server was 0
milliseconds ago.
        at sun.reflect.GeneratedConstructorAccessor16.newInstance(Unknown
Source)
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
        at
com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3102)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
        at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
        at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
        at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        at
org.apache.activemq.store.jdbc.DefaultDatabaseLocker.keepAlive(DefaultDatabaseLocker.java:161)
        at
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.databaseLockKeepAlive(JDBCPersistenceAdapter.java:605)
        at
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter$3.run(JDBCPersistenceAdapter.java:291)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:185)
        at
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
        at
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
        at
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
        ... 22 more
2012-06-08 15:24:07,397 | INFO  | No longer able to keep the exclusive lock
so giving up being a master |
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | ActiveMQ Cleanup
Timer
2012-06-08 15:24:07,397 | INFO  | ActiveMQ Message Broker
(persistent-broker, ID:host2) is shutting down |
org.apache.activemq.broker.BrokerService | ActiveMQ Cleanup Timer
2012-06-08 15:24:08,965 | INFO  | Connector nio Stopped |
org.apache.activemq.broker.TransportConnector | ActiveMQ Cleanup Timer
2012-06-08 15:24:09,543 | INFO  | Connector openwire Stopped |
org.apache.activemq.broker.TransportConnector | ActiveMQ Cleanup Timer
2012-06-08 15:24:09,558 | INFO  |
PListStore:/local/activemq/activemq-instance-persistent-broker/data/persistent-broker/tmp_storage
stopped | org.apache.activemq.store.kahadb.plist.PListStore | ActiveMQ
Cleanup Timer
2012-06-08 15:24:09,561 | INFO  | ActiveMQ JMS Message Broker
(persistent-broker, ID:host2 stopped |
org.apache.activemq.broker.BrokerService | ActiveMQ Cleanup Timer
2012-06-08 15:26:28,469 | INFO  | Refreshing
org.apache.activemq.xbean.XBeanBrokerFactory$1@313a53d: startup date [Fri
Jun 08 15:26:28 CEST 2012]; root of context hierarchy |
org.apache.activemq.xbean.XBeanBrokerFactory$1 | main
2012-06-08 15:26:29,508 | WARN  | destroyApplicationContextOnStop parameter
is deprecated, please use shutdown hooks instead |
org.apache.activemq.xbean.XBeanBrokerService | main
2012-06-08 15:26:29,512 | INFO  |
PListStore:/local/activemq/activemq-instance-persistent-broker/data/persistent-broker/tmp_storage
started | org.apache.activemq.store.kahadb.plist.PListStore | main
2012-06-08 15:26:29,539 | INFO  | Using Persistence Adapter:
JDBCPersistenceAdapter(org.apache.commons.dbcp.BasicDataSource@d6d835f) |
org.apache.activemq.broker.BrokerService | main
2012-06-08 15:26:33,529 | INFO  | Database adapter driver override
recognized for : [mysql-ab_jdbc_driver] - adapter: class
org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter |
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2012-06-08 15:27:25,624 | INFO  | Database lock driver override not found
for : [mysql-ab_jdbc_driver].  Will use default implementation. |
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
2012-06-08 15:27:25,626 | INFO  | Attempting to acquire the exclusive lock
to become the Master broker |
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2012-06-08 15:28:16,616 | INFO  | Failed to acquire lock.  Sleeping for 1000
milli(s) before trying again... |
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2012-06-08 15:29:08,685 | INFO  | Failed to acquire lock.  Sleeping for 1000
milli(s) before trying again... |
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
2012-06-08 15:30:00,752 | INFO  | Failed to acquire lock.  Sleeping for 1000
milli(s) before trying again... |
org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main

--
View this message in context: http://activemq.2283324.n4.nabble.com/jira-Created-AMQ-3654-JDBC-Master-Slave-Slave-cannot-acquire-lock-when-the-master-loose-database-con-tp4269686p4653158.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.