activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "metatech (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQ-6249) Slave node should try to get lock in small intervals to check JDBC connectivity
Date Thu, 14 Apr 2016 15:00:29 GMT
metatech created AMQ-6249:
-----------------------------

             Summary: Slave node should try to get lock in small intervals to check JDBC connectivity
                 Key: AMQ-6249
                 URL: https://issues.apache.org/jira/browse/AMQ-6249
             Project: ActiveMQ
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 5.11.1
         Environment: ServiceMix 5.4.1
            Reporter: metatech


In a JDBC master/slave configuration, the master node gets the lock in the database table
ACTIVEMQ_LOCK and becomes active.  The slave node tries to get the lock and waits indefinitely
on the SQL query.
In case of a network device failure, the TCP connection to the DB server is abruptly removed,
and no FIN nor RST is sent to the broker.  This results into a slave node which never resumes
from this network issue without manual restart of the broker.
The attached patch transforms the indefinite wait on the lock into a loop in small time intervals
(defined by the "queryTimeout" variable).  Also, it becomes possible to specify a TCP socket
timeout at the JDBC driver level (for instance "oracle.jdbc.ReadTimeout" for Oracle) as an
extra safety measure.
In the default case, the "queryTimeout=-1", which falls back to the indefinite wait.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message