@Override public boolean sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference, Subscription subscription, Throwable poisonCause) { return getNext().sendToDeadLetterQueue(context, messageReference, subscription, poisonCause); }
/** * * @param context * @param node * @param poisonCause * @throws IOException * @throws Exception */ protected void sendToDLQ(final ConnectionContext context, final MessageReference node, Throwable poisonCause) throws IOException, Exception { broker.getRoot().sendToDeadLetterQueue(context, node, this, poisonCause); }
@Override public void messageExpired(ConnectionContext context, MessageReference node, Subscription subscription) { LOG.debug("Message expired {}", node); getRoot().sendToDeadLetterQueue(context, node, subscription, new Throwable("Message Expired. Expiration:" + node.getExpiration())); }
@Override public void duplicateFromStore(Message message, Subscription subscription) { ConnectionContext connectionContext = createConnectionContext(); getLog().warn("{}{}, redirecting {} for dlq processing", DUPLICATE_FROM_STORE_MSG_PREFIX, destination, message.getMessageId()); Throwable cause = new Throwable(DUPLICATE_FROM_STORE_MSG_PREFIX + destination); message.setRegionDestination(this); broker.getRoot().sendToDeadLetterQueue(connectionContext, message, null, cause); MessageAck messageAck = new MessageAck(message, MessageAck.POSION_ACK_TYPE, 1); messageAck.setPoisonCause(cause); try { acknowledge(connectionContext, subscription, messageAck, message); } catch (IOException e) { getLog().error("Failed to acknowledge duplicate message {} from {} with {}", message.getMessageId(), destination, messageAck); } }
private void discard(MessageReference message) { discarding = true; try { message.decrementReferenceCount(); matched.remove(message); discarded++; if (destination != null) { destination.getDestinationStatistics().getDequeues().increment(); } LOG.debug("{}, discarding message {}", this, message); Destination dest = (Destination) message.getRegionDestination(); if (dest != null) { dest.messageDiscarded(getContext(), this, message); } broker.getRoot().sendToDeadLetterQueue(getContext(), message, this, new Throwable("TopicSubDiscard. ID:" + info.getConsumerId())); } finally { discarding = false; } }
store.removeMessage(connectionContext, new MessageAck(ref.getMessage(), MessageAck.POSION_ACK_TYPE, 1)); broker.getRoot().sendToDeadLetterQueue(connectionContext, ref.getMessage(), null, new Throwable("duplicate paged in from cursor for " + destination));
} else { dropped = false; return next.sendToDeadLetterQueue(ctx, msgRef, subscription, poisonCause);
@Override public boolean sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference, Subscription subscription, Throwable poisonCause) { return getNext().sendToDeadLetterQueue(context, messageReference, subscription, poisonCause); }
@Override public boolean sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference, Subscription subscription, Throwable poisonCause) { return getNext().sendToDeadLetterQueue(context, messageReference, subscription, poisonCause); }
/** * * @param context * @param node * @param poisonCause * @throws IOException * @throws Exception */ protected void sendToDLQ(final ConnectionContext context, final MessageReference node, Throwable poisonCause) throws IOException, Exception { broker.getRoot().sendToDeadLetterQueue(context, node, this, poisonCause); }
/** * * @param context * @param node * @param poisonCause * @throws IOException * @throws Exception */ protected void sendToDLQ(final ConnectionContext context, final MessageReference node, Throwable poisonCause) throws IOException, Exception { broker.getRoot().sendToDeadLetterQueue(context, node, this, poisonCause); }
/** * @param context * @param node * @throws IOException * @throws Exception */ protected void sendToDLQ(final ConnectionContext context, final MessageReference node) throws IOException, Exception { broker.getRoot().sendToDeadLetterQueue(context, node, this); }
@Override public void messageExpired(ConnectionContext context, MessageReference node, Subscription subscription) { if (LOG.isDebugEnabled()) { LOG.debug("Message expired " + node); } getRoot().sendToDeadLetterQueue(context, node, subscription); }
/** * * @param context * @param node * @param poisonCause * @throws IOException * @throws Exception */ protected void sendToDLQ(final ConnectionContext context, final MessageReference node, Throwable poisonCause) throws IOException, Exception { broker.getRoot().sendToDeadLetterQueue(context, node, this, poisonCause); }
@Override public boolean sendToDeadLetterQueue(ConnectionContext context, MessageReference messageReference, Subscription subscription, Throwable poisonCause) { return getNext().sendToDeadLetterQueue(context, messageReference, subscription, poisonCause); }
@Override public void messageExpired(ConnectionContext context, MessageReference node, Subscription subscription) { LOG.debug("Message expired {}", node); getRoot().sendToDeadLetterQueue(context, node, subscription, new Throwable("Message Expired. Expiration:" + node.getExpiration())); }
@Override public void messageExpired(ConnectionContext context, MessageReference node, Subscription subscription) { LOG.debug("Message expired {}", node); getRoot().sendToDeadLetterQueue(context, node, subscription, new Throwable("Message Expired. Expiration:" + node.getExpiration())); }
@Override public void messageExpired(ConnectionContext context, MessageReference node, Subscription subscription) { LOG.debug("Message expired {}", node); getRoot().sendToDeadLetterQueue(context, node, subscription, new Throwable("Message Expired. Expiration:" + node.getExpiration())); }
protected void discard(MessageReference message) { message.decrementReferenceCount(); if (LOG.isDebugEnabled()) { LOG.debug("Discarding message " + message); } ConnectionContext ctx = new ConnectionContext(new NonCachedMessageEvaluationContext()); ctx.setBroker(broker); broker.getRoot().sendToDeadLetterQueue(ctx, message, null); }
@Override public void duplicateFromStore(Message message, Subscription durableSub) { ConnectionContext connectionContext = createConnectionContext(); getLog().warn("duplicate message from store {}, redirecting for dlq processing", message.getMessageId()); Throwable cause = new Throwable("duplicate from store for " + destination); message.setRegionDestination(this); broker.getRoot().sendToDeadLetterQueue(connectionContext, message, null, cause); MessageAck messageAck = new MessageAck(message, MessageAck.POSION_ACK_TYPE, 1); messageAck.setPoisonCause(cause); try { acknowledge(connectionContext, durableSub, messageAck, message); } catch (IOException e) { getLog().error("Failed to acknowledge duplicate message {} from {} with {}", message.getMessageId(), destination, messageAck); } }