Package org.apache.qpid.server.queue

Examples of org.apache.qpid.server.queue.AMQMessage


            QueueEntry message = entry.getValue();
            long deliveryTag = entry.getKey();



            AMQMessage msg = message.getMessage();
            AMQQueue queue = message.getQueue();

            // Our Java Client will always suspend the channel when resending!
            // If the client has requested the messages be resent then it is
            // their responsibility to ensure that thay are capable of receiving them
            // i.e. The channel hasn't been server side suspended.
            // if (isSuspended())
            // {
            // _log.info("Channel is suspended so requeuing");
            // //move this message to requeue
            // msgToRequeue.add(message);
            // }
            // else
            // {
            // release to allow it to be delivered

            // Without any details from the client about what has been processed we have to mark
            // all messages in the unacked map as redelivered.
            msg.setRedelivered(true);

            Subscription sub = message.getDeliveredSubscription();

            if (sub != null)
            {
View Full Code Here


    {
        if (!_returnMessages.isEmpty())
        {
            for (RequiredDeliveryException bouncedMessage : _returnMessages)
            {
                AMQMessage message = bouncedMessage.getAMQMessage();
                _session.getProtocolOutputConverter().writeReturn(message, _channelId, bouncedMessage.getReplyCode().getCode(),
                                                                 new AMQShortString(bouncedMessage.getMessage()));

                message.decrementReference(_storeContext);
            }

            _returnMessages.clear();
        }
    }
View Full Code Here

                    queues.put(queueName, queue);
                }

                long messageId = rs.getLong(2);
                maxId = Math.max(maxId, messageId);
                AMQMessage message = msgMap.get(messageId);

                if(message != null)
                {
                    message.incrementReference();
                }
                else
                {
                    message = new AMQMessage(messageId, this, messageHandleFactory, txnContext);
                    msgMap.put(messageId,message);
                }

                if (_logger.isDebugEnabled())
                {
                    _logger.debug("On recovery, delivering " + message.getMessageId() + " to " + queue.getName());
                }

                if (_logger.isInfoEnabled())
                {
                    Integer count = queueRecoveries.get(queueName);
View Full Code Here

        _unacknowledgedMessageMap.visit(new UnacknowledgedMessageMap.Visitor()
        {
            public boolean callback(final long deliveryTag, QueueEntry message) throws AMQException
            {

                AMQMessage msg = message.getMessage();
                msg.setRedelivered(true);
                final Subscription subscription = message.getDeliveredSubscription();
                if (subscription != null)
                {
                    // Consumer exists
                    if (!subscription.isClosed())
                    {
                        msgToResend.put(deliveryTag, message);
                    }
                    else // consumer has gone
                    {
                        msgToRequeue.put(deliveryTag, message);
                    }
                }
                else
                {
                    // Message has no consumer tag, so was "delivered" to a GET
                    // or consumer no longer registered
                    // cannot resend, so re-queue.
                    if (!message.isQueueDeleted())
                    {
                        if (requeue)
                        {
                            msgToRequeue.put(deliveryTag, message);
                        }
                        else
                        {
                            _log.info("No DeadLetter Queue and requeue not requested so dropping message:" + message);
                        }
                    }
                    else
                    {
                        message.discard(_storeContext);
                        _log.warn("Message.queue is null and no DeadLetter Queue so dropping message:" + message);
                    }
                }

                // false means continue processing
                return false;
            }

            public void visitComplete()
            {
            }
        });

        _unacknowledgedMessageMap.clear();

        // Process Messages to Resend
        if (_log.isDebugEnabled())
        {
            if (!msgToResend.isEmpty())
            {
                _log.debug("Preparing (" + msgToResend.size() + ") message to resend.");
            }
            else
            {
                _log.debug("No message to resend.");
            }
        }

        for (Map.Entry<Long, QueueEntry> entry : msgToResend.entrySet())
        {
            QueueEntry message = entry.getValue();
            long deliveryTag = entry.getKey();



            AMQMessage msg = message.getMessage();
            AMQQueue queue = message.getQueue();

            // Our Java Client will always suspend the channel when resending!
            // If the client has requested the messages be resent then it is
            // their responsibility to ensure that thay are capable of receiving them
            // i.e. The channel hasn't been server side suspended.
            // if (isSuspended())
            // {
            // _log.info("Channel is suspended so requeuing");
            // //move this message to requeue
            // msgToRequeue.add(message);
            // }
            // else
            // {
            // release to allow it to be delivered

            // Without any details from the client about what has been processed we have to mark
            // all messages in the unacked map as redelivered.
            msg.setRedelivered(true);

            Subscription sub = message.getDeliveredSubscription();

            if (sub != null)
            {
View Full Code Here

    {
        if (!_returnMessages.isEmpty())
        {
            for (RequiredDeliveryException bouncedMessage : _returnMessages)
            {
                AMQMessage message = bouncedMessage.getAMQMessage();
                _session.getProtocolOutputConverter().writeReturn(message, _channelId, bouncedMessage.getReplyCode().getCode(),
                                                                 new AMQShortString(bouncedMessage.getMessage()));

                message.decrementReference(_storeContext);
            }

            _returnMessages.clear();
        }
    }
View Full Code Here

    {
        AMQQueue queue = new AMQQueue(new AMQShortString("a*"), false, null, false, _vhost);
        _exchange.registerQueue(new AMQShortString("a.*"), queue, null);


        AMQMessage message = createMessage("a.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has  route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
            fail("Message has no route and should fail to be routed");
        }
        catch (AMQException nre)
        {
        }
View Full Code Here

    {
        AMQQueue queue = new AMQQueue(new AMQShortString("a#"), false, null, false, _vhost);
        _exchange.registerQueue(new AMQShortString("a.#"), queue, null);


        AMQMessage message = createMessage("a.b.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());

        message = createMessage("a");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
            fail("Message has no route and should fail to be routed");
        }
        catch (AMQException nre)
        {
        }
View Full Code Here

    {
        AMQQueue queue = new AMQQueue(new AMQShortString("a"), false, null, false, _vhost);
        _exchange.registerQueue(new AMQShortString("a.*.#.b"), queue, null);


        AMQMessage message = createMessage("a.c.d.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has no route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());

        message = createMessage("a.c.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has no route and should be routed");
        }
View Full Code Here

    {
        AMQQueue queue = new AMQQueue(new AMQShortString("a#"), false, null, false, _vhost);
        _exchange.registerQueue(new AMQShortString("a.*.#.b.c"), queue, null);


        AMQMessage message = createMessage("a.c.b.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
            fail("Message has route and should not be routed");
        }
        catch (AMQException nre)
        {
        }

        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a.a.b.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has no route and should be routed");
        }

        Assert.assertEquals(1, queue.getMessageCount());

        Assert.assertEquals("Wrong message recevied", message, queue.getMessagesOnTheQueue().get(0));

        queue.deleteMessageFromTop(_context);
        Assert.assertEquals(0, queue.getMessageCount());

        message = createMessage("a.b.c.b");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
            fail("Message has  route and should not be routed");
        }
        catch (AMQException nre)
        {
        }

        Assert.assertEquals(0, queue.getMessageCount());

        message = createMessage("a.b.c.b.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has no route and should be routed");

View Full Code Here

    {
        AMQQueue queue = new AMQQueue(new AMQShortString("a#"), false, null, false, _vhost);
        _exchange.registerQueue(new AMQShortString("a.*.#.b.c.#.d"), queue, null);


        AMQMessage message = createMessage("a.c.b.b.c");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
            fail("Message has route and should not be routed");
        }
        catch (AMQException nre)
        {
        }

        Assert.assertEquals(0, queue.getMessageCount());


        message = createMessage("a.a.b.c.d");

        try
        {
            _exchange.route(message);
            message.routingComplete(_store, _context, new MessageHandleFactory());
        }
        catch (AMQException nre)
        {
            fail("Message has no route and should be routed");
        }
View Full Code Here

TOP

Related Classes of org.apache.qpid.server.queue.AMQMessage

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.