You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Den Orlov (JIRA)" <ji...@activemq.org> on 2006/05/03 11:33:39 UTC

[jira] Reopened: (AMQ-309) Old message cleanup failed due to: SQL Exception: A lock could not be obtained within the time requested ERROR 40XL1: A lock could not be obtained within the time requested

     [ http://jira.activemq.org/jira//browse/AMQ-309?page=all ]
     
Den Orlov reopened AMQ-309:
---------------------------

    Regression: [Regression]

We still have the problem in 3.2.2:

28.04.2006 15:16:56 org.activemq.ActiveMQConnection statusChanged
INFO: channel status changed: Channel: TcpTransportChannel: Socket[addr=/10.1.2.55,port=61616,localport=1725] has connected
Exception in thread "main" javax.jms.JMSException: Failed to lookup subscription for info: CONSUMER_INFO: id = 4 ConsumerInfo{ browser = false, destination = TEST.FOO, consumerIdentifier = 'ClientID-1146223014828.1.1' , clientId = 'ClientID-1146223014828' , sessionId = '1' , consumerName = 'SubscriberName-1146223014828' , selector = '' , startTime = 1146223017610, started = true, consumerNo = 1, noLocal = false, prefetchNumber = 100, consumerKey = '[ClientID-1146223014828:SubscriberName-1146223014828]'  }. Reason: SQL Exception: A lock could not be obtained within the time requested
	at org.activemq.util.JMSExceptionHelper.newJMSException(JMSExceptionHelper.java:49)
	at org.activemq.store.jdbc.JDBCTopicMessageStore.setSubscriberEntry(JDBCTopicMessageStore.java:101)
	at org.activemq.store.journal.JournalTopicMessageStore.setSubscriberEntry(JournalTopicMessageStore.java:66)
	at org.activemq.store.cache.CacheTopicMessageStore.setSubscriberEntry(CacheTopicMessageStore.java:59)
	at org.activemq.service.impl.DurableTopicMessageContainer.storeSubscription(DurableTopicMessageContainer.java:99)
	at org.activemq.service.impl.DurableTopicMessageContainerManager.doAddMessageConsumer(DurableTopicMessageContainerManager.java:297)
	at org.activemq.service.impl.DurableTopicMessageContainerManager.addMessageConsumer(DurableTopicMessageContainerManager.java:98)
	at org.activemq.broker.impl.DefaultBroker.addMessageConsumer(DefaultBroker.java:267)
	at org.activemq.broker.impl.BrokerContainerImpl.registerMessageConsumer(BrokerContainerImpl.java:355)
	at org.activemq.broker.impl.BrokerConnectorImpl.registerMessageConsumer(BrokerConnectorImpl.java:180)
	at org.activemq.broker.impl.BrokerClientImpl.consumeConsumerInfo(BrokerClientImpl.java:506)
	at org.activemq.broker.impl.BrokerClientImpl.consume(BrokerClientImpl.java:358)
	at org.activemq.transport.TransportChannelSupport.doConsumePacket(TransportChannelSupport.java:374)
	at org.activemq.transport.TransportChannelSupport.doConsumePacket(TransportChannelSupport.java:368)
	at org.activemq.transport.tcp.TcpTransportChannel.run(TcpTransportChannel.java:315)
	at java.lang.Thread.run(Thread.java:534)
Caused by: SQL Exception: A lock could not be obtained within the time requested
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java)
	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java)
	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java)
	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java)
	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(EmbedPreparedStatement.java)
	at org.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doSetSubscriberEntry(DefaultJDBCAdapter.java:532)
	at org.activemq.store.jdbc.JDBCTopicMessageStore.setSubscriberEntry(JDBCTopicMessageStore.java:98)
	... 14 more

> Old message cleanup failed due to: SQL Exception: A lock could not be obtained within the time requested ERROR 40XL1: A lock could not be obtained within the time requested
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: AMQ-309
>          URL: http://jira.activemq.org/jira//browse/AMQ-309
>      Project: ActiveMQ
>         Type: Bug

>   Components: Message Store
>  Environment: WIN2000 2CPU 
>     Reporter: Glen Klyuzner
>     Assignee: Hiram Chirino
>      Fix For: 4.0 M4
>  Attachments: activemq.log, threaddump.txt.gz
>
>
> On Server side throws Exception listed below
> No Exception for Client side, but slowdown message processing
> CPU util on Server < 50%
> 2005-07-18 17:36:41,530 [ocalport=61616]] INFO  BrokerContainerImpl            - Adding new client: ID:ny-cap-33-1918-1121722600107-19:0 on transport: TcpTransportChannel: Socket[addr=/170.198.121.186,port=1920,localport=61616]
> 2005-07-18 17:39:03,518 [Cleanup Timmer ] WARN  JDBCPersistenceAdapter         - Old message cleanup failed due to: SQL Exception: A lock could not be obtained within the time requested
> ERROR 40XL1: A lock could not be obtained within the time requested
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
> 	at org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java)
> 	at org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePool.java)
> 	at org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool.java)
> 	at org.apache.derby.impl.store.raw.xact.RowLocking2.lockRecordForRead(RowLocking2.java)
> 	at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.lockPositionForRead(OpenConglomerate.java)
> 	at org.apache.derby.impl.store.access.conglomerate.GenericScanController.fetchRows(GenericScanController.java)
> 	at org.apache.derby.impl.store.access.heap.HeapScan.fetchNext(HeapScan.java)
> 	at org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java)
> 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java)
> 	at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java)
> 	at org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(DeleteResultSet.java)
> 	at org.apache.derby.impl.sql.execute.DeleteResultSet.open(DeleteResultSet.java)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java)
> 	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:94)
> 	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:94)
> 	at org.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doDeleteOldMessages(DefaultJDBCAdapter.java:594)
> 	at org.activemq.store.jdbc.JDBCPersistenceAdapter.cleanup(JDBCPersistenceAdapter.java:252)
> 	at org.activemq.store.jdbc.JDBCPersistenceAdapter$1.run(JDBCPersistenceAdapter.java:241)
> 	at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(Unknown Source)
> 	at java.lang.Thread.run(Thread.java:534)
> 2005-07-18 17:39:08,362 [eckpoint Worker] WARN  JournalMessageStore            - Message could not be added to long term store: Failed to broker message: ID:ny-cap-33-1885-1121722466215-94:3730 in container: SQL Exception: A lock could not be obtained within the time requested
> javax.jms.JMSException: Failed to broker message: ID:ny-cap-33-1885-1121722466215-94:3730 in container: SQL Exception: A lock could not be obtained within the time requested
> 	at org.activemq.util.JMSExceptionHelper.newJMSException(JMSExceptionHelper.java:49)
> 	at org.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:74)
> 	at org.activemq.store.journal.JournalMessageStore$5.execute(JournalMessageStore.java:244)
> 	at org.activemq.util.TransactionTemplate.run(TransactionTemplate.java:41)
> 	at org.activemq.store.journal.JournalMessageStore.checkpoint(JournalMessageStore.java:227)
> 	at org.activemq.store.journal.JournalTopicMessageStore.checkpoint(JournalTopicMessageStore.java:143)
> 	at org.activemq.store.journal.JournalPersistenceAdapter$3.run(JournalPersistenceAdapter.java:362)
> 	at EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(Unknown Source)
> 	at java.lang.Thread.run(Thread.java:534)
> Caused by: SQL Exception: A lock could not be obtained within the time requested
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java)
> 	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:94)
> 	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:94)
> 	at org.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doAddMessage(DefaultJDBCAdapter.java:190)
> 	at org.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:72)
> 	... 7 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.activemq.org/jira//secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira