Package org.codehaus.activemq.service

Examples of org.codehaus.activemq.service.TransactionTask


        Set set = destinationMap.get(message.getJMSActiveMQDestination());
        for (Iterator i = set.iterator();i.hasNext();) {
            QueueMessageContainer container = (QueueMessageContainer) i.next();
            container.addMessage(message);
            // Once transaction has completed.. dispatch the message.
            TransactionManager.getContexTransaction().addPostCommitTask(new TransactionTask(){
                public void execute() throws Throwable {
                    dispatcher.wakeup();
                    updateSendStats(client, message);
                }
            });     
View Full Code Here


                   
                } else {
                   
                    unconsumedMessagesDispatched.decrement();
                    // We may have to undo the delivery..
                    TransactionManager.getContexTransaction().addPostRollbackTask(new TransactionTask(){
                        public void execute() throws Throwable {
                            unconsumedMessagesDispatched.increment();
                            pointer.reset();
                            pointer.setRedelivered(true);
                            dispatch.wakeup(SubscriptionImpl.this);
                        }
                    });
                   
                    final QueueListEntry theEntry = entry;
                    TransactionManager.getContexTransaction().addPostCommitTask(new TransactionTask(){
                        public void execute() throws Throwable {
                            messagePtrs.remove(theEntry);
                            if ((ack.isExpired() || ack.isMessageRead()) && !browser) {
                                if (ack.isExpired() && !pointer.getContainer().isDeadLetterQueue()) {
                                    ActiveMQMessage msg = pointer.getContainer().getMessage(pointer.getMessageIdentity());
View Full Code Here

                // note that we still need to persist the message even if there are no matching
                // subscribers as they may come along later
                // plus we don't pre-load subscription information
                final MessageContainer container = getContainer(message.getJMSDestination().toString());
                container.addMessage(message);
                TransactionManager.getContexTransaction().addPostCommitTask(new TransactionTask() {
                    public void execute() throws Throwable {
                        doSendMessage(client, message, container);
                    }
                });
            }
View Full Code Here

                messagePtrs.remove(queueEntry);
                lastMessagePointersPerContainer.put(pointer.getContainer(), pointer);
                unconsumedMessagesDispatched.decrement();

                TransactionManager.getContexTransaction().addPostRollbackTask(new TransactionTask(){
                    public void execute() throws Throwable {                       
                        unconsumedMessagesDispatched.increment();
                        MessagePointer p = new MessagePointer(pointer);
                        p.setRedelivered(true);
                        messagePtrs.add(p);
                        dispatch.wakeup(DurableTopicSubscription.this);
                        lastMessageIdentity = pointer.getMessageIdentity();
                    }
                });

                TransactionManager.getContexTransaction().addPostCommitTask(new TransactionTask(){
                    public void execute() throws Throwable {                       
                        // now lets tell each container to update its lastAcknowlegedMessageID
                        for (Iterator iter = lastMessagePointersPerContainer.entrySet().iterator(); iter.hasNext();) {
                            Map.Entry entry = (Map.Entry) iter.next();
                            TopicMessageContainer container = (TopicMessageContainer) entry.getKey();
View Full Code Here

TOP

Related Classes of org.codehaus.activemq.service.TransactionTask

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.