ServiceBusTransactionContext.java

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.messaging.servicebus;

import com.azure.core.annotation.Immutable;

import java.nio.ByteBuffer;

/**
 * Represents transaction in service. This object just contains transaction id. Transaction management operations
 * like create transaction, rollback, and commit operation need to be done using the sender or receiver clients.
 * <p>
 * A transaction times out after 2 minutes. The transaction timer starts when the first operation in the transaction
 * starts.
 * </p>
 *
 * <p><strong>Creating and using a transaction</strong></p>
 * {@codesnippet com.azure.messaging.servicebus.servicebusreceiverasyncclient.committransaction#servicebustransactioncontext}
 *
 * @see ServiceBusReceiverClient#createTransaction()
 * @see ServiceBusReceiverAsyncClient#createTransaction()
 * @see ServiceBusSenderClient#createTransaction()
 * @see ServiceBusSenderAsyncClient#createTransaction()
 * @see <a href="https://docs.microsoft.com/azure/service-bus-messaging/service-bus-transactions">Transaction
 *      Overview</a>
 */
@Immutable
public final class ServiceBusTransactionContext {
    private final ByteBuffer transactionId;

    ServiceBusTransactionContext(ByteBuffer transactionId) {
        this.transactionId = transactionId;
    }

    /**
     * Gets the transaction id.
     *
     * @return transaction ID
     */
    public ByteBuffer getTransactionId() {
        return this.transactionId;
    }
}