Package org.apache.qpid.server.txn

Examples of org.apache.qpid.server.txn.TransactionalContext


    private AMQMessage createMessage(String s) throws AMQException
    {
        MessagePublishInfo info = new PublishInfo(new AMQShortString(s));

        TransactionalContext trancontext = new NonTransactionalContext(_store, _context, null,
                                                                       new LinkedList<RequiredDeliveryException>(),
                                                                       new HashSet<Long>());

        AMQMessage message = new AMQMessage(0L, info, trancontext);
        message.setContentHeaderBody(new ContentHeaderBody());
View Full Code Here


        // we must create a new map since all the messages will get a new delivery tag when they are redelivered
        Collection<UnacknowledgedMessage> messagesToBeDelivered = _unacknowledgedMessageMap.cancelAllMessages();

        // Deliver these messages out of the transaction as their delivery was never
        // part of the transaction only the receive.
        TransactionalContext deliveryContext = null;

        if (!messagesToBeDelivered.isEmpty())
        {
            if (_log.isInfoEnabled())
            {
                _log.info("Requeuing " + messagesToBeDelivered.size() + " unacked messages. for " + toString());
            }

            if (!(_txnContext instanceof NonTransactionalContext))
            {
                // if (_nonTransactedContext == null)
                {
                    _nonTransactedContext =
                        new NonTransactionalContext(_messageStore, _storeContext, this, _returnMessages, _browsedAcks);
                }

                deliveryContext = _nonTransactedContext;
            }
            else
            {
                deliveryContext = _txnContext;
            }
        }

        for (UnacknowledgedMessage unacked : messagesToBeDelivered)
        {
            if (unacked.queue != null)
            {
                // Ensure message is released for redelivery
                unacked.message.release(unacked.queue);

                // Mark message redelivered
                unacked.message.setRedelivered(true);

                // Deliver Message
                deliveryContext.deliver(unacked.message, unacked.queue, false);

                // Should we allow access To the DM to directy deliver the message?
                // As we don't need to check for Consumers or worry about incrementing the message count?
                // unacked.queue.getDeliveryManager().deliver(_storeContext, unacked.queue.getName(), unacked.message, false);
            }
View Full Code Here

            // Mark message redelivered
            unacked.message.setRedelivered(true);

            // Deliver these messages out of the transaction as their delivery was never
            // part of the transaction only the receive.
            TransactionalContext deliveryContext;
            if (!(_txnContext instanceof NonTransactionalContext))
            {
                // if (_nonTransactedContext == null)
                {
                    _nonTransactedContext =
                        new NonTransactionalContext(_messageStore, _storeContext, this, _returnMessages, _browsedAcks);
                }

                deliveryContext = _nonTransactedContext;
            }
            else
            {
                deliveryContext = _txnContext;
            }

            if (unacked.queue != null)
            {
                // Redeliver the messages to the front of the queue
                deliveryContext.deliver(unacked.message, unacked.queue, true);
                // Deliver increments the message count but we have already deliverted this once so don't increment it again
                // this was because deliver did an increment changed this.
            }
            else
            {
View Full Code Here

            }
        }

        // Deliver these messages out of the transaction as their delivery was never
        // part of the transaction only the receive.
        TransactionalContext deliveryContext;
        if (!(_txnContext instanceof NonTransactionalContext))
        {
            if (_nonTransactedContext == null)
            {
                _nonTransactedContext =
                    new NonTransactionalContext(_messageStore, _storeContext, this, _returnMessages, _browsedAcks);
            }

            deliveryContext = _nonTransactedContext;
        }
        else
        {
            deliveryContext = _txnContext;
        }

        // Process Messages to Requeue at the front of the queue
        for (UnacknowledgedMessage message : msgToRequeue)
        {
            message.message.release(message.queue);
            message.message.setRedelivered(true);

            deliveryContext.deliver(message.message, message.queue, true);

            _unacknowledgedMessageMap.remove(message.deliveryTag);
        }
    }
