Failed to update persistent handle

View: New views
1 Messages — Rating Filter:   Alert me  

Failed to update persistent handle

by Diogo Matos :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm having problems using DurableSubscribers.

When i send messages to the queue without DurableSubscribers registered there are no errors on the sender. But when i create a DurableSubscriber, after a while it will throw exception.

I'm using openjms-0.7.7-beta-1 and the exceptions are:

11:45:53.939 ERROR [Scheduler-Worker-4] - Failed to update persistent handle: Failed to update message handle=org.exolab.jms.messagemgr.TopicConsumerMessageHandle@4cc81c
javax.jms.JMSException: Failed to update persistent handle: Failed to update message handle=org.exolab.jms.messagemgr.TopicConsumerMessageHandle@4cc81c
        at org.exolab.jms.messagemgr.AbstractConsumerMessageHandle.update(AbstractConsumerMessageHandle.java:312)
        at org.exolab.jms.server.SentMessageCache.preSend(SentMessageCache.java:107)
        at org.exolab.jms.server.SessionConsumer.send(SessionConsumer.java:568)
        at org.exolab.jms.server.SessionConsumer.dispatch(SessionConsumer.java:498)
        at org.exolab.jms.server.SessionConsumer.access$000(SessionConsumer.java:78)
        at org.exolab.jms.server.SessionConsumer$1.run(SessionConsumer.java:155)
        at org.exolab.jms.scheduler.SerialTask.run(SerialTask.java:164)
        at org.exolab.jms.common.threads.ThreadPool$NotifyingRunnable.run(ThreadPool.java:211)
        at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)
11:45:53.965 ERROR [ORB-Worker-2] - Failed to make handle persistent
org.exolab.jms.persistence.PersistenceException:
ERROR 40XL1: A lock could not be obtained within the time requested
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Source)
        at org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown Source)
        at org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown Source)
        at org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(Unknown Source)
        at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScan(Unknown Source)
        at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockScan(Unknown Source)
        at org.apache.derby.impl.store.access.btree.LeafControlRow.splitFor(Unknown Source)
        at org.apache.derby.impl.store.access.btree.BranchControlRow.splitFor(Unknown Source)
        at org.apache.derby.impl.store.access.btree.BranchControlRow.splitFor(Unknown Source)
        at org.apache.derby.impl.store.access.btree.BTreeController.start_xact_and_dosplit(Unknown Source)
        at org.apache.derby.impl.store.access.btree.BTreeController.doIns(Unknown Source)
        at org.apache.derby.impl.store.access.btree.BTreeController.insert(Unknown Source)
        at org.apache.derby.impl.store.access.btree.index.B2IController.insert(Unknown Source)
        at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown Source)
        at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown Source)
        at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown Source)
        at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown Source)
        at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source)
        at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source)
        at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
        at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)


I also get strange exceptions:

11:45:53.970 ERROR [ORB-Worker-2] - Failed to process message
javax.jms.JMSException: Failed to make handle persistent: Failed to add message handle=org.exolab.jms.messagemgr.TopicConsumerMessageHandle@bfa709
        at org.exolab.jms.messagemgr.AbstractConsumerMessageHandle.add(AbstractConsumerMessageHandle.java:294)
        at org.exolab.jms.messagemgr.AbstractTopicConsumerEndpoint.persistentMessageAdded(AbstractTopicConsumerEndpoint.java:255)
        at org.exolab.jms.messagemgr.TopicDestinationCache.persistentMessageAdded(TopicDestinationCache.java:171)
        at org.exolab.jms.messagemgr.MessageMgr.addPersistentMessage(MessageMgr.java:281)
        at org.exolab.jms.messagemgr.MessageMgr.add(MessageMgr.java:181)
        at org.exolab.jms.server.ServerSessionImpl.send(ServerSessionImpl.java:205)
        at org.exolab.jms.server.net.RemoteServerSession.send(RemoteServerSession.java:152)
        at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.exolab.jms.net.orb.DefaultORB$Handler.invoke(DefaultORB.java:572)
        at org.exolab.jms.net.orb.DefaultORB$1.run(DefaultORB.java:530)
        at org.exolab.jms.common.threads.ThreadPool$NotifyingRunnable.run(ThreadPool.java:211)
        at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)
11:45:53.974 ERROR [ORB-Worker-2] - Failed to process message
javax.jms.JMSException: Failed to make handle persistent: Failed to add message handle=org.exolab.jms.messagemgr.TopicConsumerMessageHandle@bfa709
        at org.exolab.jms.messagemgr.AbstractConsumerMessageHandle.add(AbstractConsumerMessageHandle.java:294)
        at org.exolab.jms.messagemgr.AbstractTopicConsumerEndpoint.persistentMessageAdded(AbstractTopicConsumerEndpoint.java:255)
        at org.exolab.jms.messagemgr.TopicDestinationCache.persistentMessageAdded(TopicDestinationCache.java:171)
        at org.exolab.jms.messagemgr.MessageMgr.addPersistentMessage(MessageMgr.java:281)
        at org.exolab.jms.messagemgr.MessageMgr.add(MessageMgr.java:181)
        at org.exolab.jms.server.ServerSessionImpl.send(ServerSessionImpl.java:205)
        at org.exolab.jms.server.net.RemoteServerSession.send(RemoteServerSession.java:152)
        at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.exolab.jms.net.orb.DefaultORB$Handler.invoke(DefaultORB.java:572)
        at org.exolab.jms.net.orb.DefaultORB$1.run(DefaultORB.java:530)
        at org.exolab.jms.common.threads.ThreadPool$NotifyingRunnable.run(ThreadPool.java:211)
        at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)
11:45:54.034 ERROR [Scheduler-Worker-4] - Failed to execute removeMessageHandle for handle=ID:d3de1290-c4b9-1004-8dfc-2adc20b9f7de destination id=1 consumer id=11


Here is a fragment of the code:

        // look up the ConnectionFactory
        factory = (ConnectionFactory) context.lookup("ConnectionFactory");

        // look up the topic
        topic = (Topic) context.lookup(conf.getTopicName());

        // create the connection
        connection = factory.createConnection();

        // create the session
        session = connection.createSession(
            false, Session.AUTO_ACKNOWLEDGE);

        // create the durable subscriber
        subscriber = session.createDurableSubscriber(topic, conf.getSubscriptionName());
       
        subscriber.setMessageListener(new CacheListener(conf));
       
        // start the connection, to enable message receipt
        connection.start();




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
openjms-user mailing list
openjms-user@...
https://lists.sourceforge.net/lists/listinfo/openjms-user
LightInTheBox - Buy quality products at wholesale price!