public boolean isPartial() { return delivery.isPartial(); }
protected void processDelivery(Delivery delivery) throws Exception { if (!delivery.isPartial()) { Object context = delivery.getLink().getContext(); if (context instanceof AmqpLink) { AmqpLink amqpLink = (AmqpLink) context; amqpLink.delivery(delivery); } } }
protected void processDelivery(Delivery delivery) throws Exception { if (!delivery.isPartial()) { Object context = delivery.getLink().getContext(); if (context instanceof AmqpLink) { AmqpLink amqpLink = (AmqpLink) context; amqpLink.delivery(delivery); } } }
public boolean test() { //do we have at least one pending message? if (_incomingStore.size() > 0) return true; for (Connector<?> c : _driver.connectors()) { Connection connection = c.getConnection(); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable() && !delivery.isPartial()) { return true; } else { delivery = delivery.getWorkNext(); } } } // if no connections, or not listening, exit as there won't ever be a message if (!_driver.listeners().iterator().hasNext() && !_driver.connectors().iterator().hasNext()) return true; return false; } }
@Override public void onDelivery(Event event) { synchronized (this.firstResponse) { if (this.isFirstResponse) { this.isFirstResponse = false; this.amqpReceiver.onOpenComplete(null); } } Delivery delivery = event.getDelivery(); Receiver receiveLink = (Receiver) delivery.getLink(); TRACE_LOGGER.debug("onDelivery: linkName:{}, updatedLinkCredit:{}, remoteCredit:{}, remoteCondition:{}, delivery.isPartial:{}", receiveLink.getName(), receiveLink.getCredit(), receiveLink.getRemoteCredit(), receiveLink.getRemoteCondition(), delivery.isPartial()); //TODO: What happens when a delivery has no message, but only disposition from the remote link? Like when ServiceBus service sends just a disposition to the receiver?" // If a message spans across deliveries (for ex: 200k message will be 4 frames (deliveries) 64k 64k 64k 8k), // all until "last-1" deliveries will be partial // reactor will raise onDelivery event for all of these - we only need the last one if (!delivery.isPartial()) { this.amqpReceiver.onReceiveComplete(delivery); } } }
public boolean test() { //do we have at least one pending message? if (_incomingStore.size() > 0) return true; for (Connector<?> c : _driver.connectors()) { Connection connection = c.getConnection(); Delivery delivery = connection.getWorkHead(); while (delivery != null) { if (delivery.isReadable() && !delivery.isPartial()) { return true; } else { delivery = delivery.getWorkNext(); } } } // if no connections, or not listening, exit as there won't ever be a message if (!_driver.listeners().iterator().hasNext() && !_driver.connectors().iterator().hasNext()) return true; return false; } }
if (!delivery.isPartial()) { String.format(Locale.US, "onDelivery linkName[%s], updatedLinkCredit[%s], remoteCredit[%s], " + "remoteCondition[%s], delivery.isPartial[%s]", receiveLink.getName(), receiveLink.getCredit(), receiveLink.getRemoteCredit(), receiveLink.getRemoteCondition(), delivery.isPartial()));
if (linkName.equals(this.receiverLinkTag) && (delivery != null) && delivery.isReadable() && !delivery.isPartial())
private int pumpIn(String address, Receiver receiver) if (delivery.isReadable() && !delivery.isPartial())
incoming = getEndpoint().current(); if (incoming != null) { if (incoming.isReadable() && !incoming.isPartial()) { LOG.trace("{} has incoming Message(s).", this); try {
if (delivery.isPartial()) { return;
@Override public void processDeliveryUpdates(AmqpProvider provider, Delivery delivery) throws IOException { if (delivery.isReadable() && !delivery.isPartial()) { LOG.trace("{} has incoming Message(s).", this); try { if (processDelivery(delivery)) { // We processed a message, signal completion // of a message pull request if there is one. if (pullRequest != null) { pullRequest.onSuccess(); pullRequest = null; } } } catch (Exception e) { throw IOExceptionSupport.create(e); } } if (getEndpoint().current() == null) { // We have exhausted the locally queued messages on this link. // Check if we tried to stop and have now run out of credit. if (getEndpoint().getRemoteCredit() <= 0) { if (stopRequest != null) { stopRequest.onSuccess(); stopRequest = null; } } } super.processDeliveryUpdates(provider, delivery); }
@Override public void processDeliveryUpdates(AmqpProvider provider, Delivery delivery) throws IOException { if (delivery.isReadable() && !delivery.isPartial()) { LOG.trace("{} has incoming Message(s).", this); try { if (processDelivery(delivery)) { // We processed a message, signal completion // of a message pull request if there is one. if (pullRequest != null) { pullRequest.onSuccess(); pullRequest = null; } } } catch (Exception e) { throw IOExceptionSupport.create(e); } } if (getEndpoint().current() == null) { // We have exhausted the locally queued messages on this link. // Check if we tried to stop and have now run out of credit. if (getEndpoint().getRemoteCredit() <= 0) { if (stopRequest != null) { stopRequest.onSuccess(); stopRequest = null; } } } super.processDeliveryUpdates(provider, delivery); }
if (delivery.isReadable() && !delivery.isPartial()) {
} else if (delivery.isReadable() && !delivery.isPartial()) { // Assuming link instanceof Receiver... Receiver receiver = (Receiver)event.getLink(); int amount = delivery.pending();
if (delivery.isReadable() && !delivery.isPartial() && delivery.getLink().getName().equals(RECEIVE_TAG))
} else if (delivery.isPartial()) { return;
@Override public void onMessage(Delivery delivery) throws ActiveMQAMQPException { connection.requireInHandler(); Receiver receiver = ((Receiver) delivery.getLink()); if (receiver.current() != delivery) { return; } if (delivery.isAborted()) { // Aborting implicitly remotely settles, so advance // receiver to the next delivery and settle locally. receiver.advance(); delivery.settle(); // Replenish the credit if not doing a drain if (!receiver.getDrain()) { receiver.flow(1); } return; } else if (delivery.isPartial()) { return; } ReadableBuffer data = receiver.recv(); receiver.advance(); Transaction tx = null; if (delivery.getRemoteState() instanceof TransactionalState) { TransactionalState txState = (TransactionalState) delivery.getRemoteState(); tx = this.sessionSPI.getTransaction(txState.getTxnId(), false); } final Transaction txUsed = tx; actualDelivery(delivery, receiver, data, txUsed); }
Delivery delivery = recv.current(); if (delivery.isReadable() && !delivery.isPartial() && delivery.getLink().getName().equalsIgnoreCase(FILE_NOTIFICATION_RECEIVE_TAG))
if (delivery.isPartial()) { handlePartial(receiver, delivery);