<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.6.2.Final</version>
</dependency>
TransactionMQProducer producer = new TransactionMQProducer("transaction_group_name");
producer.setNamesrvAddr("localhost:9876");
TransactionListener transactionListener = new TransactionListenerImpl();
producer.setTransactionListener(transactionListener);
producer.start();
public class TransactionListenerImpl implements TransactionListener {
@Override
public LocalTransactionState executeLocalTransaction(Message msg, Object arg) {
return LocalTransactionState.COMMIT_MESSAGE;
}
@Override
public LocalTransactionState checkLocalTransaction(MessageExt msg) {
return LocalTransactionState.COMMIT_MESSAGE;
}
}
TransactionSendResult sendResult = producer.sendMessageInTransaction(
new Message("topic_name", "transaction_tag", "transaction_data".getBytes()),
"transaction_arg");
producer.shutdown();