Transactional Producer Doc Polishing

- explain txId requirements for producer-initiated transactions
This commit is contained in:
Gary Russell
2020-03-30 11:13:44 -04:00
committed by Soby Chacko
parent cc5d1b1aa6
commit 445eabc59a

View File

@@ -583,10 +583,14 @@ If you wish to use transactions in a source application, or from some arbitrary
[source, java]
----
@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,
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`.
IMPORTANT: If you deploy multiple instances of your application, each instance needs a unique `transactionIdPrefix`.
[[kafka-error-channels]]
=== Error Channels