Interface AmqpSession

All Superinterfaces:
AsyncCloseable, Disposable

public interface AmqpSession extends Disposable, AsyncCloseable
An AMQP session representing bidirectional communication that supports multiple AMQP links.
  • Method Details

    • getSessionName

      String getSessionName()
      Gets the name for this AMQP session.
      Returns:
      The name for the AMQP session.
    • getOperationTimeout

      Duration getOperationTimeout()
      Gets the operation timeout for starting the AMQP session.
      Returns:
      The timeout for starting the AMQP session.
    • createProducer

      Mono<AmqpLink> createProducer(String linkName, String entityPath, Duration timeout, AmqpRetryPolicy retryPolicy)
      Creates a new AMQP link that publishes events to the message broker.
      Parameters:
      linkName - Name of the link.
      entityPath - The entity path this link connects to when producing events.
      timeout - Timeout required for creating and opening AMQP link.
      retryPolicy - The retry policy to use when sending messages.
      Returns:
      A newly created AMQP link.
    • createConsumer

      Mono<AmqpLink> createConsumer(String linkName, String entityPath, Duration timeout, AmqpRetryPolicy retryPolicy)
      Creates a new AMQP link that consumes events from the message broker.
      Parameters:
      linkName - Name of the link.
      entityPath - The entity path this link connects to, so that it may read events from the message broker.
      timeout - Timeout required for creating and opening an AMQP link.
      retryPolicy - The retry policy to use when consuming messages.
      Returns:
      A newly created AMQP link.
    • removeLink

      boolean removeLink(String linkName)
      Removes an AmqpLink with the given linkName.
      Parameters:
      linkName - Name of the link to remove.
      Returns:
      true if the link was removed; false otherwise.
    • getEndpointStates

      Flux<AmqpEndpointState> getEndpointStates()
      Gets the endpoint states for the AMQP session. AmqpExceptions that occur on the link are reported in the connection state. When the stream terminates, the session is closed.
      Returns:
      A stream of endpoint states for the AMQP session.
    • createTransaction

      Mono<AmqpTransaction> createTransaction()
      Creates the transaction on the message broker.
      Returns:
      A newly created AMQPTransaction.
    • commitTransaction

      Mono<Void> commitTransaction(AmqpTransaction transaction)
      Commit the transaction on the message broker.
      Parameters:
      transaction - to commit.
      Returns:
      A completable mono.
    • rollbackTransaction

      Mono<Void> rollbackTransaction(AmqpTransaction transaction)
      Rollback the transaction on the message broker.
      Parameters:
      transaction - to rollback
      Returns:
      A completable mono.
    • getOrCreateTransactionCoordinator

      default Mono<? extends AmqpTransactionCoordinator> getOrCreateTransactionCoordinator()
      Gets an existing or newly created AmqpTransactionCoordinator on the AmqpSession which maintains one instance of the AmqpTransactionCoordinator object. The AmqpTransactionCoordinator is used to create/commit or rollback the transaction which can span over one or more message broker entities. The interface AmqpSession provides default implementation for back-word compatibility but it throws RuntimeException to warn that an implementing class must override and provide implementation of this API. Azure SDK already provides implementation for this API.
      Returns:
      An existing or if it does not exists newly created AmqpTransactionCoordinator.
      Throws:
      UnsupportedOperationException - Indicting implementation not found error. Azure SDK should provide implementation of this API but if runtime is not able to find it in its classpath or version mismatch can cause this exception.
      See Also:
    • closeAsync

      default Mono<Void> closeAsync()
      Description copied from interface: AsyncCloseable
      Begins the close operation. If one is in progress, will return that existing close operation. If the close operation is unsuccessful, the Mono completes with an error.
      Specified by:
      closeAsync in interface AsyncCloseable
      Returns:
      A Mono representing the close operation. If the close operation is unsuccessful, the Mono completes with an error.