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) {
}
}
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();
}
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;
}
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);
}
}
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);
}
}
Aggregations