Class AMQPMirrorControllerTarget
java.lang.Object
org.apache.activemq.artemis.protocol.amqp.proton.ProtonInitializable
org.apache.activemq.artemis.protocol.amqp.proton.ProtonAbstractReceiver
org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget
- All Implemented Interfaces:
org.apache.activemq.artemis.core.server.mirror.MirrorController, ProtonDeliveryHandler
public class AMQPMirrorControllerTarget
extends ProtonAbstractReceiver
implements org.apache.activemq.artemis.core.server.mirror.MirrorController
-
Nested Class Summary
Nested classes/interfaces inherited from class ProtonAbstractReceiver
ProtonAbstractReceiver.FlowControlRunner, ProtonAbstractReceiver.ReceiverState -
Field Summary
Fields inherited from class ProtonAbstractReceiver
connection, coreLargeMessageReader, coreMessageReader, coreTunnelingEnabled, creditRunnable, creditTopUpRunner, drainCreditOnNoSpace, drainTimeout, largeMessageReader, messageReader, minLargeMessageSize, pendingQuiesceTimeout, pendingSettles, pendingStop, protonSession, receiver, sessionSPI, standardMessageReader, state, useModifiedFields inherited from class ProtonInitializable
initialized -
Constructor Summary
ConstructorsConstructorDescriptionAMQPMirrorControllerTarget(AMQPSessionCallback sessionSPI, AMQPConnectionContext connection, AMQPSessionContext protonSession, org.apache.qpid.proton.engine.Receiver receiver, org.apache.activemq.artemis.core.server.ActiveMQServer server) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidactualDelivery(Message message, org.apache.qpid.proton.engine.Delivery delivery, org.apache.qpid.proton.amqp.messaging.DeliveryAnnotations deliveryAnnotations, org.apache.qpid.proton.engine.Receiver receiver, org.apache.activemq.artemis.core.transaction.Transaction tx) Perform the actual message processing for an inbound message.voidaddAddress(org.apache.activemq.artemis.core.server.impl.AddressInfo addressInfo) voidclose(boolean remoteLinkClose) voidcreateQueue(QueueConfiguration queueConfiguration) voiddeleteAddress(org.apache.activemq.artemis.core.server.impl.AddressInfo addressInfo) voiddeleteQueue(SimpleString addressName, SimpleString queueName) protected voidPerforms the actual credit top up logic for the receiver.voidflush()This method will wait both replication and storage to finish their current operations.protected SimpleStringReturns either the fixed address assigned to this sender, or the last address used by an anonymous relay sender; if this is an anonymous relay and no send has occurred then this method returnsnull.static org.apache.activemq.artemis.core.server.mirror.MirrorControllerintvoidbooleanisBusy()booleanpostAcknowledge(String queue, String nodeID, long messageID, org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget.ACKMessageOperation ackMessage, org.apache.activemq.artemis.core.server.impl.AckReason reason) voidpostAcknowledge(org.apache.activemq.artemis.core.server.MessageReference ref, org.apache.activemq.artemis.core.server.impl.AckReason reason) voidpreAcknowledge(org.apache.activemq.artemis.core.transaction.Transaction tx, org.apache.activemq.artemis.core.server.MessageReference ref, org.apache.activemq.artemis.core.server.impl.AckReason reason) voidsendMessage(org.apache.activemq.artemis.core.transaction.Transaction tx, Message message, org.apache.activemq.artemis.core.server.RoutingContext context) static voidsetControllerInUse(org.apache.activemq.artemis.core.server.mirror.MirrorController controller) voidMethods inherited from class ProtonAbstractReceiver
calculatedUpdateRefill, close, closeCurrentReader, createCreditRunnable, createCreditRunnable, deliveryFailed, enableCoreTunneling, failIfCoreTunnelNotEnabled, getConfiguredMinLargeMessageSize, getConnection, getEffectiveDefaultOutcome, getLinkQuiesceTimeout, getSessionContext, incrementSettle, isAddressFull, isBellowThreshold, isClosed, isDraining, isDrainOnTransientDeliveryErrors, isStarted, isStopped, isStopping, isUseModifiedForTransientDeliveryErrors, onExceptionWhileReading, onFlow, onMessage, onMessageComplete, outcomeSupported, recoverContext, settle, start, stop, topUpCreditIfNeeded, trySelectMessageReaderMethods inherited from class ProtonInitializable
isInitializedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.activemq.artemis.core.server.mirror.MirrorController
isRetryACK
-
Constructor Details
-
AMQPMirrorControllerTarget
public AMQPMirrorControllerTarget(AMQPSessionCallback sessionSPI, AMQPConnectionContext connection, AMQPSessionContext protonSession, org.apache.qpid.proton.engine.Receiver receiver, org.apache.activemq.artemis.core.server.ActiveMQServer server)
-
-
Method Details
-
setControllerInUse
public static void setControllerInUse(org.apache.activemq.artemis.core.server.mirror.MirrorController controller) -
getControllerInUse
public static org.apache.activemq.artemis.core.server.mirror.MirrorController getControllerInUse() -
isBusy
public boolean isBusy()- Overrides:
isBusyin classProtonAbstractReceiver
-
getMirrorMaxPendingAcks
public int getMirrorMaxPendingAcks() -
verifyCredits
public void verifyCredits() -
close
- Specified by:
closein interfaceProtonDeliveryHandler- Overrides:
closein classProtonAbstractReceiver- Throws:
ActiveMQAMQPException
-
flush
public void flush()This method will wait both replication and storage to finish their current operations. -
getRemoteMirrorId
- Specified by:
getRemoteMirrorIdin interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController
-
doCreditTopUpRun
protected void doCreditTopUpRun()Description copied from class:ProtonAbstractReceiverPerforms the actual credit top up logic for the receiver.This can be overridden in the subclass to run its own logic for credit top up instead of using the default logic used in this abstract base.
- Overrides:
doCreditTopUpRunin classProtonAbstractReceiver
-
actualDelivery
protected void actualDelivery(Message message, org.apache.qpid.proton.engine.Delivery delivery, org.apache.qpid.proton.amqp.messaging.DeliveryAnnotations deliveryAnnotations, org.apache.qpid.proton.engine.Receiver receiver, org.apache.activemq.artemis.core.transaction.Transaction tx) Description copied from class:ProtonAbstractReceiverPerform the actual message processing for an inbound message. The subclass either consumes and settles the message in place or hands it off to another intermediary who is responsible for eventually settling the newly read message.- Specified by:
actualDeliveryin classProtonAbstractReceiver- Parameters:
message- The message as provided from the remote or after local transformation by subclass.delivery- The proton delivery where the message bytes where read fromdeliveryAnnotations- The delivery annotations if present that accompanied the incoming message.receiver- The proton receiver that represents the link over which the message was sent.tx- The transaction under which the incoming message was sent.
-
initialize
- Specified by:
initializein classProtonInitializable- Throws:
Exception
-
preAcknowledge
public void preAcknowledge(org.apache.activemq.artemis.core.transaction.Transaction tx, org.apache.activemq.artemis.core.server.MessageReference ref, org.apache.activemq.artemis.core.server.impl.AckReason reason) throws Exception - Specified by:
preAcknowledgein interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController- Throws:
Exception
-
addAddress
-
deleteAddress
-
createQueue
- Specified by:
createQueuein interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController- Throws:
Exception
-
deleteQueue
- Specified by:
deleteQueuein interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController- Throws:
Exception
-
postAcknowledge
-
postAcknowledge
public void postAcknowledge(org.apache.activemq.artemis.core.server.MessageReference ref, org.apache.activemq.artemis.core.server.impl.AckReason reason) - Specified by:
postAcknowledgein interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController
-
sendMessage
public void sendMessage(org.apache.activemq.artemis.core.transaction.Transaction tx, Message message, org.apache.activemq.artemis.core.server.RoutingContext context) - Specified by:
sendMessagein interfaceorg.apache.activemq.artemis.core.server.mirror.MirrorController
-
getAddressInUse
Description copied from class:ProtonAbstractReceiverReturns either the fixed address assigned to this sender, or the last address used by an anonymous relay sender; if this is an anonymous relay and no send has occurred then this method returnsnull.- Specified by:
getAddressInUsein classProtonAbstractReceiver- Returns:
- either the fixed address assigned to this sender, or the last address used by an anonymous relay sender;
if this is an anonymous relay and no send has occurred then this method returns
null
-