...
Jira | ||||||
---|---|---|---|---|---|---|
|
Public Interfaces
ListTransactionsRequest
Add a new field, DurationFilter
to the ListTransactionsRequest
and bump the API's version to 1
...
Code Block |
---|
@InterfaceStability.Evolving public class ListTransactionsOptions extends AbstractOptions<ListTransactionsOptions> { ... // return transactions open for more than this time duration specified in milliseconds Duration durationFilter; public ListTransactionsOptions durationFilter(Duration timeDuration) { this.durationFilter = timeDuration; return this; } public Duration durationFilter() { return this.durationFilter; } ... } |
DescribeTransactionsResponse
Add a new tagged field, TransactionLastUpdateTimeMs
...
Code Block |
---|
public class TransactionDescription { ... private final OptionalLong transactionLastUpdateTimeMs; ... public TransactionDescription( int coordinatorId, TransactionState state, long producerId, int producerEpoch, long transactionTimeoutMs, OptionalLong transactionStartTimeMs, OptionalLong transactionLastUpdateTimeMs, Set<TopicPartition> topicPartitions ) { ... this.transactionLastUpdateTimeMs = transactionLastUpdateTimeMs; ... } ... public OptionalLong transactionLastUpdateTimeMs() { return transactionLastUpdateTimeMs; } ... } |
Fixing the TransactionsCommand tool
TransactionDescription
is further utilized at org.apache.kafka.tools.TransactionsCommand.DescribeTransactionsCommand#execute
to build a printable description of the transaction. This method will be changed to calculate transactionDuration
as a difference between current time and transactionLastUpdateTimeMs
, if
state == COMPLETE_COMMIT || state == COMPLETE_ABORT
...