Class TransactionImpl
- java.lang.Object
-
- org.apache.pulsar.client.impl.transaction.TransactionImpl
-
- All Implemented Interfaces:
io.netty.util.TimerTask,org.apache.pulsar.client.api.transaction.Transaction
public class TransactionImpl extends java.lang.Object implements org.apache.pulsar.client.api.transaction.Transaction, io.netty.util.TimerTaskThe default implementation ofTransaction.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.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletableFuture<java.lang.Void>abort()<T> booleancheckIfOpen(java.util.concurrent.CompletableFuture<T> completableFuture)java.util.concurrent.CompletableFuture<java.lang.Void>commit()org.apache.pulsar.client.api.transaction.Transaction.StategetState()org.apache.pulsar.client.api.transaction.TxnIDgetTxnID()java.util.concurrent.CompletableFuture<java.lang.Void>registerAckedTopic(java.lang.String topic, java.lang.String subscription)voidregisterAckOp(java.util.concurrent.CompletableFuture<java.lang.Void> ackFuture)voidregisterCumulativeAckConsumer(ConsumerImpl<?> consumer)java.util.concurrent.CompletableFuture<java.lang.Void>registerProducedTopic(java.lang.String topic)voidregisterSendOp(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendFuture)voidrun(io.netty.util.Timeout timeout)
-
-
-
Method Detail
-
run
public void run(io.netty.util.Timeout timeout) throws java.lang.Exception- Specified by:
runin interfaceio.netty.util.TimerTask- Throws:
java.lang.Exception
-
registerProducedTopic
public java.util.concurrent.CompletableFuture<java.lang.Void> registerProducedTopic(java.lang.String topic)
-
registerSendOp
public void registerSendOp(java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendFuture)
-
registerAckedTopic
public java.util.concurrent.CompletableFuture<java.lang.Void> registerAckedTopic(java.lang.String topic, java.lang.String subscription)
-
registerAckOp
public void registerAckOp(java.util.concurrent.CompletableFuture<java.lang.Void> ackFuture)
-
registerCumulativeAckConsumer
public void registerCumulativeAckConsumer(ConsumerImpl<?> consumer)
-
commit
public java.util.concurrent.CompletableFuture<java.lang.Void> commit()
- Specified by:
commitin interfaceorg.apache.pulsar.client.api.transaction.Transaction
-
abort
public java.util.concurrent.CompletableFuture<java.lang.Void> abort()
- Specified by:
abortin interfaceorg.apache.pulsar.client.api.transaction.Transaction
-
getTxnID
public org.apache.pulsar.client.api.transaction.TxnID getTxnID()
- Specified by:
getTxnIDin interfaceorg.apache.pulsar.client.api.transaction.Transaction
-
getState
public org.apache.pulsar.client.api.transaction.Transaction.State getState()
- Specified by:
getStatein interfaceorg.apache.pulsar.client.api.transaction.Transaction
-
checkIfOpen
public <T> boolean checkIfOpen(java.util.concurrent.CompletableFuture<T> completableFuture)
-
-