Examples of QueueListEntry


Examples of org.codehaus.activemq.service.QueueListEntry

        // lets find the cached identity as it has the sequence number
        // attached to it
      MessageIdentity storedIdentity=null;

      synchronized( this ) {
          QueueListEntry entry = deliveredMessages.getFirstEntry();
          while (entry != null) {
              MessageIdentity identity = (MessageIdentity) entry.getElement();
              if (messageID.equals(identity)) {
                  deliveredMessages.remove(entry);
                  storedIdentity=identity;
                  break;
              }
              entry = deliveredMessages.getNextEntry(entry);
          }
         
          if (storedIdentity==null) {
              // maybe the messages have not been delivered yet
              // as we are recovering from a previous transaction log
              entry = messagesToBeDelivered.getFirstEntry();
              while (entry != null) {
                  MessageIdentity identity = (MessageIdentity) entry.getElement();
                  if (messageID.equals(identity)) {
                      messagesToBeDelivered.remove(entry);
                      storedIdentity=identity;
                      break;
                  }
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

        if (subList != null && subList.size() > 0) {
            do {
                boolean dispatched = false;
                msg = container.poll();
                if (msg != null) {
                    QueueListEntry entry = subList.getFirstEntry();
                    boolean targeted = false;
                    while (entry != null) {
                        SubscriptionImpl sub = (SubscriptionImpl) entry.getElement();
                        if (sub.isTarget(msg)) {
                            targeted = true;
                            if (!sub.isAtPrefetchLimit()) {
                                sub.addMessage(container, msg);
                                dispatched = true;
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

    public void close() throws JMSException {
        if (started.get()) {
            stop();
        }
        queue.close();
        QueueListEntry entry = subscriptions.getFirstEntry();
        while (entry != null) {
            TransientQueueSubscription ts = (TransientQueueSubscription) entry.getElement();
            ts.close();
            entry = subscriptions.getNextEntry(entry);
        }
        subscriptions.clear();
    }
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

                targeted = false;
                if (!subscriptions.isEmpty()) {
                    message = (ActiveMQMessage) queue.dequeue(2000);
                    if (message != null) {
                        if (!message.isExpired()) {
                            QueueListEntry entry = subscriptions.getFirstEntry();
                            while (entry != null) {
                                TransientQueueSubscription ts = (TransientQueueSubscription) entry.getElement();
                                if (ts.isTarget(message)) {
                                    targeted = true;
                                    if (ts.canAcceptMessages()) {
                                        ts.doDispatch(message);
                                        message = null;
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

    }


    private TransientQueueSubscription findMatch(ConsumerInfo info) throws JMSException {
        TransientQueueSubscription result = null;
        QueueListEntry entry = subscriptions.getFirstEntry();
        while (entry != null) {
            TransientQueueSubscription ts = (TransientQueueSubscription) entry.getElement();
            if (ts.getConsumerInfo().equals(info)) {
                result = ts;
                break;
            }
            entry = subscriptions.getNextEntry(entry);
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

     * @param id
     * @return
     */
    public Packet remove(String id) {
        Packet result = null;
        QueueListEntry entry = internalList.getFirstEntry();
        try {
            while (entry != null) {
                Packet p = (Packet) entry.getElement();
                if (p.getId().equals(id)) {
                    result = p;
                    internalList.remove(entry);
                    break;
                }
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

        else {
            Map lastMessagePointersPerContainer = new HashMap();

            //remove up to this message
            boolean found = false;
            QueueListEntry queueEntry = messagePtrs.getFirstEntry();
            while (queueEntry != null) {
                MessagePointer pointer = (MessagePointer) queueEntry.getElement();

                messagePtrs.remove(queueEntry);
                lastMessagePointersPerContainer.put(pointer.getContainer(), pointer);
                unconsumedMessagesDispatched.decrement();
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

     * Called when the Subscription is discarded
     *
     * @throws JMSException
     */
    public synchronized void clear() throws JMSException {
        QueueListEntry entry = messagePtrs.getFirstEntry();
        while (entry != null) {
            MessagePointer pointer = (MessagePointer) entry.getElement();
            pointer.clear();
            entry = messagePtrs.getNextEntry(entry);
        }
        messagePtrs.clear();
    }
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

    /**
     * Called when an active subscriber has closed. This resets all MessagePtrs
     */
    public synchronized void reset() throws JMSException {
        QueueListEntry entry = messagePtrs.getFirstEntry();
        while (entry != null) {
            MessagePointer pointer = (MessagePointer) entry.getElement();
            if (pointer.isDispatched()) {
                pointer.reset();
                pointer.setRedelivered(true);
            }
            else {
View Full Code Here

Examples of org.codehaus.activemq.service.QueueListEntry

    public synchronized void onAcknowledgeTransactedMessageBeforeCommit(MessageAck ack) throws JMSException {
        doMessageConsume(ack, false);
    }

    public synchronized void redeliverMessage(MessageContainer container, MessageAck ack) throws JMSException {
        QueueListEntry entry = messagePtrs.getFirstEntry();
        while (entry != null) {
            MessagePointer pointer = (MessagePointer) entry.getElement();
            if (pointer.getMessageIdentity().getMessageID().equals(ack.getMessageID())) {
                break;
            }
            entry = messagePtrs.getNextEntry(entry);
        }
        if (entry != null) {
            MessagePointer pointer = (MessagePointer) entry.getElement();
            if (pointer != null) {
                unconsumedMessagesDispatched.increment();
                //System.out.println("Incremented unconsumed count to: " + unconsumedMessagesDispatched.get());
                pointer.reset();
                pointer.setRedelivered(true);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.