Transactional Producer Doc Polishing
- explain txId requirements for producer-initiated transactions
This commit is contained in:
committed by
Soby Chacko
parent
cc5d1b1aa6
commit
445eabc59a
@@ -583,10 +583,14 @@ If you wish to use transactions in a source application, or from some arbitrary
|
|||||||
[source, java]
|
[source, java]
|
||||||
----
|
----
|
||||||
@Bean
|
@Bean
|
||||||
public PlatformTransactionManager transactionManager(BinderFactory binders) {
|
public PlatformTransactionManager transactionManager(BinderFactory binders,
|
||||||
|
@Value("${unique.tx.id.per.instance}") String txId) {
|
||||||
|
|
||||||
ProducerFactory<byte[], byte[]> pf = ((KafkaMessageChannelBinder) binders.getBinder(null,
|
ProducerFactory<byte[], byte[]> pf = ((KafkaMessageChannelBinder) binders.getBinder(null,
|
||||||
MessageChannel.class)).getTransactionalProducerFactory();
|
MessageChannel.class)).getTransactionalProducerFactory();
|
||||||
return new KafkaTransactionManager<>(pf);
|
KafkaTransactionManager tm = new KafkaTransactionManager<>(pf);
|
||||||
|
tm.setTransactionId(txId)
|
||||||
|
return tm;
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
@@ -613,6 +617,8 @@ public static class Sender {
|
|||||||
|
|
||||||
If you wish to synchronize producer-only transactions with those from some other transaction manager, use a `ChainedTransactionManager`.
|
If you wish to synchronize producer-only transactions with those from some other transaction manager, use a `ChainedTransactionManager`.
|
||||||
|
|
||||||
|
IMPORTANT: If you deploy multiple instances of your application, each instance needs a unique `transactionIdPrefix`.
|
||||||
|
|
||||||
[[kafka-error-channels]]
|
[[kafka-error-channels]]
|
||||||
=== Error Channels
|
=== Error Channels
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user