activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (Resolved) (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (AMQ-3681) DatabaseLocker should first cancel locking SQL statement before closing the SQL connection
Date Fri, 13 Apr 2012 05:59:15 GMT

     [ https://issues.apache.org/jira/browse/AMQ-3681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rob Davies resolved AMQ-3681.
-----------------------------

    Resolution: Fixed
      Assignee: Rob Davies

patch applied in SVN revision 1325621
                
> DatabaseLocker should first cancel locking SQL statement before closing the SQL connection
> ------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3681
>                 URL: https://issues.apache.org/jira/browse/AMQ-3681
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: ServiceMix 4.3
>            Reporter: metatech
>            Assignee: Rob Davies
>             Fix For: 5.6.0
>
>         Attachments: amq_stopping_slave.patch, amq_stopping_slave_2.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> ActiveMQ is configured in a Master/Slave configuration with an Oracle database :
> http://activemq.apache.org/jdbc-master-slave.html
> http://servicemix.apache.org/clustering.html
> When the slave node is stopping, "activemq-broker" stays forever in the "Stopping" state.
> This is because the locking SQL statement cannot be interrupted by just closing the JDBC
connection.  It is also needed to "cancel" the SQL statement.
> Here is a patch to DefaultDatabaseLocker which makes it compatible with Oracle.
> Thanks.
> {code}
> "Thread-92" prio=10 tid=0x08c4d800 nid=0x1036 waiting for monitor entry [0x8ab3a000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> 	at oracle.jdbc.driver.PhysicalConnection.isClosed(PhysicalConnection.java:1223)
> 	- waiting to lock <0xad4367e0> (a oracle.jdbc.driver.T4CConnection)
> 	at org.apache.commons.dbcp.DelegatingConnection.isClosed(DelegatingConnection.java:386)
> 	at org.apache.commons.dbcp.DelegatingConnection.isClosed(DelegatingConnection.java:386)
> 	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.isClosed(PoolingDataSource.java:201)
> 	at org.apache.activemq.store.jdbc.DefaultDatabaseLocker.stop(DefaultDatabaseLocker.java:137)
> 	at com.mycompany.PoolCloser.close(PoolCloser.java:77)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:221)
> 	at org.apache.aries.blueprint.container.ServiceListener.invokeMethod(ServiceListener.java:98)
> 	at org.apache.aries.blueprint.container.ServiceListener.unregister(ServiceListener.java:65)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message