public class TransactionImpl extends Object implements Transaction, io.netty.util.TimerTask
Transaction.
All the error handling and retry logic are handled by this class. The original pulsar client doesn't handle any transaction logic. It is only responsible for sending the messages and acknowledgements carrying the transaction id and retrying on failures. This decouples the transactional operations from non-transactional operations as much as possible.
| Modifier and Type | Class and Description |
|---|---|
static class |
TransactionImpl.State |
| Modifier and Type | Method and Description |
|---|---|
CompletableFuture<Void> |
abort() |
<T> boolean |
checkIfOpen(CompletableFuture<T> completableFuture) |
CompletableFuture<Void> |
commit() |
TxnID |
getTxnID() |
CompletableFuture<Void> |
registerAckedTopic(String topic,
String subscription) |
void |
registerAckOp(CompletableFuture<Void> ackFuture) |
void |
registerCumulativeAckConsumer(ConsumerImpl<?> consumer) |
CompletableFuture<Void> |
registerProducedTopic(String topic) |
void |
registerSendOp(CompletableFuture<MessageId> sendFuture) |
void |
run(io.netty.util.Timeout timeout) |
public void run(io.netty.util.Timeout timeout)
throws Exception
run in interface io.netty.util.TimerTaskExceptionpublic CompletableFuture<Void> registerProducedTopic(String topic)
public void registerSendOp(CompletableFuture<MessageId> sendFuture)
public CompletableFuture<Void> registerAckedTopic(String topic, String subscription)
public void registerAckOp(CompletableFuture<Void> ackFuture)
public void registerCumulativeAckConsumer(ConsumerImpl<?> consumer)
public CompletableFuture<Void> commit()
commit in interface Transactionpublic CompletableFuture<Void> abort()
abort in interface Transactionpublic TxnID getTxnID()
getTxnID in interface Transactionpublic <T> boolean checkIfOpen(CompletableFuture<T> completableFuture)
Copyright © 2017–2022 Apache Software Foundation. All rights reserved.