View Full Code Here

        publishMessages(count, false);
    }

    private void publishMessages(int count, boolean persistent) throws AMQException
    {
        TransactionalContext txnContext = new NonTransactionalContext(_messageStore, _storeContext, null,
                                                                      new LinkedList<RequiredDeliveryException>(),
                                                                      new HashSet<Long>());
        MessageHandleFactory factory = new MessageHandleFactory();
        for (int i = 1; i <= count; i++)
        {
View Full Code Here

        publish.exchange = new NullExchange().getName();
        ContentHeaderBody header = new ContentHeaderBody();
        List<ContentBody> body = new ArrayList<ContentBody>();
        MessageStore messageStore = new SkeletonMessageStore();
        // channel can be null since it is only used in ack processing which does not apply to this test
        TransactionalContext txContext = new NonTransactionalContext(messageStore, null,
                                                                     new LinkedList<RequiredDeliveryException>());
        body.add(new ContentBody());
        MessageHandleFactory factory = new MessageHandleFactory();
        for (int i = 0; i < count; i++)
        {
View Full Code Here

        publishMessages(count, false);
    }

    private void publishMessages(int count, boolean persistent) throws AMQException
    {
        TransactionalContext txnContext = new NonTransactionalContext(_messageStore, _storeContext, null,
                                                                      new LinkedList<RequiredDeliveryException>()
        );
        _queue.registerSubscription(_subscription,false);
        MessageHandleFactory factory = new MessageHandleFactory();
        for (int i = 1; i <= count; i++)
View Full Code Here

        private final List<Long> _unacked;
        private StoreContext _storeContext = new StoreContext();

        Scenario(int messageCount, List<Long> acked, List<Long> unacked) throws Exception
        {
            TransactionalContext txnContext = new NonTransactionalContext(new TestMemoryMessageStore(),
                                                                          _storeContext, null,
                                                                          new LinkedList<RequiredDeliveryException>()
            );
            AMQQueue queue =
                    AMQQueueFactory.createAMQQueueImpl(new AMQShortString("test"), false, null, false, new VirtualHost("test", new MemoryMessageStore()),
                                                       null);

            for (int i = 0; i < messageCount; i++)
            {
                long deliveryTag = i + 1;

                MessagePublishInfo info = new MessagePublishInfo()
                {

                    public AMQShortString getExchange()
                    {
                        return null;
                    }

                    public void setExchange(AMQShortString exchange)
                    {
                        //To change body of implemented methods use File | Settings | File Templates.
                    }

                    public boolean isImmediate()
                    {
                        return false;
                    }

                    public boolean isMandatory()
                    {
                        return false;
                    }

                    public AMQShortString getRoutingKey()
                    {
                        return null;
                    }
                };

                TestMessage message = new TestMessage(deliveryTag, i, info, txnContext.getStoreContext());
                _map.add(deliveryTag, queue.enqueue(new StoreContext(), message));
            }
            _acked = acked;
            _unacked = unacked;
        }
View Full Code Here


            MessageHandleFactory messageHandleFactory = new MessageHandleFactory();
            long maxId = 1;

            TransactionalContext txnContext = new NonTransactionalContext(this, new StoreContext(), null, null);

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SELECT_FROM_QUEUE_ENTRY);

View Full Code Here

        // we must create a new map since all the messages will get a new delivery tag when they are redelivered
        Collection<QueueEntry> messagesToBeDelivered = _unacknowledgedMessageMap.cancelAllMessages();

        // Deliver these messages out of the transaction as their delivery was never
        // part of the transaction only the receive.
        TransactionalContext deliveryContext = null;

        if (!messagesToBeDelivered.isEmpty())
        {
            if (_log.isInfoEnabled())
            {
                _log.info("Requeuing " + messagesToBeDelivered.size() + " unacked messages. for " + toString());
            }

            if (!(_txnContext instanceof NonTransactionalContext))
            {

                    deliveryContext =
                            new NonTransactionalContext(_messageStore, _storeContext, this, _returnMessages);
            }
            else
            {
                deliveryContext = _txnContext;
            }
        }

        for (QueueEntry unacked : messagesToBeDelivered)
        {
            if (!unacked.isQueueDeleted())
            {
                // Mark message redelivered
                unacked.getMessage().setRedelivered(true);

                // Ensure message is released for redelivery
                unacked.release();

                // Deliver Message
                deliveryContext.requeue(unacked);

            }
            else
            {
                unacked.discard(_storeContext);
View Full Code Here

TOP

Related Classes of org.apache.qpid.server.txn.TransactionalContext

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.