@Override public void expireMessage(final ClientConsumer consumer, Message message) throws ActiveMQException { SessionExpireMessage messagePacket = new SessionExpireMessage(getConsumerID(consumer), message.getMessageID()); sessionChannel.send(messagePacket); }
/** * @return Returns the message in Map form, useful when encoding to JSON */ default Map<String, Object> toMap() { Map map = toPropertyMap(); map.put("messageID", getMessageID()); Object userID = getUserID(); if (getUserID() != null) { map.put("userID", "ID:" + userID.toString()); } map.put("address", getAddress() == null ? "" : getAddress()); map.put("durable", isDurable()); map.put("expiration", getExpiration()); map.put("timestamp", getTimestamp()); map.put("priority", (int)getPriority()); return map; }
@Override public void sendACK(boolean individual, boolean block, final ClientConsumer consumer, final Message message) throws ActiveMQException { PacketImpl messagePacket; if (individual) { messagePacket = new SessionIndividualAcknowledgeMessage(getConsumerID(consumer), message.getMessageID(), block); } else { messagePacket = new SessionAcknowledgeMessage(getConsumerID(consumer), message.getMessageID(), block); } if (block) { sessionChannel.sendBlocking(messagePacket, PacketImpl.NULL_RESPONSE); } else { sessionChannel.sendBatched(messagePacket); } }
/** * Acknowledges all messages received by the consumer so far. */ @Override public void acknowledge(final ClientConsumer consumer, final Message message) throws ActiveMQException { // if we're pre-acknowledging then we don't need to do anything if (preAcknowledge) { return; } checkClosed(); if (logger.isDebugEnabled()) { logger.debug("client ack messageID = " + message.getMessageID()); } startCall(); try { sessionContext.sendACK(false, blockOnAcknowledge, consumer, message); } finally { endCall(); } }
/** Sub classes must add the first short as the protocol-id */ @Override public void encode(ActiveMQBuffer buffer, Message record) { buffer.writeByte((byte)1); buffer.writeLong(record.getMessageID()); buffer.writeNullableSimpleString(record.getAddressSimpleString()); record.persist(buffer); }
@Override public void copyHeadersAndProperties(final Message msg) { messageID = msg.getMessageID(); address = msg.getAddressSimpleString(); userID = (UUID) msg.getUserID(); type = msg.toCore().getType(); durable = msg.isDurable(); expiration = msg.getExpiration(); timestamp = msg.getTimestamp(); priority = msg.getPriority(); if (msg instanceof CoreMessage) { properties = ((CoreMessage) msg).getTypedProperties(); } }
default void referenceOriginalMessage(final Message original, String originalQueue) { String queueOnMessage = original.getAnnotationString(Message.HDR_ORIGINAL_QUEUE); if (queueOnMessage != null) { setAnnotation(Message.HDR_ORIGINAL_QUEUE, queueOnMessage); } else if (originalQueue != null) { setAnnotation(Message.HDR_ORIGINAL_QUEUE, originalQueue); } Object originalID = original.getAnnotation(Message.HDR_ORIG_MESSAGE_ID); if (originalID != null) { setAnnotation(Message.HDR_ORIGINAL_ADDRESS, original.getAnnotationString(Message.HDR_ORIGINAL_ADDRESS)); setAnnotation(Message.HDR_ORIG_MESSAGE_ID, originalID); } else { setAnnotation(Message.HDR_ORIGINAL_ADDRESS, original.getAddress()); setAnnotation(Message.HDR_ORIG_MESSAGE_ID, original.getMessageID()); } // reset expiry setExpiration(0); }
@Override public long getMessageID() { if (messageID < 0) { messageID = getPagedMessage().getMessage().getMessageID(); } return messageID; }
@Override public void expireMessage(final ClientConsumer consumer, Message message) throws ActiveMQException { SessionExpireMessage messagePacket = new SessionExpireMessage(getConsumerID(consumer), message.getMessageID()); sessionChannel.send(messagePacket); }
@Override public void expireMessage(final ClientConsumer consumer, Message message) throws ActiveMQException { SessionExpireMessage messagePacket = new SessionExpireMessage(getConsumerID(consumer), message.getMessageID()); sessionChannel.send(messagePacket); }
@Override public int sendMessage(MessageReference reference, Message message, ServerConsumer consumer, int deliveryCount) { try { session.getMqttPublishManager().sendMessage(message.toCore(), consumer, deliveryCount); } catch (Exception e) { log.warn("Unable to send message: " + message.getMessageID() + " Cause: " + e.getMessage(), e); } return 1; }
public void reject(Object brokerConsumer, Message message) throws Exception { OperationContext oldContext = recoverContext(); try { ((ServerConsumer) brokerConsumer).reject(message.getMessageID()); } finally { resetContext(oldContext); } }
public void ack(Transaction transaction, Object brokerConsumer, Message message) throws Exception { if (transaction == null) { transaction = serverSession.getCurrentTransaction(); } OperationContext oldContext = recoverContext(); try { ((ServerConsumer) brokerConsumer).individualAcknowledge(transaction, message.getMessageID()); } finally { resetContext(oldContext); } }
/** Sub classes must add the first short as the protocol-id */ @Override public void encode(ActiveMQBuffer buffer, Message record) { buffer.writeByte((byte)1); buffer.writeLong(record.getMessageID()); buffer.writeNullableSimpleString(record.getAddressSimpleString()); record.persist(buffer); }
public void cancel(Object brokerConsumer, Message message, boolean updateCounts) throws Exception { OperationContext oldContext = recoverContext(); try { ((ServerConsumer) brokerConsumer).individualCancel(message.getMessageID(), updateCounts); ((ServerConsumer) brokerConsumer).getQueue().forceDelivery(); } finally { resetContext(oldContext); } }
private void validateSequence(ScheduledDeliveryHandlerImpl handler) throws Exception { long lastSequence = -1; for (MessageReference ref : handler.getScheduledReferences()) { assertEquals(lastSequence + 1, ref.getMessage().getMessageID()); lastSequence = ref.getMessage().getMessageID(); } }
void sendPubRelMessage(Message message) { int messageId = message.getIntProperty(MQTTUtil.MQTT_MESSAGE_ID_KEY); session.getSessionState().getOutboundStore().publishReleasedSent(messageId, message.getMessageID()); session.getProtocolHandler().sendPubRel(messageId); }
public static ICoreMessage embedAsCoreMessage(Message source) { if (source instanceof ICoreMessage) { return (ICoreMessage) source; } else { Persister persister = source.getPersister(); CoreMessage message = new CoreMessage(source.getMessageID(), persister.getEncodeSize(source) + signature.length + CoreMessage.BODY_OFFSET).setType(Message.EMBEDDED_TYPE); ActiveMQBuffer buffer = message.getBodyBuffer(); buffer.writeBytes(signature); persister.encode(buffer, source); return message; } }
/** Sub classes must add the first short as the protocol-id */ @Override public void encode(ActiveMQBuffer buffer, Message record) { super.encode(buffer, record); AMQPMessage msgEncode = (AMQPMessage)record; buffer.writeLong(record.getMessageID()); buffer.writeLong(msgEncode.getMessageFormat()); buffer.writeNullableSimpleString(record.getAddressSimpleString()); record.persist(buffer); }
@Override public void updateScheduledDeliveryTimeTransactional(final long txID, final MessageReference ref) throws Exception { ScheduledDeliveryEncoding encoding = new ScheduledDeliveryEncoding(ref.getScheduledDeliveryTime(), ref.getQueue().getID()); readLock(); try { messageJournal.appendUpdateRecordTransactional(txID, ref.getMessage().getMessageID(), JournalRecordIds.SET_SCHEDULED_DELIVERY_TIME, encoding); } finally { readUnLock(); } }