AmqpSession Interface

Implements

public interface AmqpSession
extends Disposable, AsyncCloseable

An AMQP session representing bidirectional communication that supports multiple AmqpLink.

Method Summary

Modifier and Type Method and Description
default Mono<Void> closeAsync()
abstract Mono<Void> commitTransaction(AmqpTransaction transaction)

Commit the transaction on the message broker.

abstract Mono<AmqpLink> createConsumer(String linkName, String entityPath, Duration timeout, AmqpRetryPolicy retryPolicy)

Creates a new AMQP link that consumes events from the message broker.

abstract Mono<AmqpLink> createProducer(String linkName, String entityPath, Duration timeout, AmqpRetryPolicy retryPolicy)

Creates a new AMQP link that publishes events to the message broker.

abstract Mono<AmqpTransaction> createTransaction()

Creates the transaction on the message broker.

abstract Flux<AmqpEndpointState> getEndpointStates()

Gets the endpoint states for the AMQP session.

abstract Duration getOperationTimeout()

Gets the operation timeout for starting the AMQP session.

default Mono<> getOrCreateTransactionCoordinator()

Gets an existing or newly created AmqpTransactionCoordinator on the AmqpSession which maintains one instance of the AmqpTransactionCoordinator object.

abstract String getSessionName()

Gets the name for this AMQP session.

abstract boolean removeLink(String linkName)

Removes an AmqpLink with the given linkName.

abstract Mono<Void> rollbackTransaction(AmqpTransaction transaction)

Rollback the transaction on the message broker.

Method Details

closeAsync

public default Mono closeAsync()

commitTransaction

public abstract Mono commitTransaction(AmqpTransaction transaction)

Commit the transaction on the message broker.

Parameters:

transaction - to commit.

Returns:

A completable mono.

createConsumer

public abstract Mono 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.

createProducer

public abstract Mono 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.

createTransaction

public abstract Mono createTransaction()

Creates the transaction on the message broker.

Returns:

A newly created AMQPTransaction.

getEndpointStates

public abstract Flux getEndpointStates()

Gets the endpoint states for the AMQP session. AmqpException 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.

getOperationTimeout

public abstract Duration getOperationTimeout()

Gets the operation timeout for starting the AMQP session.

Returns:

The timeout for starting the AMQP session.

getOrCreateTransactionCoordinator

public default Mono 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.

getSessionName

public abstract String getSessionName()

Gets the name for this AMQP session.

Returns:

The name for the AMQP session.

removeLink

public abstract 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.

rollbackTransaction

public abstract Mono rollbackTransaction(AmqpTransaction transaction)

Rollback the transaction on the message broker.

Parameters:

transaction - to rollback

Returns:

A completable mono.

Applies to