Search in sources :

Example 1 with MessageIndex

use of com.swiftmq.swiftlet.queue.MessageIndex in project swiftmq-client by iitsoftware.

the class MessageConsumerImpl method reportDelivered.

protected void reportDelivered(Message message, boolean duplicate) {
    try {
        MessageIndex messageIndex = ((MessageImpl) message).getMessageIndex();
        requestRegistry.request(new MessageDeliveredRequest(this, mySession.dispatchId, serverQueueConsumerId, messageIndex, duplicate));
    } catch (Exception e) {
    }
}
Also used : MessageIndex(com.swiftmq.swiftlet.queue.MessageIndex) MessageImpl(com.swiftmq.jms.MessageImpl) IllegalStateException(javax.jms.IllegalStateException)

Example 2 with MessageIndex

use of com.swiftmq.swiftlet.queue.MessageIndex in project swiftmq-ce by iitsoftware.

the class NontransactedSession method visit.

public void visit(AcknowledgeMessageRequest req) {
    if (closed)
        return;
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/visitAcknowledgeMessageRequest");
    AcknowledgeMessageReply reply = null;
    if (req.isReplyRequired()) {
        reply = (AcknowledgeMessageReply) req.createReply();
        reply.setOk(true);
    }
    try {
        MessageIndex ackIndex = req.getMessageIndex();
        if (ctx.ackMode == javax.jms.Session.CLIENT_ACKNOWLEDGE) {
            boolean found = false;
            Iterator iter = deliveredList.iterator();
            while (iter.hasNext()) {
                MessageDeliveredRequest request = (MessageDeliveredRequest) iter.next();
                Consumer consumer = (Consumer) consumerList.get(request.getQueueConsumerId());
                MessageIndex actIndex = request.getMessageIndex();
                QueuePullTransaction t = consumer.getTransaction();
                try {
                    if (!t.isClosed())
                        t.acknowledgeMessage(actIndex);
                } catch (Exception e) {
                // temp queue might be deleted in the mean time
                }
                iter.remove();
            }
        } else {
            Consumer consumer = (Consumer) consumerList.get(req.getQueueConsumerId());
            QueuePullTransaction t = consumer.getReadTransaction();
            try {
                if (!t.isClosed())
                    t.acknowledgeMessage(ackIndex);
            } catch (Exception e) {
            // temp queue might be deleted in the mean time
            }
        }
    } catch (Exception e) {
        if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/visitAcknowledgeMessageRequest, exception: " + e);
        if (reply != null) {
            reply.setOk(false);
            reply.setException(e);
        }
    }
    if (reply != null)
        reply.send();
}
Also used : MessageIndex(com.swiftmq.swiftlet.queue.MessageIndex) Iterator(java.util.Iterator) QueuePullTransaction(com.swiftmq.swiftlet.queue.QueuePullTransaction)

Example 3 with MessageIndex

use of com.swiftmq.swiftlet.queue.MessageIndex in project swiftmq-client by iitsoftware.

the class SMQPUtil method read.

static MessageIndex read(MessageIndex m, DataInput in) throws IOException {
    MessageIndex mi = new MessageIndex();
    mi.readContent(in);
    return mi;
}
Also used : MessageIndex(com.swiftmq.swiftlet.queue.MessageIndex)

Example 4 with MessageIndex

use of com.swiftmq.swiftlet.queue.MessageIndex in project swiftmq-client by iitsoftware.

the class AssociateMessageRequest method readContent.

public void readContent(DataInput in) throws IOException {
    super.readContent(in);
    byte set = in.readByte();
    if (set == 0) {
        messageIndex = null;
    } else {
        messageIndex = new MessageIndex();
        messageIndex.readContent(in);
    }
}
Also used : MessageIndex(com.swiftmq.swiftlet.queue.MessageIndex)

Example 5 with MessageIndex

use of com.swiftmq.swiftlet.queue.MessageIndex in project swiftmq-client by iitsoftware.

the class MessageDeliveredRequest method readContent.

public void readContent(DataInput in) throws IOException {
    super.readContent(in);
    queueConsumerId = in.readInt();
    byte set = in.readByte();
    if (set == 0) {
        messageIndex = null;
    } else {
        messageIndex = new MessageIndex();
        messageIndex.readContent(in);
    }
}
Also used : MessageIndex(com.swiftmq.swiftlet.queue.MessageIndex)

Aggregations

MessageIndex (com.swiftmq.swiftlet.queue.MessageIndex)35 MessageImpl (com.swiftmq.jms.MessageImpl)15 MessageEntry (com.swiftmq.swiftlet.queue.MessageEntry)7 QueuePullTransaction (com.swiftmq.swiftlet.queue.QueuePullTransaction)7 Iterator (java.util.Iterator)7 OutboundTransformer (com.swiftmq.impl.amqp.amqp.v01_00_00.transformer.OutboundTransformer)1 AbstractQueue (com.swiftmq.swiftlet.queue.AbstractQueue)1 QueueTransactionClosedException (com.swiftmq.swiftlet.queue.QueueTransactionClosedException)1 SortedSet (java.util.SortedSet)1 IllegalStateException (javax.jms.IllegalStateException)1 JMSException (javax.jms.JMSException)1